Client Test

Client Test

rev. 26e0a1e8aaec58e3c7fd18a79449d71bcadaf391 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/Cargo.lock

@@ -238,238 +735,735 @@
  258    258   
]
  259    259   
  260    260   
[[package]]
  261    261   
name = "autocfg"
  262    262   
version = "1.5.0"
  263    263   
source = "registry+https://github.com/rust-lang/crates.io-index"
  264    264   
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
  265    265   
  266    266   
[[package]]
  267    267   
name = "aws-lc-fips-sys"
  268         -
version = "0.13.10"
         268  +
version = "0.13.9"
  269    269   
source = "registry+https://github.com/rust-lang/crates.io-index"
  270         -
checksum = "57900537c00a0565a35b63c4c281b372edfc9744b072fd4a3b414350a8f5ed48"
         270  +
checksum = "ede71ad84efb06d748d9af3bc500b14957a96282a69a6833b1420dcacb411cc3"
  271    271   
dependencies = [
  272    272   
 "bindgen",
  273    273   
 "cc",
  274    274   
 "cmake",
  275    275   
 "dunce",
  276    276   
 "fs_extra",
  277    277   
 "regex",
  278    278   
]
  279    279   
  280    280   
[[package]]
  281    281   
name = "aws-lc-rs"
  282         -
version = "1.15.0"
         282  +
version = "1.14.1"
  283    283   
source = "registry+https://github.com/rust-lang/crates.io-index"
  284         -
checksum = "5932a7d9d28b0d2ea34c6b3779d35e3dd6f6345317c34e73438c4f1f29144151"
         284  +
checksum = "879b6c89592deb404ba4dc0ae6b58ffd1795c78991cbb5b8bc441c48a070440d"
  285    285   
dependencies = [
  286    286   
 "aws-lc-fips-sys",
  287    287   
 "aws-lc-sys",
  288    288   
 "untrusted 0.7.1",
  289    289   
 "zeroize",
  290    290   
]
  291    291   
  292    292   
[[package]]
  293    293   
name = "aws-lc-sys"
  294         -
version = "0.33.0"
         294  +
version = "0.32.3"
  295    295   
source = "registry+https://github.com/rust-lang/crates.io-index"
  296         -
checksum = "1826f2e4cfc2cd19ee53c42fbf68e2f81ec21108e0b7ecf6a71cf062137360fc"
         296  +
checksum = "107a4e9d9cab9963e04e84bb8dee0e25f2a987f9a8bad5ed054abd439caa8f8c"
  297    297   
dependencies = [
  298    298   
 "bindgen",
  299    299   
 "cc",
  300    300   
 "cmake",
  301    301   
 "dunce",
  302    302   
 "fs_extra",
  303    303   
]
  304    304   
  305    305   
[[package]]
  306    306   
name = "aws-smithy-async"
  307         -
version = "1.2.7"
         307  +
version = "1.2.6"
  308    308   
dependencies = [
  309    309   
 "futures-util",
  310    310   
 "pin-project-lite",
  311    311   
 "pin-utils",
  312    312   
 "tokio",
  313    313   
 "tokio-test",
  314    314   
]
  315    315   
  316    316   
[[package]]
  317    317   
name = "aws-smithy-cbor"
  318         -
version = "0.61.4"
         318  +
version = "0.61.3"
  319    319   
dependencies = [
  320    320   
 "aws-smithy-types",
  321    321   
 "criterion",
  322    322   
 "minicbor",
  323    323   
]
  324    324   
  325    325   
[[package]]
  326    326   
name = "aws-smithy-checksums"
  327         -
version = "0.63.12"
         327  +
version = "0.63.11"
  328    328   
dependencies = [
  329    329   
 "aws-smithy-http",
  330    330   
 "aws-smithy-types",
  331    331   
 "bytes",
  332    332   
 "bytes-utils",
  333    333   
 "crc-fast",
  334    334   
 "hex",
  335    335   
 "http 0.2.12",
  336    336   
 "http-body 0.4.6",
  337    337   
 "md-5",
  338    338   
 "pin-project-lite",
  339    339   
 "pretty_assertions",
  340    340   
 "sha1",
  341    341   
 "sha2",
  342    342   
 "tokio",
  343    343   
 "tracing",
  344    344   
 "tracing-test",
  345    345   
]
  346    346   
  347    347   
[[package]]
  348    348   
name = "aws-smithy-compression"
  349         -
version = "0.0.7"
         349  +
version = "0.0.6"
  350    350   
dependencies = [
  351    351   
 "aws-smithy-runtime-api",
  352    352   
 "aws-smithy-types",
  353    353   
 "bytes",
  354    354   
 "bytes-utils",
  355    355   
 "flate2",
  356    356   
 "futures-util",
  357    357   
 "http 0.2.12",
  358    358   
 "http 1.3.1",
  359    359   
 "http-body 0.4.6",
  360    360   
 "http-body 1.0.1",
  361    361   
 "http-body-util",
  362    362   
 "pin-project-lite",
  363    363   
 "pretty_assertions",
  364    364   
 "tokio",
  365    365   
 "tracing",
  366    366   
]
  367    367   
  368    368   
[[package]]
  369    369   
name = "aws-smithy-dns"
  370         -
version = "0.1.5"
         370  +
version = "0.1.4"
  371    371   
dependencies = [
  372    372   
 "aws-smithy-runtime-api",
  373    373   
 "criterion",
  374    374   
 "hickory-resolver",
  375    375   
 "tokio",
  376    376   
]
  377    377   
  378    378   
[[package]]
  379    379   
name = "aws-smithy-eventstream"
  380         -
version = "0.60.14"
         380  +
version = "0.60.13"
  381    381   
dependencies = [
  382    382   
 "arbitrary",
  383    383   
 "aws-smithy-types",
  384    384   
 "bytes",
  385    385   
 "bytes-utils",
  386    386   
 "crc32fast",
  387    387   
 "criterion",
  388    388   
 "derive_arbitrary",
  389    389   
 "jemallocator",
  390    390   
 "mimalloc",
  391    391   
]
  392    392   
  393    393   
[[package]]
  394    394   
name = "aws-smithy-experimental"
  395         -
version = "0.2.2"
         395  +
version = "0.2.1"
  396    396   
  397    397   
[[package]]
  398    398   
name = "aws-smithy-http"
  399         -
version = "0.62.6"
         399  +
version = "0.62.5"
  400    400   
dependencies = [
  401    401   
 "async-stream",
  402    402   
 "aws-smithy-eventstream",
  403    403   
 "aws-smithy-runtime-api",
  404    404   
 "aws-smithy-types",
  405    405   
 "bytes",
  406    406   
 "bytes-utils",
  407    407   
 "futures-core",
  408    408   
 "futures-util",
  409    409   
 "http 0.2.12",
  410    410   
 "http 1.3.1",
  411    411   
 "http-body 0.4.6",
  412    412   
 "hyper 0.14.32",
  413    413   
 "percent-encoding",
  414    414   
 "pin-project-lite",
  415    415   
 "pin-utils",
  416    416   
 "proptest",
  417    417   
 "tokio",
  418    418   
 "tracing",
  419    419   
]
  420    420   
  421    421   
[[package]]
  422    422   
name = "aws-smithy-http-client"
  423         -
version = "1.1.5"
         423  +
version = "1.1.4"
  424    424   
dependencies = [
  425    425   
 "aws-smithy-async",
  426    426   
 "aws-smithy-protocol-test",
  427    427   
 "aws-smithy-runtime-api",
  428    428   
 "aws-smithy-types",
  429    429   
 "base64 0.22.1",
  430    430   
 "bytes",
  431    431   
 "h2 0.3.27",
  432    432   
 "h2 0.4.12",
  433    433   
 "http 0.2.12",
  434    434   
 "http 1.3.1",
  435    435   
 "http-body 0.4.6",
  436    436   
 "http-body 1.0.1",
  437    437   
 "http-body-util",
  438    438   
 "hyper 0.14.32",
  439         -
 "hyper 1.8.1",
         439  +
 "hyper 1.8.0",
  440    440   
 "hyper-rustls 0.24.2",
  441    441   
 "hyper-rustls 0.27.7",
  442    442   
 "hyper-util",
  443    443   
 "indexmap 2.12.0",
  444    444   
 "pin-project-lite",
  445    445   
 "rustls 0.21.12",
  446    446   
 "rustls 0.23.35",
  447    447   
 "rustls-native-certs 0.8.2",
  448    448   
 "rustls-pemfile 2.2.0",
  449    449   
 "rustls-pki-types",
  450    450   
 "s2n-tls",
  451    451   
 "s2n-tls-hyper",
  452    452   
 "s2n-tls-tokio",
  453    453   
 "serde",
  454    454   
 "serde_json",
  455    455   
 "serial_test",
  456    456   
 "tokio",
  457    457   
 "tokio-rustls 0.26.4",
  458    458   
 "tower 0.5.2",
  459    459   
 "tracing",
  460    460   
]
  461    461   
  462    462   
[[package]]
  463    463   
name = "aws-smithy-http-server"
  464         -
version = "0.65.10"
         464  +
version = "0.65.9"
  465    465   
dependencies = [
  466    466   
 "aws-smithy-cbor",
  467    467   
 "aws-smithy-http",
  468    468   
 "aws-smithy-json",
  469    469   
 "aws-smithy-runtime-api",
  470    470   
 "aws-smithy-types",
  471    471   
 "aws-smithy-xml",
  472    472   
 "bytes",
  473    473   
 "futures-util",
  474    474   
 "http 0.2.12",
  475    475   
 "http-body 0.4.6",
  476    476   
 "hyper 0.14.32",
  477    477   
 "lambda_http",
  478    478   
 "mime",
  479    479   
 "nom",
  480    480   
 "pin-project-lite",
  481    481   
 "pretty_assertions",
  482    482   
 "regex",
  483    483   
 "serde_urlencoded",
  484    484   
 "thiserror 2.0.17",
  485    485   
 "tokio",
  486    486   
 "tower 0.4.13",
  487    487   
 "tower-http",
  488    488   
 "tracing",
  489    489   
 "uuid",
  490    490   
]
  491    491   
  492    492   
[[package]]
  493    493   
name = "aws-smithy-http-server-python"
  494         -
version = "0.66.6"
         494  +
version = "0.66.5"
  495    495   
dependencies = [
  496    496   
 "aws-smithy-http",
  497    497   
 "aws-smithy-http-server",
  498    498   
 "aws-smithy-json",
  499    499   
 "aws-smithy-types",
  500    500   
 "aws-smithy-xml",
  501    501   
 "bytes",
  502    502   
 "futures",
  503    503   
 "futures-util",
  504    504   
 "http 0.2.12",
  505    505   
 "hyper 0.14.32",
  506    506   
 "hyper-rustls 0.24.2",
  507    507   
 "lambda_http",
  508    508   
 "num_cpus",
  509    509   
 "parking_lot",
  510    510   
 "pin-project-lite",
  511    511   
 "pretty_assertions",
  512    512   
 "pyo3",
  513    513   
 "pyo3-asyncio",
  514    514   
 "rcgen",
  515    515   
 "rustls-pemfile 1.0.4",
  516    516   
 "signal-hook",
  517    517   
 "socket2 0.5.10",
  518    518   
 "thiserror 2.0.17",
  519    519   
 "tls-listener",
  520    520   
 "tokio",
  521    521   
 "tokio-rustls 0.24.1",
  522    522   
 "tokio-stream",
  523    523   
 "tokio-test",
  524    524   
 "tower 0.4.13",
  525    525   
 "tower-test",
  526    526   
 "tracing",
  527    527   
 "tracing-appender",
  528    528   
 "tracing-subscriber",
  529    529   
]
  530    530   
  531    531   
[[package]]
  532    532   
name = "aws-smithy-json"
  533         -
version = "0.61.8"
         533  +
version = "0.61.7"
  534    534   
dependencies = [
  535    535   
 "aws-smithy-types",
  536    536   
 "proptest",
  537    537   
 "serde_json",
  538    538   
]
  539    539   
  540    540   
[[package]]
  541    541   
name = "aws-smithy-mocks"
  542         -
version = "0.2.2"
         542  +
version = "0.2.1"
  543    543   
dependencies = [
  544    544   
 "aws-smithy-async",
  545    545   
 "aws-smithy-http-client",
  546    546   
 "aws-smithy-runtime",
  547    547   
 "aws-smithy-runtime-api",
  548    548   
 "aws-smithy-types",
  549    549   
 "http 1.3.1",
  550    550   
 "tokio",
  551    551   
]
  552    552   
  553    553   
[[package]]
  554    554   
name = "aws-smithy-observability"
  555         -
version = "0.1.5"
         555  +
version = "0.1.4"
  556    556   
dependencies = [
  557    557   
 "aws-smithy-runtime-api",
  558    558   
 "serial_test",
  559    559   
]
  560    560   
  561    561   
[[package]]
  562    562   
name = "aws-smithy-observability-otel"
  563         -
version = "0.1.3"
         563  +
version = "0.1.2"
  564    564   
dependencies = [
  565    565   
 "async-global-executor",
  566    566   
 "async-task",
  567    567   
 "aws-smithy-observability",
  568    568   
 "criterion",
  569    569   
 "opentelemetry",
  570    570   
 "opentelemetry_sdk",
  571    571   
 "stats_alloc",
  572    572   
 "tokio",
  573    573   
 "value-bag",
  574    574   
]
  575    575   
  576    576   
[[package]]
  577    577   
name = "aws-smithy-protocol-test"
  578         -
version = "0.63.7"
         578  +
version = "0.63.6"
  579    579   
dependencies = [
  580    580   
 "assert-json-diff",
  581    581   
 "aws-smithy-runtime-api",
  582    582   
 "base64-simd",
  583    583   
 "cbor-diag",
  584    584   
 "ciborium",
  585    585   
 "http 0.2.12",
  586    586   
 "pretty_assertions",
  587    587   
 "regex-lite",
  588    588   
 "roxmltree",
  589    589   
 "serde_json",
  590    590   
 "thiserror 2.0.17",
  591    591   
]
  592    592   
  593    593   
[[package]]
  594    594   
name = "aws-smithy-query"
  595         -
version = "0.60.9"
         595  +
version = "0.60.8"
  596    596   
dependencies = [
  597    597   
 "aws-smithy-types",
  598    598   
 "urlencoding",
  599    599   
]
  600    600   
  601    601   
[[package]]
  602    602   
name = "aws-smithy-runtime"
  603    603   
version = "1.9.5"
  604    604   
dependencies = [
  605    605   
 "approx",
  606    606   
 "aws-smithy-async",
  607    607   
 "aws-smithy-http",
  608    608   
 "aws-smithy-http-client",
  609    609   
 "aws-smithy-observability",
  610    610   
 "aws-smithy-runtime-api",
  611    611   
 "aws-smithy-types",
  612    612   
 "bytes",
  613    613   
 "fastrand",
  614    614   
 "futures-util",
  615    615   
 "http 0.2.12",
  616    616   
 "http 1.3.1",
  617    617   
 "http-body 0.4.6",
  618    618   
 "http-body 1.0.1",
  619    619   
 "hyper 0.14.32",
  620    620   
 "pin-project-lite",
  621    621   
 "pin-utils",
  622    622   
 "pretty_assertions",
  623    623   
 "tokio",
  624    624   
 "tracing",
  625    625   
 "tracing-subscriber",
  626    626   
 "tracing-test",
  627    627   
]
  628    628   
  629    629   
[[package]]
  630    630   
name = "aws-smithy-runtime-api"
  631         -
version = "1.9.3"
         631  +
version = "1.9.2"
  632    632   
dependencies = [
  633    633   
 "aws-smithy-async",
  634    634   
 "aws-smithy-types",
  635    635   
 "bytes",
  636    636   
 "http 0.2.12",
  637    637   
 "http 1.3.1",
  638    638   
 "pin-project-lite",
  639    639   
 "proptest",
  640    640   
 "tokio",
  641    641   
 "tracing",
  642    642   
 "zeroize",
  643    643   
]
  644    644   
  645    645   
[[package]]
  646    646   
name = "aws-smithy-types"
  647         -
version = "1.3.5"
         647  +
version = "1.3.4"
  648    648   
dependencies = [
  649    649   
 "base64 0.13.1",
  650    650   
 "base64-simd",
  651    651   
 "bytes",
  652    652   
 "bytes-utils",
  653    653   
 "ciborium",
  654    654   
 "criterion",
  655    655   
 "futures-core",
  656    656   
 "http 0.2.12",
  657    657   
 "http 1.3.1",
  658    658   
 "http-body 0.4.6",
  659    659   
 "http-body 1.0.1",
  660    660   
 "http-body-util",
  661    661   
 "hyper 0.14.32",
  662    662   
 "itoa",
  663    663   
 "lazy_static",
  664    664   
 "num-integer",
  665    665   
 "pin-project-lite",
  666    666   
 "pin-utils",
  667    667   
 "proptest",
  668    668   
 "rand 0.8.5",
  669    669   
 "ryu",
  670    670   
 "serde",
  671    671   
 "serde_json",
  672    672   
 "tempfile",
  673    673   
 "time",
  674    674   
 "tokio",
  675    675   
 "tokio-stream",
  676    676   
 "tokio-util",
  677    677   
]
  678    678   
  679    679   
[[package]]
  680    680   
name = "aws-smithy-types-convert"
  681         -
version = "0.60.11"
         681  +
version = "0.60.10"
  682    682   
dependencies = [
  683    683   
 "aws-smithy-async",
  684    684   
 "aws-smithy-types",
  685    685   
 "chrono",
  686    686   
 "futures-core",
  687    687   
 "time",
  688    688   
]
  689    689   
  690    690   
[[package]]
  691    691   
name = "aws-smithy-wasm"
  692         -
version = "0.1.6"
         692  +
version = "0.1.5"
  693    693   
dependencies = [
  694    694   
 "aws-smithy-http",
  695    695   
 "aws-smithy-runtime-api",
  696    696   
 "aws-smithy-types",
  697    697   
 "bytes",
  698    698   
 "http 1.3.1",
  699    699   
 "tracing",
  700    700   
 "wasi 0.12.1+wasi-0.2.0",
  701    701   
]
  702    702   
  703    703   
[[package]]
  704    704   
name = "aws-smithy-xml"
  705         -
version = "0.60.13"
         705  +
version = "0.60.12"
  706    706   
dependencies = [
  707    707   
 "aws-smithy-protocol-test",
  708    708   
 "base64 0.13.1",
  709    709   
 "proptest",
  710    710   
 "xmlparser",
  711    711   
]
  712    712   
  713    713   
[[package]]
  714    714   
name = "aws_lambda_events"
  715    715   
version = "0.12.1"
@@ -819,819 +925,925 @@
  839    839   
]
  840    840   
  841    841   
[[package]]
  842    842   
name = "bumpalo"
  843    843   
version = "3.19.0"
  844    844   
source = "registry+https://github.com/rust-lang/crates.io-index"
  845    845   
checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
  846    846   
  847    847   
[[package]]
  848    848   
name = "bytes"
  849         -
version = "1.11.0"
         849  +
version = "1.10.1"
  850    850   
source = "registry+https://github.com/rust-lang/crates.io-index"
  851         -
checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
         851  +
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
  852    852   
dependencies = [
  853    853   
 "serde",
  854    854   
]
  855    855   
  856    856   
[[package]]
  857    857   
name = "bytes-utils"
  858    858   
version = "0.1.4"
  859    859   
source = "registry+https://github.com/rust-lang/crates.io-index"
  860    860   
checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35"
  861    861   
dependencies = [
  862    862   
 "bytes",
  863    863   
 "either",
  864    864   
]
  865    865   
  866    866   
[[package]]
  867    867   
name = "cast"
  868    868   
version = "0.3.0"
  869    869   
source = "registry+https://github.com/rust-lang/crates.io-index"
  870    870   
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
  871    871   
  872    872   
[[package]]
  873    873   
name = "cbor-diag"
  874    874   
version = "0.1.12"
  875    875   
source = "registry+https://github.com/rust-lang/crates.io-index"
  876    876   
checksum = "dc245b6ecd09b23901a4fbad1ad975701fd5061ceaef6afa93a2d70605a64429"
  877    877   
dependencies = [
  878    878   
 "bs58",
  879    879   
 "chrono",
  880    880   
 "data-encoding",
  881    881   
 "half",
  882    882   
 "nom",
  883    883   
 "num-bigint",
  884    884   
 "num-rational",
  885    885   
 "num-traits",
  886    886   
 "separator",
  887    887   
 "url",
  888    888   
 "uuid",
  889    889   
]
  890    890   
  891    891   
[[package]]
  892    892   
name = "cc"
  893         -
version = "1.2.46"
         893  +
version = "1.2.45"
  894    894   
source = "registry+https://github.com/rust-lang/crates.io-index"
  895         -
checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36"
         895  +
checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe"
  896    896   
dependencies = [
  897    897   
 "find-msvc-tools",
  898    898   
 "jobserver",
  899    899   
 "libc",
  900    900   
 "shlex",
  901    901   
]
  902    902   
  903    903   
[[package]]
  904    904   
name = "cexpr"
  905    905   
version = "0.6.0"
@@ -952,952 +1023,1023 @@
  972    972   
 "bitflags 1.3.2",
  973    973   
 "clap_lex 0.2.4",
  974    974   
 "indexmap 1.9.3",
  975    975   
 "strsim",
  976    976   
 "termcolor",
  977    977   
 "textwrap",
  978    978   
]
  979    979   
  980    980   
[[package]]
  981    981   
name = "clap"
  982         -
version = "4.5.52"
         982  +
version = "4.5.51"
  983    983   
source = "registry+https://github.com/rust-lang/crates.io-index"
  984         -
checksum = "aa8120877db0e5c011242f96806ce3c94e0737ab8108532a76a3300a01db2ab8"
         984  +
checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5"
  985    985   
dependencies = [
  986    986   
 "clap_builder",
  987    987   
]
  988    988   
  989    989   
[[package]]
  990    990   
name = "clap_builder"
  991         -
version = "4.5.52"
         991  +
version = "4.5.51"
  992    992   
source = "registry+https://github.com/rust-lang/crates.io-index"
  993         -
checksum = "02576b399397b659c26064fbc92a75fede9d18ffd5f80ca1cd74ddab167016e1"
         993  +
checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a"
  994    994   
dependencies = [
  995    995   
 "anstyle",
  996    996   
 "clap_lex 0.7.6",
  997    997   
]
  998    998   
  999    999   
[[package]]
 1000   1000   
name = "clap_lex"
 1001   1001   
version = "0.2.4"
 1002   1002   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1003   1003   
checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
@@ -1083,1083 +1143,1143 @@
 1103   1103   
 1104   1104   
[[package]]
 1105   1105   
name = "criterion"
 1106   1106   
version = "0.5.1"
 1107   1107   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1108   1108   
checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
 1109   1109   
dependencies = [
 1110   1110   
 "anes",
 1111   1111   
 "cast",
 1112   1112   
 "ciborium",
 1113         -
 "clap 4.5.52",
        1113  +
 "clap 4.5.51",
 1114   1114   
 "criterion-plot",
 1115   1115   
 "futures",
 1116   1116   
 "is-terminal",
 1117   1117   
 "itertools 0.10.5",
 1118   1118   
 "num-traits",
 1119   1119   
 "once_cell",
 1120   1120   
 "oorandom",
 1121   1121   
 "plotters",
 1122   1122   
 "rayon",
 1123   1123   
 "regex",
@@ -1160,1160 +1222,1222 @@
 1180   1180   
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
 1181   1181   
 1182   1182   
[[package]]
 1183   1183   
name = "crunchy"
 1184   1184   
version = "0.2.4"
 1185   1185   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1186   1186   
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
 1187   1187   
 1188   1188   
[[package]]
 1189   1189   
name = "crypto-common"
 1190         -
version = "0.1.7"
        1190  +
version = "0.1.6"
 1191   1191   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1192         -
checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
        1192  +
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 1193   1193   
dependencies = [
 1194   1194   
 "generic-array",
 1195   1195   
 "typenum",
 1196   1196   
]
 1197   1197   
 1198   1198   
[[package]]
 1199   1199   
name = "data-encoding"
 1200   1200   
version = "2.9.0"
 1201   1201   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1202   1202   
checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476"
@@ -1305,1305 +1367,1367 @@
 1325   1325   
]
 1326   1326   
 1327   1327   
[[package]]
 1328   1328   
name = "fastrand"
 1329   1329   
version = "2.3.0"
 1330   1330   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1331   1331   
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
 1332   1332   
 1333   1333   
[[package]]
 1334   1334   
name = "find-msvc-tools"
 1335         -
version = "0.1.5"
        1335  +
version = "0.1.4"
 1336   1336   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1337         -
checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
        1337  +
checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
 1338   1338   
 1339   1339   
[[package]]
 1340   1340   
name = "flate2"
 1341   1341   
version = "1.1.5"
 1342   1342   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1343   1343   
checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
 1344   1344   
dependencies = [
 1345   1345   
 "crc32fast",
 1346   1346   
 "miniz_oxide",
 1347   1347   
]
@@ -1444,1444 +1506,1506 @@
 1464   1464   
 "futures-sink",
 1465   1465   
 "futures-task",
 1466   1466   
 "memchr",
 1467   1467   
 "pin-project-lite",
 1468   1468   
 "pin-utils",
 1469   1469   
 "slab",
 1470   1470   
]
 1471   1471   
 1472   1472   
[[package]]
 1473   1473   
name = "generic-array"
 1474         -
version = "0.14.7"
        1474  +
version = "0.14.9"
 1475   1475   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1476         -
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
        1476  +
checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
 1477   1477   
dependencies = [
 1478   1478   
 "typenum",
 1479   1479   
 "version_check",
 1480   1480   
]
 1481   1481   
 1482   1482   
[[package]]
 1483   1483   
name = "getrandom"
 1484   1484   
version = "0.2.16"
 1485   1485   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1486   1486   
checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
@@ -1743,1743 +1870,1870 @@
 1763   1763   
 "pin-project-lite",
 1764   1764   
 "socket2 0.5.10",
 1765   1765   
 "tokio",
 1766   1766   
 "tower-service",
 1767   1767   
 "tracing",
 1768   1768   
 "want",
 1769   1769   
]
 1770   1770   
 1771   1771   
[[package]]
 1772   1772   
name = "hyper"
 1773         -
version = "1.8.1"
        1773  +
version = "1.8.0"
 1774   1774   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1775         -
checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11"
        1775  +
checksum = "1744436df46f0bde35af3eda22aeaba453aada65d8f1c171cd8a5f59030bd69f"
 1776   1776   
dependencies = [
 1777   1777   
 "atomic-waker",
 1778   1778   
 "bytes",
 1779   1779   
 "futures-channel",
 1780   1780   
 "futures-core",
 1781   1781   
 "h2 0.4.12",
 1782   1782   
 "http 1.3.1",
 1783   1783   
 "http-body 1.0.1",
 1784   1784   
 "httparse",
 1785   1785   
 "httpdate",
 1786   1786   
 "itoa",
 1787   1787   
 "pin-project-lite",
 1788   1788   
 "pin-utils",
 1789   1789   
 "smallvec",
 1790   1790   
 "tokio",
 1791   1791   
 "want",
 1792   1792   
]
 1793   1793   
 1794   1794   
[[package]]
 1795   1795   
name = "hyper-rustls"
 1796   1796   
version = "0.24.2"
 1797   1797   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1798   1798   
checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 1799   1799   
dependencies = [
 1800   1800   
 "futures-util",
 1801   1801   
 "http 0.2.12",
 1802   1802   
 "hyper 0.14.32",
 1803   1803   
 "log",
 1804   1804   
 "rustls 0.21.12",
 1805   1805   
 "rustls-native-certs 0.6.3",
 1806   1806   
 "tokio",
 1807   1807   
 "tokio-rustls 0.24.1",
 1808   1808   
]
 1809   1809   
 1810   1810   
[[package]]
 1811   1811   
name = "hyper-rustls"
 1812   1812   
version = "0.27.7"
 1813   1813   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1814   1814   
checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58"
 1815   1815   
dependencies = [
 1816   1816   
 "http 1.3.1",
 1817         -
 "hyper 1.8.1",
        1817  +
 "hyper 1.8.0",
 1818   1818   
 "hyper-util",
 1819   1819   
 "rustls 0.23.35",
 1820   1820   
 "rustls-native-certs 0.8.2",
 1821   1821   
 "rustls-pki-types",
 1822   1822   
 "tokio",
 1823   1823   
 "tokio-rustls 0.26.4",
 1824   1824   
 "tower-service",
 1825   1825   
]
 1826   1826   
 1827   1827   
[[package]]
 1828   1828   
name = "hyper-util"
 1829         -
version = "0.1.18"
        1829  +
version = "0.1.17"
 1830   1830   
source = "registry+https://github.com/rust-lang/crates.io-index"
 1831         -
checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56"
        1831  +
checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8"
 1832   1832   
dependencies = [
 1833   1833   
 "base64 0.22.1",
 1834   1834   
 "bytes",
 1835   1835   
 "futures-channel",
 1836   1836   
 "futures-core",
 1837   1837   
 "futures-util",
 1838   1838   
 "http 1.3.1",
 1839   1839   
 "http-body 1.0.1",
 1840         -
 "hyper 1.8.1",
        1840  +
 "hyper 1.8.0",
 1841   1841   
 "ipnet",
 1842   1842   
 "libc",
 1843   1843   
 "percent-encoding",
 1844   1844   
 "pin-project-lite",
 1845   1845   
 "socket2 0.6.1",
 1846   1846   
 "system-configuration",
 1847   1847   
 "tokio",
 1848   1848   
 "tower-service",
 1849   1849   
 "tracing",
 1850   1850   
 "windows-registry",
@@ -2173,2173 +2233,2233 @@
 2193   2193   
source = "registry+https://github.com/rust-lang/crates.io-index"
 2194   2194   
checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
 2195   2195   
 2196   2196   
[[package]]
 2197   2197   
name = "libloading"
 2198   2198   
version = "0.8.9"
 2199   2199   
source = "registry+https://github.com/rust-lang/crates.io-index"
 2200   2200   
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
 2201   2201   
dependencies = [
 2202   2202   
 "cfg-if",
 2203         -
 "windows-link",
        2203  +
 "windows-link 0.2.1",
 2204   2204   
]
 2205   2205   
 2206   2206   
[[package]]
 2207   2207   
name = "libmimalloc-sys"
 2208   2208   
version = "0.1.44"
 2209   2209   
source = "registry+https://github.com/rust-lang/crates.io-index"
 2210   2210   
checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870"
 2211   2211   
dependencies = [
 2212   2212   
 "cc",
 2213   2213   
 "libc",
@@ -2501,2501 +2561,2561 @@
 2521   2521   
[[package]]
 2522   2522   
name = "parking_lot_core"
 2523   2523   
version = "0.9.12"
 2524   2524   
source = "registry+https://github.com/rust-lang/crates.io-index"
 2525   2525   
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
 2526   2526   
dependencies = [
 2527   2527   
 "cfg-if",
 2528   2528   
 "libc",
 2529   2529   
 "redox_syscall",
 2530   2530   
 "smallvec",
 2531         -
 "windows-link",
        2531  +
 "windows-link 0.2.1",
 2532   2532   
]
 2533   2533   
 2534   2534   
[[package]]
 2535   2535   
name = "pem"
 2536   2536   
version = "1.1.1"
 2537   2537   
source = "registry+https://github.com/rust-lang/crates.io-index"
 2538   2538   
checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
 2539   2539   
dependencies = [
 2540   2540   
 "base64 0.13.1",
 2541   2541   
]
@@ -2951,2951 +3013,3013 @@
 2971   2971   
checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da"
 2972   2972   
 2973   2973   
[[package]]
 2974   2974   
name = "regex-syntax"
 2975   2975   
version = "0.8.8"
 2976   2976   
source = "registry+https://github.com/rust-lang/crates.io-index"
 2977   2977   
checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
 2978   2978   
 2979   2979   
[[package]]
 2980   2980   
name = "resolv-conf"
 2981         -
version = "0.7.6"
        2981  +
version = "0.7.5"
 2982   2982   
source = "registry+https://github.com/rust-lang/crates.io-index"
 2983         -
checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7"
        2983  +
checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799"
 2984   2984   
 2985   2985   
[[package]]
 2986   2986   
name = "ring"
 2987   2987   
version = "0.16.20"
 2988   2988   
source = "registry+https://github.com/rust-lang/crates.io-index"
 2989   2989   
checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
 2990   2990   
dependencies = [
 2991   2991   
 "cc",
 2992   2992   
 "libc",
 2993   2993   
 "once_cell",
@@ -3166,3166 +3226,3226 @@
 3186   3186   
 "s2n-tls-sys",
 3187   3187   
]
 3188   3188   
 3189   3189   
[[package]]
 3190   3190   
name = "s2n-tls-hyper"
 3191   3191   
version = "0.0.16"
 3192   3192   
source = "registry+https://github.com/rust-lang/crates.io-index"
 3193   3193   
checksum = "d5bfd127ef11ae746efd789549ee807f5370d5cb04e2955324420f361b2c2bbe"
 3194   3194   
dependencies = [
 3195   3195   
 "http 1.3.1",
 3196         -
 "hyper 1.8.1",
        3196  +
 "hyper 1.8.0",
 3197   3197   
 "hyper-util",
 3198   3198   
 "s2n-tls",
 3199   3199   
 "s2n-tls-tokio",
 3200   3200   
 "tower-service",
 3201   3201   
]
 3202   3202   
 3203   3203   
[[package]]
 3204   3204   
name = "s2n-tls-sys"
 3205   3205   
version = "0.3.24"
 3206   3206   
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4256,4256 +4424,4430 @@
 4276   4276   
dependencies = [
 4277   4277   
 "windows-sys 0.61.2",
 4278   4278   
]
 4279   4279   
 4280   4280   
[[package]]
 4281   4281   
name = "winapi-x86_64-pc-windows-gnu"
 4282   4282   
version = "0.4.0"
 4283   4283   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4284   4284   
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 4285   4285   
        4286  +
[[package]]
        4287  +
name = "windows-link"
        4288  +
version = "0.1.3"
        4289  +
source = "registry+https://github.com/rust-lang/crates.io-index"
        4290  +
checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
        4291  +
 4286   4292   
[[package]]
 4287   4293   
name = "windows-link"
 4288   4294   
version = "0.2.1"
 4289   4295   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4290   4296   
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
 4291   4297   
 4292   4298   
[[package]]
 4293   4299   
name = "windows-registry"
 4294         -
version = "0.6.1"
        4300  +
version = "0.5.3"
 4295   4301   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4296         -
checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720"
        4302  +
checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e"
 4297   4303   
dependencies = [
 4298         -
 "windows-link",
        4304  +
 "windows-link 0.1.3",
 4299   4305   
 "windows-result",
 4300   4306   
 "windows-strings",
 4301   4307   
]
 4302   4308   
 4303   4309   
[[package]]
 4304   4310   
name = "windows-result"
 4305         -
version = "0.4.1"
        4311  +
version = "0.3.4"
 4306   4312   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4307         -
checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
        4313  +
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
 4308   4314   
dependencies = [
 4309         -
 "windows-link",
        4315  +
 "windows-link 0.1.3",
 4310   4316   
]
 4311   4317   
 4312   4318   
[[package]]
 4313   4319   
name = "windows-strings"
 4314         -
version = "0.5.1"
        4320  +
version = "0.4.2"
 4315   4321   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4316         -
checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
        4322  +
checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
 4317   4323   
dependencies = [
 4318         -
 "windows-link",
        4324  +
 "windows-link 0.1.3",
 4319   4325   
]
 4320   4326   
 4321   4327   
[[package]]
 4322   4328   
name = "windows-sys"
 4323   4329   
version = "0.48.0"
 4324   4330   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4325   4331   
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 4326   4332   
dependencies = [
 4327   4333   
 "windows-targets 0.48.5",
 4328   4334   
]
 4329   4335   
 4330   4336   
[[package]]
 4331   4337   
name = "windows-sys"
 4332   4338   
version = "0.52.0"
 4333   4339   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4334   4340   
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 4335   4341   
dependencies = [
 4336   4342   
 "windows-targets 0.52.6",
 4337   4343   
]
 4338   4344   
 4339   4345   
[[package]]
 4340   4346   
name = "windows-sys"
 4341   4347   
version = "0.60.2"
 4342   4348   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4343   4349   
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
 4344   4350   
dependencies = [
 4345   4351   
 "windows-targets 0.53.5",
 4346   4352   
]
 4347   4353   
 4348   4354   
[[package]]
 4349   4355   
name = "windows-sys"
 4350   4356   
version = "0.61.2"
 4351   4357   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4352   4358   
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
 4353   4359   
dependencies = [
 4354         -
 "windows-link",
        4360  +
 "windows-link 0.2.1",
 4355   4361   
]
 4356   4362   
 4357   4363   
[[package]]
 4358   4364   
name = "windows-targets"
 4359   4365   
version = "0.48.5"
 4360   4366   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4361   4367   
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 4362   4368   
dependencies = [
 4363   4369   
 "windows_aarch64_gnullvm 0.48.5",
 4364   4370   
 "windows_aarch64_msvc 0.48.5",
 4365   4371   
 "windows_i686_gnu 0.48.5",
 4366   4372   
 "windows_i686_msvc 0.48.5",
 4367   4373   
 "windows_x86_64_gnu 0.48.5",
 4368   4374   
 "windows_x86_64_gnullvm 0.48.5",
 4369   4375   
 "windows_x86_64_msvc 0.48.5",
 4370   4376   
]
 4371   4377   
 4372   4378   
[[package]]
 4373   4379   
name = "windows-targets"
 4374   4380   
version = "0.52.6"
 4375   4381   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4376   4382   
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
 4377   4383   
dependencies = [
 4378   4384   
 "windows_aarch64_gnullvm 0.52.6",
 4379   4385   
 "windows_aarch64_msvc 0.52.6",
 4380   4386   
 "windows_i686_gnu 0.52.6",
 4381   4387   
 "windows_i686_gnullvm 0.52.6",
 4382   4388   
 "windows_i686_msvc 0.52.6",
 4383   4389   
 "windows_x86_64_gnu 0.52.6",
 4384   4390   
 "windows_x86_64_gnullvm 0.52.6",
 4385   4391   
 "windows_x86_64_msvc 0.52.6",
 4386   4392   
]
 4387   4393   
 4388   4394   
[[package]]
 4389   4395   
name = "windows-targets"
 4390   4396   
version = "0.53.5"
 4391   4397   
source = "registry+https://github.com/rust-lang/crates.io-index"
 4392   4398   
checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
 4393   4399   
dependencies = [
 4394         -
 "windows-link",
        4400  +
 "windows-link 0.2.1",
 4395   4401   
 "windows_aarch64_gnullvm 0.53.1",
 4396   4402   
 "windows_aarch64_msvc 0.53.1",
 4397   4403   
 "windows_i686_gnu 0.53.1",
 4398   4404   
 "windows_i686_gnullvm 0.53.1",
 4399   4405   
 "windows_i686_msvc 0.53.1",
 4400   4406   
 "windows_x86_64_gnu 0.53.1",
 4401   4407   
 "windows_x86_64_gnullvm 0.53.1",
 4402   4408   
 "windows_x86_64_msvc 0.53.1",
 4403   4409   
]
 4404   4410   

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/config.rs

@@ -366,366 +425,441 @@
  386    386   
  387    387   
    /// Set the auth scheme resolver for the builder
  388    388   
    ///
  389    389   
    /// # Examples
  390    390   
    /// See an example for [`Self::auth_scheme_resolver`].
  391    391   
    pub fn set_auth_scheme_resolver(&mut self, auth_scheme_resolver: impl crate::config::auth::ResolveAuthScheme + 'static) -> &mut Self {
  392    392   
        self.runtime_components
  393    393   
            .set_auth_scheme_option_resolver(::std::option::Option::Some(auth_scheme_resolver.into_shared_resolver()));
  394    394   
        self
  395    395   
    }
         396  +
         397  +
    /// Add [NoAuthScheme](aws_smithy_runtime::client::auth::no_auth::NoAuthScheme) as a fallback for operations that don't require authentication
         398  +
    ///
         399  +
    /// The auth scheme resolver will use this when no other auth schemes are applicable.
         400  +
    pub fn allow_no_auth(mut self) -> Self {
         401  +
        self.set_allow_no_auth();
         402  +
        self
         403  +
    }
         404  +
         405  +
    /// Add [NoAuthScheme](aws_smithy_runtime::client::auth::no_auth::NoAuthScheme) as a fallback for operations that don't require authentication
         406  +
    ///
         407  +
    /// The auth scheme resolver will use this when no other auth schemes are applicable.
         408  +
    pub fn set_allow_no_auth(&mut self) -> &mut Self {
         409  +
        self.push_runtime_plugin(::aws_smithy_runtime::client::auth::no_auth::NoAuthRuntimePluginV2::new().into_shared());
         410  +
        self
         411  +
    }
  396    412   
    /// Set the auth scheme preference for an auth scheme resolver
  397    413   
    /// (typically the default auth scheme resolver).
  398    414   
    ///
  399    415   
    /// Each operation has a predefined order of auth schemes, as determined by the service,
  400    416   
    /// for auth scheme resolution. By using the auth scheme preference, customers
  401    417   
    /// can reorder the schemes resolved by the auth scheme resolver.
  402    418   
    ///
  403    419   
    /// The preference list is intended as a hint rather than a strict override.
  404    420   
    /// Any schemes not present in the originally resolved auth schemes will be ignored.
  405    421   
    ///
@@ -1214,1230 +1273,1290 @@
 1234   1250   
    {
 1235   1251   
        if config.behavior_version.is_none() {
 1236   1252   
            config.behavior_version = Some(::aws_smithy_runtime_api::client::behavior_version::BehaviorVersion::latest());
 1237   1253   
        }
 1238   1254   
    }
 1239   1255   
 1240   1256   
    let default_retry_partition = "queryprotocol";
 1241   1257   
 1242   1258   
    let scope = "aws_query";
 1243   1259   
        1260  +
    #[allow(deprecated)]
 1244   1261   
                    let mut plugins = ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins::new()
 1245   1262   
                        // defaults
 1246   1263   
                        .with_client_plugins(::aws_smithy_runtime::client::defaults::default_plugins(
 1247   1264   
                            ::aws_smithy_runtime::client::defaults::DefaultPluginParams::new()
 1248   1265   
                                .with_retry_partition_name(default_retry_partition)
 1249   1266   
                                .with_behavior_version(config.behavior_version.expect("Invalid client configuration: A behavior major version must be set when sending a request or constructing a client. You must set it during client construction or by enabling the `behavior-version-latest` cargo feature."))
 1250   1267   
                        ))
 1251   1268   
                        // user config
 1252   1269   
                        .with_client_plugin(
 1253   1270   
                            ::aws_smithy_runtime_api::client::runtime_plugin::StaticRuntimePlugin::new()

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/config/auth.rs

@@ -71,71 +148,130 @@
   91     91   
    pub fn builder() -> crate::config::auth::ParamsBuilder {
   92     92   
        crate::config::auth::ParamsBuilder::default()
   93     93   
    }
   94     94   
   95     95   
    /// Return the operation name for [`Params`]
   96     96   
    pub fn operation_name(&self) -> &str {
   97     97   
        self.operation_name.as_ref()
   98     98   
    }
   99     99   
}
  100    100   
  101         -
#[cfg(test)]
  102         -
#[derive(Debug)]
  103         -
pub(crate) struct NoAuthSchemeResolver;
  104         -
  105         -
#[cfg(test)]
  106         -
impl ResolveAuthScheme for NoAuthSchemeResolver {
  107         -
    fn resolve_auth_scheme<'a>(
  108         -
        &'a self,
  109         -
        _params: &'a crate::config::auth::Params,
  110         -
        _cfg: &'a ::aws_smithy_types::config_bag::ConfigBag,
  111         -
        _runtime_components: &'a ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponents,
  112         -
    ) -> ::aws_smithy_runtime_api::client::auth::AuthSchemeOptionsFuture<'a> {
  113         -
        ::aws_smithy_runtime_api::client::auth::AuthSchemeOptionsFuture::ready(::std::result::Result::Ok(vec![
  114         -
            ::aws_smithy_runtime_api::client::auth::AuthSchemeOption::from(::aws_smithy_runtime::client::auth::no_auth::NO_AUTH_SCHEME_ID),
  115         -
        ]))
  116         -
    }
  117         -
}
  118         -
  119    101   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  120    102   
/// Builder for [`Params`]
  121    103   
pub struct ParamsBuilder {
  122    104   
    operation_name: ::std::option::Option<::std::borrow::Cow<'static, str>>,
  123    105   
}
  124    106   
impl ParamsBuilder {
  125    107   
    /// Set the operation name for the builder
  126    108   
    pub fn operation_name(self, operation_name: impl Into<::std::borrow::Cow<'static, str>>) -> Self {
  127    109   
        self.set_operation_name(::std::option::Option::Some(operation_name.into()))
  128    110   
    }

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/empty_input_and_empty_output.rs

@@ -221,221 +281,283 @@
  241    241   
mod empty_input_and_empty_output_test {
  242    242   
  243    243   
    /// Empty input serializes no extra query params
  244    244   
    /// Test ID: QueryEmptyInputAndEmptyOutput
  245    245   
    #[::tokio::test]
  246    246   
    #[::tracing_test::traced_test]
  247    247   
    async fn query_empty_input_and_empty_output_request() {
  248    248   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  249    249   
        let config_builder = crate::config::Config::builder()
  250    250   
            .with_test_defaults()
  251         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         251  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         252  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         253  +
            .allow_no_auth()
  252    254   
            .endpoint_url("https://example.com");
  253    255   
  254    256   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  255    257   
        let result = client.empty_input_and_empty_output().send().await;
  256    258   
        let _ = dbg!(result);
  257    259   
        let http_request = request_receiver.expect_request();
  258    260   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  259    261   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  260    262   
        let body = http_request.body().bytes().expect("body should be strict");
  261    263   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/endpoint_operation.rs

@@ -221,221 +281,283 @@
  241    241   
  242    242   
    /// Operations can prepend to the given host if they define the
  243    243   
    /// endpoint trait.
  244    244   
    /// Test ID: AwsQueryEndpointTrait
  245    245   
    #[::tokio::test]
  246    246   
    #[::tracing_test::traced_test]
  247    247   
    async fn aws_query_endpoint_trait_request() {
  248    248   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  249    249   
        let config_builder = crate::config::Config::builder()
  250    250   
            .with_test_defaults()
  251         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         251  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         252  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         253  +
            .allow_no_auth()
  252    254   
            .endpoint_url("https://example.com");
  253    255   
  254    256   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  255    257   
        let result = client.endpoint_operation().send().await;
  256    258   
        let _ = dbg!(result);
  257    259   
        let http_request = request_receiver.expect_request();
  258    260   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  259    261   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  260    262   
        let body = http_request.body().bytes().expect("body should be strict");
  261    263   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/endpoint_with_host_label_operation.rs

@@ -244,244 +304,306 @@
  264    264   
    /// Operations can prepend to the given host if they define the
  265    265   
    /// endpoint trait, and can use the host label trait to define
  266    266   
    /// further customization based on user input.
  267    267   
    /// Test ID: AwsQueryEndpointTraitWithHostLabel
  268    268   
    #[::tokio::test]
  269    269   
    #[::tracing_test::traced_test]
  270    270   
    async fn aws_query_endpoint_trait_with_host_label_request() {
  271    271   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  272    272   
        let config_builder = crate::config::Config::builder()
  273    273   
            .with_test_defaults()
  274         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         274  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         275  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         276  +
            .allow_no_auth()
  275    277   
            .endpoint_url("https://example.com");
  276    278   
  277    279   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  278    280   
        let result = client
  279    281   
            .endpoint_with_host_label_operation()
  280    282   
            .set_label(::std::option::Option::Some("bar".to_owned()))
  281    283   
            .send()
  282    284   
            .await;
  283    285   
        let _ = dbg!(result);
  284    286   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/host_with_path_operation.rs

@@ -221,221 +281,283 @@
  241    241   
mod host_with_path_operation_test {
  242    242   
  243    243   
    /// Custom endpoints supplied by users can have paths
  244    244   
    /// Test ID: QueryHostWithPath
  245    245   
    #[::tokio::test]
  246    246   
    #[::tracing_test::traced_test]
  247    247   
    async fn query_host_with_path_request() {
  248    248   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  249    249   
        let config_builder = crate::config::Config::builder()
  250    250   
            .with_test_defaults()
  251         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         251  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         252  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         253  +
            .allow_no_auth()
  252    254   
            .endpoint_url("https://example.com/custom");
  253    255   
  254    256   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  255    257   
        let result = client.host_with_path_operation().send().await;
  256    258   
        let _ = dbg!(result);
  257    259   
        let http_request = request_receiver.expect_request();
  258    260   
        let body = http_request.body().bytes().expect("body should be strict");
  259    261   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  260    262   
            body,
  261    263   
            "Action=HostWithPathOperation&Version=2020-01-08",

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/nested_structures.rs

@@ -218,218 +278,280 @@
  238    238   
mod nested_structures_test {
  239    239   
  240    240   
    /// Serializes nested structures using dots
  241    241   
    /// Test ID: NestedStructures
  242    242   
    #[::tokio::test]
  243    243   
    #[::tracing_test::traced_test]
  244    244   
    async fn nested_structures_request() {
  245    245   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  246    246   
        let config_builder = crate::config::Config::builder()
  247    247   
            .with_test_defaults()
  248         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         248  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         249  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         250  +
            .allow_no_auth()
  249    251   
            .endpoint_url("https://example.com");
  250    252   
  251    253   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  252    254   
        let result = client
  253    255   
            .nested_structures()
  254    256   
            .set_nested(::std::option::Option::Some(
  255    257   
                crate::types::StructArg::builder()
  256    258   
                    .set_string_arg(::std::option::Option::Some("foo".to_owned()))
  257    259   
                    .set_other_arg(::std::option::Option::Some(true))
  258    260   
                    .set_recursive_arg(::std::option::Option::Some(::std::boxed::Box::new(

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/no_input_and_no_output.rs

@@ -215,215 +275,277 @@
  235    235   
mod no_input_and_no_output_test {
  236    236   
  237    237   
    /// No input serializes no additional query params
  238    238   
    /// Test ID: QueryNoInputAndNoOutput
  239    239   
    #[::tokio::test]
  240    240   
    #[::tracing_test::traced_test]
  241    241   
    async fn query_no_input_and_no_output_request() {
  242    242   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  243    243   
        let config_builder = crate::config::Config::builder()
  244    244   
            .with_test_defaults()
  245         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         245  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         246  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         247  +
            .allow_no_auth()
  246    248   
            .endpoint_url("https://example.com");
  247    249   
  248    250   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  249    251   
        let result = client.no_input_and_no_output().send().await;
  250    252   
        let _ = dbg!(result);
  251    253   
        let http_request = request_receiver.expect_request();
  252    254   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  253    255   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  254    256   
        let body = http_request.body().bytes().expect("body should be strict");
  255    257   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/no_input_and_output.rs

@@ -215,215 +275,277 @@
  235    235   
mod no_input_and_output_test {
  236    236   
  237    237   
    /// No input serializes no payload
  238    238   
    /// Test ID: QueryNoInputAndOutput
  239    239   
    #[::tokio::test]
  240    240   
    #[::tracing_test::traced_test]
  241    241   
    async fn query_no_input_and_output_request() {
  242    242   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  243    243   
        let config_builder = crate::config::Config::builder()
  244    244   
            .with_test_defaults()
  245         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         245  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         246  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         247  +
            .allow_no_auth()
  246    248   
            .endpoint_url("https://example.com");
  247    249   
  248    250   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  249    251   
        let result = client.no_input_and_output().send().await;
  250    252   
        let _ = dbg!(result);
  251    253   
        let http_request = request_receiver.expect_request();
  252    254   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  253    255   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  254    256   
        let body = http_request.body().bytes().expect("body should be strict");
  255    257   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/put_with_content_encoding.rs

@@ -224,224 +315,319 @@
  244    244   
mod put_with_content_encoding_test {
  245    245   
  246    246   
    /// Compression algorithm encoding is appended to the Content-Encoding header.
  247    247   
    /// Test ID: SDKAppliedContentEncoding_awsQuery
  248    248   
    #[::tokio::test]
  249    249   
    #[::tracing_test::traced_test]
  250    250   
    async fn sdk_applied_content_encoding_aws_query_request() {
  251    251   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  252    252   
        let config_builder = crate::config::Config::builder()
  253    253   
            .with_test_defaults()
  254         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         254  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         255  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         256  +
            .allow_no_auth()
  255    257   
            .endpoint_url("https://example.com");
  256    258   
  257    259   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  258    260   
        let result = client.put_with_content_encoding()
  259    261   
        .set_data(
  260    262   
            ::std::option::Option::Some(
  261    263   
                "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\n".to_owned()
  262    264   
            )
  263    265   
        )
  264    266   
        .send().await;
  265    267   
        let _ = dbg!(result);
  266    268   
        let http_request = request_receiver.expect_request();
  267    269   
        let expected_headers = [("Content-Encoding", "gzip")];
  268    270   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  269    271   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  270    272   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  271    273   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  272    274   
    }
  273    275   
  274    276   
    /// Compression algorithm encoding is appended to the Content-Encoding header, and the
  275    277   
    /// user-provided content-encoding is NOT in the Content-Encoding header since HTTP binding
  276    278   
    /// traits are ignored in the awsQuery protocol.
  277    279   
    ///
  278    280   
    /// Test ID: SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsQuery
  279    281   
    #[::tokio::test]
  280    282   
    #[::tracing_test::traced_test]
  281    283   
    async fn sdk_appends_gzip_and_ignores_http_provided_encoding_aws_query_request() {
  282    284   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  283    285   
        let config_builder = crate::config::Config::builder()
  284    286   
            .with_test_defaults()
  285         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         287  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         288  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         289  +
            .allow_no_auth()
  286    290   
            .endpoint_url("https://example.com");
  287    291   
  288    292   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  289    293   
        let result = client.put_with_content_encoding()
  290    294   
        .set_encoding(
  291    295   
            ::std::option::Option::Some(
  292    296   
                "custom".to_owned()
  293    297   
            )
  294    298   
        )
  295    299   
        .set_data(

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/query_idempotency_token_auto_fill.rs

@@ -232,232 +322,326 @@
  252    252   
mod query_idempotency_token_auto_fill_test {
  253    253   
  254    254   
    /// Automatically adds idempotency token when not set
  255    255   
    /// Test ID: QueryProtocolIdempotencyTokenAutoFill
  256    256   
    #[::tokio::test]
  257    257   
    #[::tracing_test::traced_test]
  258    258   
    async fn query_protocol_idempotency_token_auto_fill_request() {
  259    259   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  260    260   
        let config_builder = crate::config::Config::builder()
  261    261   
            .with_test_defaults()
  262         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         262  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         263  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         264  +
            .allow_no_auth()
  263    265   
            .endpoint_url("https://example.com");
  264    266   
  265    267   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  266    268   
        let result = client.query_idempotency_token_auto_fill().send().await;
  267    269   
        let _ = dbg!(result);
  268    270   
        let http_request = request_receiver.expect_request();
  269    271   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  270    272   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  271    273   
        let required_headers = &["Content-Length"];
  272    274   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  273    275   
        let body = http_request.body().bytes().expect("body should be strict");
  274    276   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  275    277   
            body,
  276    278   
            "Action=QueryIdempotencyTokenAutoFill&Version=2020-01-08&token=00000000-0000-4000-8000-000000000000",
  277    279   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  278    280   
        ));
  279    281   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  280    282   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  281    283   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  282    284   
    }
  283    285   
  284    286   
    /// Uses the given idempotency token as-is
  285    287   
    /// Test ID: QueryProtocolIdempotencyTokenAutoFillIsSet
  286    288   
    #[::tokio::test]
  287    289   
    #[::tracing_test::traced_test]
  288    290   
    async fn query_protocol_idempotency_token_auto_fill_is_set_request() {
  289    291   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  290    292   
        let config_builder = crate::config::Config::builder()
  291    293   
            .with_test_defaults()
  292         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         294  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         295  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         296  +
            .allow_no_auth()
  293    297   
            .endpoint_url("https://example.com");
  294    298   
  295    299   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  296    300   
        let result = client
  297    301   
            .query_idempotency_token_auto_fill()
  298    302   
            .set_token(::std::option::Option::Some("00000000-0000-4000-8000-000000000123".to_owned()))
  299    303   
            .send()
  300    304   
            .await;
  301    305   
        let _ = dbg!(result);
  302    306   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/query_lists.rs

@@ -215,215 +437,449 @@
  235    235   
mod query_lists_test {
  236    236   
  237    237   
    /// Serializes query lists
  238    238   
    /// Test ID: QueryLists
  239    239   
    #[::tokio::test]
  240    240   
    #[::tracing_test::traced_test]
  241    241   
    async fn query_lists_request() {
  242    242   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  243    243   
        let config_builder = crate::config::Config::builder()
  244    244   
            .with_test_defaults()
  245         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         245  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         246  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         247  +
            .allow_no_auth()
  246    248   
            .endpoint_url("https://example.com");
  247    249   
  248    250   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  249    251   
        let result = client
  250    252   
            .query_lists()
  251    253   
            .set_list_arg(::std::option::Option::Some(vec!["foo".to_owned(), "bar".to_owned(), "baz".to_owned()]))
  252    254   
            .set_complex_list_arg(::std::option::Option::Some(vec![
  253    255   
                crate::types::GreetingStruct::builder()
  254    256   
                    .set_hi(::std::option::Option::Some("hello".to_owned()))
  255    257   
                    .build(),
  256    258   
                crate::types::GreetingStruct::builder()
  257    259   
                    .set_hi(::std::option::Option::Some("hola".to_owned()))
  258    260   
                    .build(),
  259    261   
            ]))
  260    262   
            .send()
  261    263   
            .await;
  262    264   
        let _ = dbg!(result);
  263    265   
        let http_request = request_receiver.expect_request();
  264    266   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  265    267   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  266    268   
        let body = http_request.body().bytes().expect("body should be strict");
  267    269   
        ::aws_smithy_protocol_test::assert_ok(
  268    270   
        ::aws_smithy_protocol_test::validate_body(body, "Action=QueryLists&Version=2020-01-08&ListArg.member.1=foo&ListArg.member.2=bar&ListArg.member.3=baz&ComplexListArg.member.1.hi=hello&ComplexListArg.member.2.hi=hola", ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"))
  269    271   
        );
  270    272   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  271    273   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  272    274   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  273    275   
    }
  274    276   
  275    277   
    /// Serializes empty query lists
  276    278   
    /// Test ID: EmptyQueryLists
  277    279   
    #[::tokio::test]
  278    280   
    #[::tracing_test::traced_test]
  279    281   
    async fn empty_query_lists_request() {
  280    282   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  281    283   
        let config_builder = crate::config::Config::builder()
  282    284   
            .with_test_defaults()
  283         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         285  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         286  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         287  +
            .allow_no_auth()
  284    288   
            .endpoint_url("https://example.com");
  285    289   
  286    290   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  287    291   
        let result = client.query_lists().set_list_arg(::std::option::Option::Some(vec![])).send().await;
  288    292   
        let _ = dbg!(result);
  289    293   
        let http_request = request_receiver.expect_request();
  290    294   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  291    295   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  292    296   
        let body = http_request.body().bytes().expect("body should be strict");
  293    297   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  294    298   
            body,
  295    299   
            "Action=QueryLists&Version=2020-01-08&ListArg=",
  296    300   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  297    301   
        ));
  298    302   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  299    303   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  300    304   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  301    305   
    }
  302    306   
  303    307   
    /// Flattens query lists by repeating the member name and removing the member element
  304    308   
    /// Test ID: FlattenedQueryLists
  305    309   
    #[::tokio::test]
  306    310   
    #[::tracing_test::traced_test]
  307    311   
    async fn flattened_query_lists_request() {
  308    312   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  309    313   
        let config_builder = crate::config::Config::builder()
  310    314   
            .with_test_defaults()
  311         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         315  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         316  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         317  +
            .allow_no_auth()
  312    318   
            .endpoint_url("https://example.com");
  313    319   
  314    320   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  315    321   
        let result = client
  316    322   
            .query_lists()
  317    323   
            .set_flattened_list_arg(::std::option::Option::Some(vec!["A".to_owned(), "B".to_owned()]))
  318    324   
            .send()
  319    325   
            .await;
  320    326   
        let _ = dbg!(result);
  321    327   
        let http_request = request_receiver.expect_request();
  322    328   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  323    329   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  324    330   
        let body = http_request.body().bytes().expect("body should be strict");
  325    331   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  326    332   
            body,
  327    333   
            "Action=QueryLists&Version=2020-01-08&FlattenedListArg.1=A&FlattenedListArg.2=B",
  328    334   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  329    335   
        ));
  330    336   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  331    337   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  332    338   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  333    339   
    }
  334    340   
  335    341   
    /// Changes the member of lists using xmlName trait
  336    342   
    /// Test ID: QueryListArgWithXmlNameMember
  337    343   
    #[::tokio::test]
  338    344   
    #[::tracing_test::traced_test]
  339    345   
    async fn query_list_arg_with_xml_name_member_request() {
  340    346   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  341    347   
        let config_builder = crate::config::Config::builder()
  342    348   
            .with_test_defaults()
  343         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         349  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         350  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         351  +
            .allow_no_auth()
  344    352   
            .endpoint_url("https://example.com");
  345    353   
  346    354   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  347    355   
        let result = client
  348    356   
            .query_lists()
  349    357   
            .set_list_arg_with_xml_name_member(::std::option::Option::Some(vec!["A".to_owned(), "B".to_owned()]))
  350    358   
            .send()
  351    359   
            .await;
  352    360   
        let _ = dbg!(result);
  353    361   
        let http_request = request_receiver.expect_request();
  354    362   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  355    363   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  356    364   
        let body = http_request.body().bytes().expect("body should be strict");
  357    365   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  358    366   
            body,
  359    367   
            "Action=QueryLists&Version=2020-01-08&ListArgWithXmlNameMember.item.1=A&ListArgWithXmlNameMember.item.2=B",
  360    368   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  361    369   
        ));
  362    370   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  363    371   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  364    372   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  365    373   
    }
  366    374   
  367    375   
    /// Changes the name of flattened lists using xmlName trait on the structure member
  368    376   
    /// Test ID: QueryFlattenedListArgWithXmlName
  369    377   
    #[::tokio::test]
  370    378   
    #[::tracing_test::traced_test]
  371    379   
    async fn query_flattened_list_arg_with_xml_name_request() {
  372    380   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  373    381   
        let config_builder = crate::config::Config::builder()
  374    382   
            .with_test_defaults()
  375         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         383  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         384  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         385  +
            .allow_no_auth()
  376    386   
            .endpoint_url("https://example.com");
  377    387   
  378    388   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  379    389   
        let result = client
  380    390   
            .query_lists()
  381    391   
            .set_flattened_list_arg_with_xml_name(::std::option::Option::Some(vec!["A".to_owned(), "B".to_owned()]))
  382    392   
            .send()
  383    393   
            .await;
  384    394   
        let _ = dbg!(result);
  385    395   
        let http_request = request_receiver.expect_request();
  386    396   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  387    397   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  388    398   
        let body = http_request.body().bytes().expect("body should be strict");
  389    399   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  390    400   
            body,
  391    401   
            "Action=QueryLists&Version=2020-01-08&Hi.1=A&Hi.2=B",
  392    402   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  393    403   
        ));
  394    404   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  395    405   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  396    406   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  397    407   
    }
  398    408   
  399    409   
    /// Nested structure with a list member
  400    410   
    /// Test ID: QueryNestedStructWithList
  401    411   
    #[::tokio::test]
  402    412   
    #[::tracing_test::traced_test]
  403    413   
    async fn query_nested_struct_with_list_request() {
  404    414   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  405    415   
        let config_builder = crate::config::Config::builder()
  406    416   
            .with_test_defaults()
  407         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         417  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         418  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         419  +
            .allow_no_auth()
  408    420   
            .endpoint_url("https://example.com");
  409    421   
  410    422   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  411    423   
        let result = client
  412    424   
            .query_lists()
  413    425   
            .set_nested_with_list(::std::option::Option::Some(
  414    426   
                crate::types::NestedStructWithList::builder()
  415    427   
                    .set_list_arg(::std::option::Option::Some(vec!["A".to_owned(), "B".to_owned()]))
  416    428   
                    .build(),
  417    429   
            ))

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/query_maps.rs

@@ -214,214 +568,586 @@
  234    234   
mod query_maps_test {
  235    235   
  236    236   
    /// Serializes query maps
  237    237   
    /// Test ID: QuerySimpleQueryMaps
  238    238   
    #[::tokio::test]
  239    239   
    #[::tracing_test::traced_test]
  240    240   
    async fn query_simple_query_maps_request() {
  241    241   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  242    242   
        let config_builder = crate::config::Config::builder()
  243    243   
            .with_test_defaults()
  244         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         244  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         245  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         246  +
            .allow_no_auth()
  245    247   
            .endpoint_url("https://example.com");
  246    248   
  247    249   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  248    250   
        let result = client
  249    251   
            .query_maps()
  250    252   
            .set_map_arg(::std::option::Option::Some({
  251    253   
                let mut ret = ::std::collections::HashMap::new();
  252    254   
                ret.insert("bar".to_owned(), "Bar".to_owned());
  253    255   
                ret.insert("foo".to_owned(), "Foo".to_owned());
  254    256   
                ret
  255    257   
            }))
  256    258   
            .send()
  257    259   
            .await;
  258    260   
        let _ = dbg!(result);
  259    261   
        let http_request = request_receiver.expect_request();
  260    262   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  261    263   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  262    264   
        let body = http_request.body().bytes().expect("body should be strict");
  263    265   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  264    266   
            body,
  265    267   
            "Action=QueryMaps&Version=2020-01-08&MapArg.entry.1.key=bar&MapArg.entry.1.value=Bar&MapArg.entry.2.key=foo&MapArg.entry.2.value=Foo",
  266    268   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  267    269   
        ));
  268    270   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  269    271   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  270    272   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  271    273   
    }
  272    274   
  273    275   
    /// Serializes query maps and uses xmlName
  274    276   
    /// Test ID: QuerySimpleQueryMapsWithXmlName
  275    277   
    #[::tokio::test]
  276    278   
    #[::tracing_test::traced_test]
  277    279   
    async fn query_simple_query_maps_with_xml_name_request() {
  278    280   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  279    281   
        let config_builder = crate::config::Config::builder()
  280    282   
            .with_test_defaults()
  281         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         283  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         284  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         285  +
            .allow_no_auth()
  282    286   
            .endpoint_url("https://example.com");
  283    287   
  284    288   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  285    289   
        let result = client
  286    290   
            .query_maps()
  287    291   
            .set_renamed_map_arg(::std::option::Option::Some({
  288    292   
                let mut ret = ::std::collections::HashMap::new();
  289    293   
                ret.insert("foo".to_owned(), "Foo".to_owned());
  290    294   
                ret
  291    295   
            }))
  292    296   
            .send()
  293    297   
            .await;
  294    298   
        let _ = dbg!(result);
  295    299   
        let http_request = request_receiver.expect_request();
  296    300   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  297    301   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  298    302   
        let body = http_request.body().bytes().expect("body should be strict");
  299    303   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  300    304   
            body,
  301    305   
            "Action=QueryMaps&Version=2020-01-08&Foo.entry.1.key=foo&Foo.entry.1.value=Foo",
  302    306   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  303    307   
        ));
  304    308   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  305    309   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  306    310   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  307    311   
    }
  308    312   
  309    313   
    /// Serializes complex query maps
  310    314   
    /// Test ID: QueryComplexQueryMaps
  311    315   
    #[::tokio::test]
  312    316   
    #[::tracing_test::traced_test]
  313    317   
    async fn query_complex_query_maps_request() {
  314    318   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  315    319   
        let config_builder = crate::config::Config::builder()
  316    320   
            .with_test_defaults()
  317         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         321  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         322  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         323  +
            .allow_no_auth()
  318    324   
            .endpoint_url("https://example.com");
  319    325   
  320    326   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  321    327   
        let result = client
  322    328   
            .query_maps()
  323    329   
            .set_complex_map_arg(::std::option::Option::Some({
  324    330   
                let mut ret = ::std::collections::HashMap::new();
  325    331   
                ret.insert(
  326    332   
                    "bar".to_owned(),
  327    333   
                    crate::types::GreetingStruct::builder()
  328    334   
                        .set_hi(::std::option::Option::Some("Bar".to_owned()))
  329    335   
                        .build(),
  330    336   
                );
  331    337   
                ret.insert(
  332    338   
                    "foo".to_owned(),
  333    339   
                    crate::types::GreetingStruct::builder()
  334    340   
                        .set_hi(::std::option::Option::Some("Foo".to_owned()))
  335    341   
                        .build(),
  336    342   
                );
  337    343   
                ret
  338    344   
            }))
  339    345   
            .send()
  340    346   
            .await;
  341    347   
        let _ = dbg!(result);
  342    348   
        let http_request = request_receiver.expect_request();
  343    349   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  344    350   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  345    351   
        let body = http_request.body().bytes().expect("body should be strict");
  346    352   
        ::aws_smithy_protocol_test::assert_ok(
  347    353   
        ::aws_smithy_protocol_test::validate_body(body, "Action=QueryMaps&Version=2020-01-08&ComplexMapArg.entry.1.key=bar&ComplexMapArg.entry.1.value.hi=Bar&ComplexMapArg.entry.2.key=foo&ComplexMapArg.entry.2.value.hi=Foo", ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"))
  348    354   
        );
  349    355   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  350    356   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  351    357   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  352    358   
    }
  353    359   
  354    360   
    /// Does not serialize empty query maps
  355    361   
    /// Test ID: QueryEmptyQueryMaps
  356    362   
    #[::tokio::test]
  357    363   
    #[::tracing_test::traced_test]
  358    364   
    async fn query_empty_query_maps_request() {
  359    365   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  360    366   
        let config_builder = crate::config::Config::builder()
  361    367   
            .with_test_defaults()
  362         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         368  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         369  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         370  +
            .allow_no_auth()
  363    371   
            .endpoint_url("https://example.com");
  364    372   
  365    373   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  366    374   
        let result = client
  367    375   
            .query_maps()
  368    376   
            .set_map_arg(::std::option::Option::Some(::std::collections::HashMap::new()))
  369    377   
            .send()
  370    378   
            .await;
  371    379   
        let _ = dbg!(result);
  372    380   
        let http_request = request_receiver.expect_request();
  373    381   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  374    382   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  375    383   
        let body = http_request.body().bytes().expect("body should be strict");
  376    384   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  377    385   
            body,
  378    386   
            "Action=QueryMaps&Version=2020-01-08",
  379    387   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  380    388   
        ));
  381    389   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  382    390   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  383    391   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  384    392   
    }
  385    393   
  386    394   
    /// Serializes query maps where the member has an xmlName trait
  387    395   
    /// Test ID: QueryQueryMapWithMemberXmlName
  388    396   
    #[::tokio::test]
  389    397   
    #[::tracing_test::traced_test]
  390    398   
    async fn query_query_map_with_member_xml_name_request() {
  391    399   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  392    400   
        let config_builder = crate::config::Config::builder()
  393    401   
            .with_test_defaults()
  394         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         402  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         403  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         404  +
            .allow_no_auth()
  395    405   
            .endpoint_url("https://example.com");
  396    406   
  397    407   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  398    408   
        let result = client
  399    409   
            .query_maps()
  400    410   
            .set_map_with_xml_member_name(::std::option::Option::Some({
  401    411   
                let mut ret = ::std::collections::HashMap::new();
  402    412   
                ret.insert("bar".to_owned(), "Bar".to_owned());
  403    413   
                ret.insert("foo".to_owned(), "Foo".to_owned());
  404    414   
                ret
  405    415   
            }))
  406    416   
            .send()
  407    417   
            .await;
  408    418   
        let _ = dbg!(result);
  409    419   
        let http_request = request_receiver.expect_request();
  410    420   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  411    421   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  412    422   
        let body = http_request.body().bytes().expect("body should be strict");
  413    423   
        ::aws_smithy_protocol_test::assert_ok(
  414    424   
        ::aws_smithy_protocol_test::validate_body(body, "Action=QueryMaps&Version=2020-01-08&MapWithXmlMemberName.entry.1.K=bar&MapWithXmlMemberName.entry.1.V=Bar&MapWithXmlMemberName.entry.2.K=foo&MapWithXmlMemberName.entry.2.V=Foo", ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"))
  415    425   
        );
  416    426   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  417    427   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  418    428   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  419    429   
    }
  420    430   
  421    431   
    /// Serializes flattened query maps
  422    432   
    /// Test ID: QueryFlattenedQueryMaps
  423    433   
    #[::tokio::test]
  424    434   
    #[::tracing_test::traced_test]
  425    435   
    async fn query_flattened_query_maps_request() {
  426    436   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  427    437   
        let config_builder = crate::config::Config::builder()
  428    438   
            .with_test_defaults()
  429         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         439  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         440  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         441  +
            .allow_no_auth()
  430    442   
            .endpoint_url("https://example.com");
  431    443   
  432    444   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  433    445   
        let result = client
  434    446   
            .query_maps()
  435    447   
            .set_flattened_map(::std::option::Option::Some({
  436    448   
                let mut ret = ::std::collections::HashMap::new();
  437    449   
                ret.insert("bar".to_owned(), "Bar".to_owned());
  438    450   
                ret.insert("foo".to_owned(), "Foo".to_owned());
  439    451   
                ret
  440    452   
            }))
  441    453   
            .send()
  442    454   
            .await;
  443    455   
        let _ = dbg!(result);
  444    456   
        let http_request = request_receiver.expect_request();
  445    457   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  446    458   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  447    459   
        let body = http_request.body().bytes().expect("body should be strict");
  448    460   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  449    461   
            body,
  450    462   
            "Action=QueryMaps&Version=2020-01-08&FlattenedMap.1.key=bar&FlattenedMap.1.value=Bar&FlattenedMap.2.key=foo&FlattenedMap.2.value=Foo",
  451    463   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  452    464   
        ));
  453    465   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  454    466   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  455    467   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  456    468   
    }
  457    469   
  458    470   
    /// Serializes flattened query maps that use an xmlName
  459    471   
    /// Test ID: QueryFlattenedQueryMapsWithXmlName
  460    472   
    #[::tokio::test]
  461    473   
    #[::tracing_test::traced_test]
  462    474   
    async fn query_flattened_query_maps_with_xml_name_request() {
  463    475   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  464    476   
        let config_builder = crate::config::Config::builder()
  465    477   
            .with_test_defaults()
  466         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         478  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         479  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         480  +
            .allow_no_auth()
  467    481   
            .endpoint_url("https://example.com");
  468    482   
  469    483   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  470    484   
        let result = client
  471    485   
            .query_maps()
  472    486   
            .set_flattened_map_with_xml_name(::std::option::Option::Some({
  473    487   
                let mut ret = ::std::collections::HashMap::new();
  474    488   
                ret.insert("bar".to_owned(), "Bar".to_owned());
  475    489   
                ret.insert("foo".to_owned(), "Foo".to_owned());
  476    490   
                ret
  477    491   
            }))
  478    492   
            .send()
  479    493   
            .await;
  480    494   
        let _ = dbg!(result);
  481    495   
        let http_request = request_receiver.expect_request();
  482    496   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  483    497   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  484    498   
        let body = http_request.body().bytes().expect("body should be strict");
  485    499   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  486    500   
            body,
  487    501   
            "Action=QueryMaps&Version=2020-01-08&Hi.1.K=bar&Hi.1.V=Bar&Hi.2.K=foo&Hi.2.V=Foo",
  488    502   
            ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"),
  489    503   
        ));
  490    504   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  491    505   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  492    506   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  493    507   
    }
  494    508   
  495    509   
    /// Serializes query map of lists
  496    510   
    /// Test ID: QueryQueryMapOfLists
  497    511   
    #[::tokio::test]
  498    512   
    #[::tracing_test::traced_test]
  499    513   
    async fn query_query_map_of_lists_request() {
  500    514   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  501    515   
        let config_builder = crate::config::Config::builder()
  502    516   
            .with_test_defaults()
  503         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         517  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         518  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         519  +
            .allow_no_auth()
  504    520   
            .endpoint_url("https://example.com");
  505    521   
  506    522   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  507    523   
        let result = client
  508    524   
            .query_maps()
  509    525   
            .set_map_of_lists(::std::option::Option::Some({
  510    526   
                let mut ret = ::std::collections::HashMap::new();
  511    527   
                ret.insert("bar".to_owned(), vec!["C".to_owned(), "D".to_owned()]);
  512    528   
                ret.insert("foo".to_owned(), vec!["A".to_owned(), "B".to_owned()]);
  513    529   
                ret
  514    530   
            }))
  515    531   
            .send()
  516    532   
            .await;
  517    533   
        let _ = dbg!(result);
  518    534   
        let http_request = request_receiver.expect_request();
  519    535   
        let expected_headers = [("Content-Type", "application/x-www-form-urlencoded")];
  520    536   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  521    537   
        let body = http_request.body().bytes().expect("body should be strict");
  522    538   
        ::aws_smithy_protocol_test::assert_ok(
  523    539   
        ::aws_smithy_protocol_test::validate_body(body, "Action=QueryMaps&Version=2020-01-08&MapOfLists.entry.1.key=bar&MapOfLists.entry.1.value.member.1=C&MapOfLists.entry.1.value.member.2=D&MapOfLists.entry.2.key=foo&MapOfLists.entry.2.value.member.1=A&MapOfLists.entry.2.value.member.2=B", ::aws_smithy_protocol_test::MediaType::from("application/x-www-form-urlencoded"))
  524    540   
        );
  525    541   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  526    542   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  527    543   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  528    544   
    }
  529    545   
  530    546   
    /// Serializes nested struct with map member
  531    547   
    /// Test ID: QueryNestedStructWithMap
  532    548   
    #[::tokio::test]
  533    549   
    #[::tracing_test::traced_test]
  534    550   
    async fn query_nested_struct_with_map_request() {
  535    551   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  536    552   
        let config_builder = crate::config::Config::builder()
  537    553   
            .with_test_defaults()
  538         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         554  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         555  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         556  +
            .allow_no_auth()
  539    557   
            .endpoint_url("https://example.com");
  540    558   
  541    559   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  542    560   
        let result = client
  543    561   
            .query_maps()
  544    562   
            .set_nested_struct_with_map(::std::option::Option::Some(
  545    563   
                crate::types::NestedStructWithMap::builder()
  546    564   
                    .set_map_arg(::std::option::Option::Some({
  547    565   
                        let mut ret = ::std::collections::HashMap::new();
  548    566   
                        ret.insert("bar".to_owned(), "Bar".to_owned());

tmp-codegen-diff/codegen-client-test/aws_query/rust-client-codegen/src/operation/query_timestamps.rs

@@ -218,218 +278,280 @@
  238    238   
mod query_timestamps_test {
  239    239   
  240    240   
    /// Serializes timestamps
  241    241   
    /// Test ID: QueryTimestampsInput
  242    242   
    #[::tokio::test]
  243    243   
    #[::tracing_test::traced_test]
  244    244   
    async fn query_timestamps_input_request() {
  245    245   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  246    246   
        let config_builder = crate::config::Config::builder()
  247    247   
            .with_test_defaults()
  248         -
            .auth_scheme_resolver(crate::config::auth::NoAuthSchemeResolver)
         248  +
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
         249  +
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
         250  +
            .allow_no_auth()
  249    251   
            .endpoint_url("https://example.com");
  250    252   
  251    253   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  252    254   
        let result = client
  253    255   
            .query_timestamps()
  254    256   
            .set_normal_format(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  255    257   
                1422172800, 0_f64,
  256    258   
            )))
  257    259   
            .set_epoch_member(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  258    260   
                1422172800, 0_f64,