diff --git a/README.md b/README.md
index 162276386..b402fab8f 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,11 @@ however most of them comes with all issues of auto generated code.
 - hardcoded `guzzlehttp/guzzle` or `aws/aws-sdk-php` dependency 
 - legacy code base (7.2)
 - no logger
+- SDK's are oriented around single seller which is not suitable for bigger systems
+- missing or lacking support for `client_credentials` grant type
+- not all API covered
 
+This API goal is to resolve all above mentioned issues. 
 
 ### Development
 
@@ -34,7 +38,10 @@ composer generate
 ```php
 <?php
 
-use AmazonPHP\SellingPartner\Api\CatalogApi\CatalogItemSDK;
+use AmazonPHP\SellingPartner\Api\AuthorizationSDK;
+use AmazonPHP\SellingPartner\Api\CatalogItemSDK;
+use AmazonPHP\SellingPartner\Marketplace;
+use AmazonPHP\SellingPartner\Regions;
 use Buzz\Client\Curl;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\OAuth;
@@ -47,23 +54,32 @@ require_once __DIR__ . '/vendor/autoload.php';
 $factory = new Psr17Factory();
 $client = new Curl($factory);
 
-$catalog = new CatalogItemSDK(
-    new OAuth(
-        $client,
-        new HttpFactory($factory, $factory),
-        Configuration::forIAMUser(
-            'client_id',
-            'client_secret',
-            'eu-west-1',
-            'access_key',
-            'secret_key'
-        ),
-        'seller_refresh_token'
+$oauth = new OAuth(
+    $client,
+    $httpFactory = new HttpFactory($factory, $factory),
+    $config = Configuration::forIAMUser(
+        'lwaClientID',
+        'lwaClientID',
+        'awsAccessKey',
+        'awsSecretKey'
     )
 );
 
+$accessToken = $oauth->exchangeRefreshToken('seller_oauth_refresh_token');
+
+$catalog = new CatalogItemSDK(
+    $client,
+    new HttpFactory($factory, $factory),
+    $config
+);
+
 try {
-    $item = $catalog->getCatalogItem($marketplace_id = 'A1C3SOZRARQ6R3', $asin = 'B07W13KJZC');
+    $item = $catalog->getCatalogItem(
+        $accessToken,
+        Regions::NORTH_AMERICA,
+        $marketplaceId = Marketplace::US()->id(),
+        $asin = 'B07W13KJZC'
+    );
     dump($item);
 } catch (ApiException $exception) {
     dump($exception->getMessage());
diff --git a/composer.json b/composer.json
index 17d60e8a4..ff28cfb8a 100644
--- a/composer.json
+++ b/composer.json
@@ -35,7 +35,7 @@
     },
     "scripts": {
         "clean": [
-            "rm -rf src/AmazonPHP/SellingPartner/API",
+            "rm -rf src/AmazonPHP/SellingPartner/Api",
             "rm -rf src/AmazonPHP/SellingPartner/Model"
         ],
         "generate": [
diff --git a/composer.lock b/composer.lock
index ef5009905..02f3b1966 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "e05ad0083abe554f68e231bc9501efe6",
+    "content-hash": "0f3a87680af4a277e01af61ba8b4ea1e",
     "packages": [
         {
             "name": "psr/http-client",
@@ -168,75 +168,6 @@
         }
     ],
     "packages-dev": [
-        {
-            "name": "doctrine/instantiator",
-            "version": "1.4.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/instantiator.git",
-                "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
-                "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.1 || ^8.0"
-            },
-            "require-dev": {
-                "doctrine/coding-standard": "^8.0",
-                "ext-pdo": "*",
-                "ext-phar": "*",
-                "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
-                "phpstan/phpstan": "^0.12",
-                "phpstan/phpstan-phpunit": "^0.12",
-                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marco Pivetta",
-                    "email": "ocramius@gmail.com",
-                    "homepage": "https://ocramius.github.io/"
-                }
-            ],
-            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-            "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
-            "keywords": [
-                "constructor",
-                "instantiate"
-            ],
-            "support": {
-                "issues": "https://github.com/doctrine/instantiator/issues",
-                "source": "https://github.com/doctrine/instantiator/tree/1.4.0"
-            },
-            "funding": [
-                {
-                    "url": "https://www.doctrine-project.org/sponsorship.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://www.patreon.com/phpdoctrine",
-                    "type": "patreon"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2020-11-10T18:47:58+00:00"
-        },
         {
             "name": "kriswallsmith/buzz",
             "version": "1.2.0",
@@ -307,120 +238,6 @@
             },
             "time": "2020-10-22T09:05:42+00:00"
         },
-        {
-            "name": "myclabs/deep-copy",
-            "version": "1.10.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/myclabs/DeepCopy.git",
-                "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
-                "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.1 || ^8.0"
-            },
-            "replace": {
-                "myclabs/deep-copy": "self.version"
-            },
-            "require-dev": {
-                "doctrine/collections": "^1.0",
-                "doctrine/common": "^2.6",
-                "phpunit/phpunit": "^7.1"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "DeepCopy\\": "src/DeepCopy/"
-                },
-                "files": [
-                    "src/DeepCopy/deep_copy.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Create deep copies (clones) of your objects",
-            "keywords": [
-                "clone",
-                "copy",
-                "duplicate",
-                "object",
-                "object graph"
-            ],
-            "support": {
-                "issues": "https://github.com/myclabs/DeepCopy/issues",
-                "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
-            },
-            "funding": [
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2020-11-13T09:40:50+00:00"
-        },
-        {
-            "name": "nikic/php-parser",
-            "version": "v4.10.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f",
-                "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f",
-                "shasum": ""
-            },
-            "require": {
-                "ext-tokenizer": "*",
-                "php": ">=7.0"
-            },
-            "require-dev": {
-                "ircmaxell/php-yacc": "^0.0.7",
-                "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
-            },
-            "bin": [
-                "bin/php-parse"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.9-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "PhpParser\\": "lib/PhpParser"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Nikita Popov"
-                }
-            ],
-            "description": "A PHP parser written in PHP",
-            "keywords": [
-                "parser",
-                "php"
-            ],
-            "support": {
-                "issues": "https://github.com/nikic/PHP-Parser/issues",
-                "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5"
-            },
-            "time": "2021-05-03T19:11:20+00:00"
-        },
         {
             "name": "nyholm/psr7",
             "version": "1.4.0",
@@ -479,1918 +296,197 @@
             "description": "A fast PHP7 implementation of PSR-7",
             "homepage": "https://tnyholm.se",
             "keywords": [
-                "psr-17",
-                "psr-7"
-            ],
-            "support": {
-                "issues": "https://github.com/Nyholm/psr7/issues",
-                "source": "https://github.com/Nyholm/psr7/tree/1.4.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/Zegnat",
-                    "type": "github"
-                },
-                {
-                    "url": "https://github.com/nyholm",
-                    "type": "github"
-                }
-            ],
-            "time": "2021-02-18T15:41:32+00:00"
-        },
-        {
-            "name": "phar-io/manifest",
-            "version": "2.0.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phar-io/manifest.git",
-                "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
-                "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-phar": "*",
-                "ext-xmlwriter": "*",
-                "phar-io/version": "^3.0.1",
-                "php": "^7.2 || ^8.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Heuer",
-                    "email": "sebastian@phpeople.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "Developer"
-                }
-            ],
-            "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
-            "support": {
-                "issues": "https://github.com/phar-io/manifest/issues",
-                "source": "https://github.com/phar-io/manifest/tree/master"
-            },
-            "time": "2020-06-27T14:33:11+00:00"
-        },
-        {
-            "name": "phar-io/version",
-            "version": "3.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phar-io/version.git",
-                "reference": "bae7c545bef187884426f042434e561ab1ddb182"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182",
-                "reference": "bae7c545bef187884426f042434e561ab1ddb182",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Heuer",
-                    "email": "sebastian@phpeople.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "Developer"
-                }
-            ],
-            "description": "Library for handling version information and constraints",
-            "support": {
-                "issues": "https://github.com/phar-io/version/issues",
-                "source": "https://github.com/phar-io/version/tree/3.1.0"
-            },
-            "time": "2021-02-23T14:00:09+00:00"
-        },
-        {
-            "name": "php-http/httplug",
-            "version": "2.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-http/httplug.git",
-                "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-http/httplug/zipball/191a0a1b41ed026b717421931f8d3bd2514ffbf9",
-                "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.1 || ^8.0",
-                "php-http/promise": "^1.1",
-                "psr/http-client": "^1.0",
-                "psr/http-message": "^1.0"
-            },
-            "require-dev": {
-                "friends-of-phpspec/phpspec-code-coverage": "^4.1",
-                "phpspec/phpspec": "^5.1 || ^6.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Http\\Client\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Eric GELOEN",
-                    "email": "geloen.eric@gmail.com"
-                },
-                {
-                    "name": "Márk Sági-Kazár",
-                    "email": "mark.sagikazar@gmail.com",
-                    "homepage": "https://sagikazarmark.hu"
-                }
-            ],
-            "description": "HTTPlug, the HTTP client abstraction for PHP",
-            "homepage": "http://httplug.io",
-            "keywords": [
-                "client",
-                "http"
-            ],
-            "support": {
-                "issues": "https://github.com/php-http/httplug/issues",
-                "source": "https://github.com/php-http/httplug/tree/master"
-            },
-            "time": "2020-07-13T15:43:23+00:00"
-        },
-        {
-            "name": "php-http/message-factory",
-            "version": "v1.0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-http/message-factory.git",
-                "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
-                "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.4",
-                "psr/http-message": "^1.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Http\\Message\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Márk Sági-Kazár",
-                    "email": "mark.sagikazar@gmail.com"
-                }
-            ],
-            "description": "Factory interfaces for PSR-7 HTTP Message",
-            "homepage": "http://php-http.org",
-            "keywords": [
-                "factory",
-                "http",
-                "message",
-                "stream",
-                "uri"
-            ],
-            "support": {
-                "issues": "https://github.com/php-http/message-factory/issues",
-                "source": "https://github.com/php-http/message-factory/tree/master"
-            },
-            "time": "2015-12-19T14:08:53+00:00"
-        },
-        {
-            "name": "php-http/promise",
-            "version": "1.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-http/promise.git",
-                "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
-                "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.1 || ^8.0"
-            },
-            "require-dev": {
-                "friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
-                "phpspec/phpspec": "^5.1.2 || ^6.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Http\\Promise\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Joel Wurtz",
-                    "email": "joel.wurtz@gmail.com"
-                },
-                {
-                    "name": "Márk Sági-Kazár",
-                    "email": "mark.sagikazar@gmail.com"
-                }
-            ],
-            "description": "Promise used for asynchronous HTTP requests",
-            "homepage": "http://httplug.io",
-            "keywords": [
-                "promise"
-            ],
-            "support": {
-                "issues": "https://github.com/php-http/promise/issues",
-                "source": "https://github.com/php-http/promise/tree/1.1.0"
-            },
-            "time": "2020-07-07T09:29:14+00:00"
-        },
-        {
-            "name": "phpdocumentor/reflection-common",
-            "version": "2.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
-                "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
-                "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-2.x": "2.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "phpDocumentor\\Reflection\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jaap van Otterdijk",
-                    "email": "opensource@ijaap.nl"
-                }
-            ],
-            "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
-            "homepage": "http://www.phpdoc.org",
-            "keywords": [
-                "FQSEN",
-                "phpDocumentor",
-                "phpdoc",
-                "reflection",
-                "static analysis"
-            ],
-            "support": {
-                "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
-                "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
-            },
-            "time": "2020-06-27T09:03:43+00:00"
-        },
-        {
-            "name": "phpdocumentor/reflection-docblock",
-            "version": "5.2.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
-                "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
-                "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
-                "shasum": ""
-            },
-            "require": {
-                "ext-filter": "*",
-                "php": "^7.2 || ^8.0",
-                "phpdocumentor/reflection-common": "^2.2",
-                "phpdocumentor/type-resolver": "^1.3",
-                "webmozart/assert": "^1.9.1"
-            },
-            "require-dev": {
-                "mockery/mockery": "~1.3.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "phpDocumentor\\Reflection\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Mike van Riel",
-                    "email": "me@mikevanriel.com"
-                },
-                {
-                    "name": "Jaap van Otterdijk",
-                    "email": "account@ijaap.nl"
-                }
-            ],
-            "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
-            "support": {
-                "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
-                "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
-            },
-            "time": "2020-09-03T19:13:55+00:00"
-        },
-        {
-            "name": "phpdocumentor/type-resolver",
-            "version": "1.4.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpDocumentor/TypeResolver.git",
-                "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
-                "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0",
-                "phpdocumentor/reflection-common": "^2.0"
-            },
-            "require-dev": {
-                "ext-tokenizer": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-1.x": "1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "phpDocumentor\\Reflection\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Mike van Riel",
-                    "email": "me@mikevanriel.com"
-                }
-            ],
-            "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
-            "support": {
-                "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
-                "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0"
-            },
-            "time": "2020-09-17T18:55:26+00:00"
-        },
-        {
-            "name": "phpspec/prophecy",
-            "version": "1.13.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpspec/prophecy.git",
-                "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea",
-                "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.2",
-                "php": "^7.2 || ~8.0, <8.1",
-                "phpdocumentor/reflection-docblock": "^5.2",
-                "sebastian/comparator": "^3.0 || ^4.0",
-                "sebastian/recursion-context": "^3.0 || ^4.0"
-            },
-            "require-dev": {
-                "phpspec/phpspec": "^6.0",
-                "phpunit/phpunit": "^8.0 || ^9.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.11.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Prophecy\\": "src/Prophecy"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Konstantin Kudryashov",
-                    "email": "ever.zet@gmail.com",
-                    "homepage": "http://everzet.com"
-                },
-                {
-                    "name": "Marcello Duarte",
-                    "email": "marcello.duarte@gmail.com"
-                }
-            ],
-            "description": "Highly opinionated mocking framework for PHP 5.3+",
-            "homepage": "https://github.com/phpspec/prophecy",
-            "keywords": [
-                "Double",
-                "Dummy",
-                "fake",
-                "mock",
-                "spy",
-                "stub"
-            ],
-            "support": {
-                "issues": "https://github.com/phpspec/prophecy/issues",
-                "source": "https://github.com/phpspec/prophecy/tree/1.13.0"
-            },
-            "time": "2021-03-17T13:42:18+00:00"
-        },
-        {
-            "name": "phpunit/php-code-coverage",
-            "version": "9.2.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "f6293e1b30a2354e8428e004689671b83871edde"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde",
-                "reference": "f6293e1b30a2354e8428e004689671b83871edde",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-libxml": "*",
-                "ext-xmlwriter": "*",
-                "nikic/php-parser": "^4.10.2",
-                "php": ">=7.3",
-                "phpunit/php-file-iterator": "^3.0.3",
-                "phpunit/php-text-template": "^2.0.2",
-                "sebastian/code-unit-reverse-lookup": "^2.0.2",
-                "sebastian/complexity": "^2.0",
-                "sebastian/environment": "^5.1.2",
-                "sebastian/lines-of-code": "^1.0.3",
-                "sebastian/version": "^3.0.1",
-                "theseer/tokenizer": "^1.2.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "suggest": {
-                "ext-pcov": "*",
-                "ext-xdebug": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "9.2-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-            "keywords": [
-                "coverage",
-                "testing",
-                "xunit"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
-                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2021-03-28T07:26:59+00:00"
-        },
-        {
-            "name": "phpunit/php-file-iterator",
-            "version": "3.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
-                "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-            "keywords": [
-                "filesystem",
-                "iterator"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
-                "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T05:57:25+00:00"
-        },
-        {
-            "name": "phpunit/php-invoker",
-            "version": "3.1.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-invoker.git",
-                "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
-                "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "ext-pcntl": "*",
-                "phpunit/phpunit": "^9.3"
-            },
-            "suggest": {
-                "ext-pcntl": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Invoke callables with a timeout",
-            "homepage": "https://github.com/sebastianbergmann/php-invoker/",
-            "keywords": [
-                "process"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
-                "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T05:58:55+00:00"
-        },
-        {
-            "name": "phpunit/php-text-template",
-            "version": "2.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
-                "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Simple template engine.",
-            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-            "keywords": [
-                "template"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
-                "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T05:33:50+00:00"
-        },
-        {
-            "name": "phpunit/php-timer",
-            "version": "5.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
-                "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
-            "keywords": [
-                "timer"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-timer/issues",
-                "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:16:10+00:00"
-        },
-        {
-            "name": "phpunit/phpunit",
-            "version": "9.5.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "c73c6737305e779771147af66c96ca6a7ed8a741"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741",
-                "reference": "c73c6737305e779771147af66c96ca6a7ed8a741",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.3.1",
-                "ext-dom": "*",
-                "ext-json": "*",
-                "ext-libxml": "*",
-                "ext-mbstring": "*",
-                "ext-xml": "*",
-                "ext-xmlwriter": "*",
-                "myclabs/deep-copy": "^1.10.1",
-                "phar-io/manifest": "^2.0.1",
-                "phar-io/version": "^3.0.2",
-                "php": ">=7.3",
-                "phpspec/prophecy": "^1.12.1",
-                "phpunit/php-code-coverage": "^9.2.3",
-                "phpunit/php-file-iterator": "^3.0.5",
-                "phpunit/php-invoker": "^3.1.1",
-                "phpunit/php-text-template": "^2.0.3",
-                "phpunit/php-timer": "^5.0.2",
-                "sebastian/cli-parser": "^1.0.1",
-                "sebastian/code-unit": "^1.0.6",
-                "sebastian/comparator": "^4.0.5",
-                "sebastian/diff": "^4.0.3",
-                "sebastian/environment": "^5.1.3",
-                "sebastian/exporter": "^4.0.3",
-                "sebastian/global-state": "^5.0.1",
-                "sebastian/object-enumerator": "^4.0.3",
-                "sebastian/resource-operations": "^3.0.3",
-                "sebastian/type": "^2.3",
-                "sebastian/version": "^3.0.2"
-            },
-            "require-dev": {
-                "ext-pdo": "*",
-                "phpspec/prophecy-phpunit": "^2.0.1"
-            },
-            "suggest": {
-                "ext-soap": "*",
-                "ext-xdebug": "*"
-            },
-            "bin": [
-                "phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "9.5-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ],
-                "files": [
-                    "src/Framework/Assert/Functions.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "The PHP Unit Testing framework.",
-            "homepage": "https://phpunit.de/",
-            "keywords": [
-                "phpunit",
-                "testing",
-                "xunit"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/phpunit/issues",
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4"
-            },
-            "funding": [
-                {
-                    "url": "https://phpunit.de/donate.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2021-03-23T07:16:29+00:00"
-        },
-        {
-            "name": "sebastian/cli-parser",
-            "version": "1.0.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/cli-parser.git",
-                "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
-                "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for parsing CLI options",
-            "homepage": "https://github.com/sebastianbergmann/cli-parser",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
-                "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T06:08:49+00:00"
-        },
-        {
-            "name": "sebastian/code-unit",
-            "version": "1.0.8",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/code-unit.git",
-                "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
-                "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Collection of value objects that represent the PHP code units",
-            "homepage": "https://github.com/sebastianbergmann/code-unit",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/code-unit/issues",
-                "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:08:54+00:00"
-        },
-        {
-            "name": "sebastian/code-unit-reverse-lookup",
-            "version": "2.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
-                "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
-                "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Looks up which function or method a line of code belongs to",
-            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
-                "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T05:30:19+00:00"
-        },
-        {
-            "name": "sebastian/comparator",
-            "version": "4.0.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
-                "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3",
-                "sebastian/diff": "^4.0",
-                "sebastian/exporter": "^4.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                }
-            ],
-            "description": "Provides the functionality to compare PHP values for equality",
-            "homepage": "https://github.com/sebastianbergmann/comparator",
-            "keywords": [
-                "comparator",
-                "compare",
-                "equality"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/comparator/issues",
-                "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T15:49:45+00:00"
-        },
-        {
-            "name": "sebastian/complexity",
-            "version": "2.0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/complexity.git",
-                "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
-                "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
-                "shasum": ""
-            },
-            "require": {
-                "nikic/php-parser": "^4.7",
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for calculating the complexity of PHP code units",
-            "homepage": "https://github.com/sebastianbergmann/complexity",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/complexity/issues",
-                "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T15:52:27+00:00"
-        },
-        {
-            "name": "sebastian/diff",
-            "version": "4.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
-                "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3",
-                "symfony/process": "^4.2 || ^5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Kore Nordmann",
-                    "email": "mail@kore-nordmann.de"
-                }
-            ],
-            "description": "Diff implementation",
-            "homepage": "https://github.com/sebastianbergmann/diff",
-            "keywords": [
-                "diff",
-                "udiff",
-                "unidiff",
-                "unified diff"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/diff/issues",
-                "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:10:38+00:00"
-        },
-        {
-            "name": "sebastian/environment",
-            "version": "5.1.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "388b6ced16caa751030f6a69e588299fa09200ac"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
-                "reference": "388b6ced16caa751030f6a69e588299fa09200ac",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "suggest": {
-                "ext-posix": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.1-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides functionality to handle HHVM/PHP environments",
-            "homepage": "http://www.github.com/sebastianbergmann/environment",
-            "keywords": [
-                "Xdebug",
-                "environment",
-                "hhvm"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/environment/issues",
-                "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T05:52:38+00:00"
-        },
-        {
-            "name": "sebastian/exporter",
-            "version": "4.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
-                "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3",
-                "sebastian/recursion-context": "^4.0"
-            },
-            "require-dev": {
-                "ext-mbstring": "*",
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@gmail.com"
-                }
-            ],
-            "description": "Provides the functionality to export PHP variables for visualization",
-            "homepage": "http://www.github.com/sebastianbergmann/exporter",
-            "keywords": [
-                "export",
-                "exporter"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/exporter/issues",
-                "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T05:24:23+00:00"
-        },
-        {
-            "name": "sebastian/global-state",
-            "version": "5.0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/global-state.git",
-                "reference": "a90ccbddffa067b51f574dea6eb25d5680839455"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455",
-                "reference": "a90ccbddffa067b51f574dea6eb25d5680839455",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3",
-                "sebastian/object-reflector": "^2.0",
-                "sebastian/recursion-context": "^4.0"
-            },
-            "require-dev": {
-                "ext-dom": "*",
-                "phpunit/phpunit": "^9.3"
-            },
-            "suggest": {
-                "ext-uopz": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Snapshotting of global state",
-            "homepage": "http://www.github.com/sebastianbergmann/global-state",
-            "keywords": [
-                "global state"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/global-state/issues",
-                "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T15:55:19+00:00"
-        },
-        {
-            "name": "sebastian/lines-of-code",
-            "version": "1.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/lines-of-code.git",
-                "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
-                "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
-                "shasum": ""
-            },
-            "require": {
-                "nikic/php-parser": "^4.6",
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for counting the lines of code in PHP source code",
-            "homepage": "https://github.com/sebastianbergmann/lines-of-code",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
-                "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-11-28T06:42:11+00:00"
-        },
-        {
-            "name": "sebastian/object-enumerator",
-            "version": "4.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
-                "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
-                "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3",
-                "sebastian/object-reflector": "^2.0",
-                "sebastian/recursion-context": "^4.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
-            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
-                "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:12:34+00:00"
-        },
-        {
-            "name": "sebastian/object-reflector",
-            "version": "2.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/object-reflector.git",
-                "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
-                "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Allows reflection of object attributes, including inherited and non-public ones",
-            "homepage": "https://github.com/sebastianbergmann/object-reflector/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
-                "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:14:26+00:00"
-        },
-        {
-            "name": "sebastian/recursion-context",
-            "version": "4.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/recursion-context.git",
-                "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
-                "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
+                "psr-17",
+                "psr-7"
             ],
-            "description": "Provides functionality to recursively process PHP variables",
-            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
             "support": {
-                "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
-                "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+                "issues": "https://github.com/Nyholm/psr7/issues",
+                "source": "https://github.com/Nyholm/psr7/tree/1.4.0"
             },
             "funding": [
                 {
-                    "url": "https://github.com/sebastianbergmann",
+                    "url": "https://github.com/Zegnat",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/nyholm",
                     "type": "github"
                 }
             ],
-            "time": "2020-10-26T13:17:30+00:00"
+            "time": "2021-02-18T15:41:32+00:00"
         },
         {
-            "name": "sebastian/resource-operations",
-            "version": "3.0.3",
+            "name": "php-http/httplug",
+            "version": "2.2.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/sebastianbergmann/resource-operations.git",
-                "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+                "url": "https://github.com/php-http/httplug.git",
+                "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
-                "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+                "url": "https://api.github.com/repos/php-http/httplug/zipball/191a0a1b41ed026b717421931f8d3bd2514ffbf9",
+                "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.3"
+                "php": "^7.1 || ^8.0",
+                "php-http/promise": "^1.1",
+                "psr/http-client": "^1.0",
+                "psr/http-message": "^1.0"
             },
             "require-dev": {
-                "phpunit/phpunit": "^9.0"
+                "friends-of-phpspec/phpspec-code-coverage": "^4.1",
+                "phpspec/phpspec": "^5.1 || ^6.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.0-dev"
+                    "dev-master": "2.x-dev"
                 }
             },
             "autoload": {
-                "classmap": [
-                    "src/"
-                ]
+                "psr-4": {
+                    "Http\\Client\\": "src/"
+                }
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
-                "BSD-3-Clause"
+                "MIT"
             ],
             "authors": [
                 {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
+                    "name": "Eric GELOEN",
+                    "email": "geloen.eric@gmail.com"
+                },
+                {
+                    "name": "Márk Sági-Kazár",
+                    "email": "mark.sagikazar@gmail.com",
+                    "homepage": "https://sagikazarmark.hu"
                 }
             ],
-            "description": "Provides a list of PHP built-in functions that operate on resources",
-            "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+            "description": "HTTPlug, the HTTP client abstraction for PHP",
+            "homepage": "http://httplug.io",
+            "keywords": [
+                "client",
+                "http"
+            ],
             "support": {
-                "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
-                "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+                "issues": "https://github.com/php-http/httplug/issues",
+                "source": "https://github.com/php-http/httplug/tree/master"
             },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T06:45:17+00:00"
+            "time": "2020-07-13T15:43:23+00:00"
         },
         {
-            "name": "sebastian/type",
-            "version": "2.3.1",
+            "name": "php-http/message-factory",
+            "version": "v1.0.2",
             "source": {
                 "type": "git",
-                "url": "https://github.com/sebastianbergmann/type.git",
-                "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2"
+                "url": "https://github.com/php-http/message-factory.git",
+                "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
-                "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
+                "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
+                "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
+                "php": ">=5.4",
+                "psr/http-message": "^1.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.3-dev"
+                    "dev-master": "1.0-dev"
                 }
             },
             "autoload": {
-                "classmap": [
-                    "src/"
-                ]
+                "psr-4": {
+                    "Http\\Message\\": "src/"
+                }
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
-                "BSD-3-Clause"
+                "MIT"
             ],
             "authors": [
                 {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
+                    "name": "Márk Sági-Kazár",
+                    "email": "mark.sagikazar@gmail.com"
                 }
             ],
-            "description": "Collection of value objects that represent the types of the PHP type system",
-            "homepage": "https://github.com/sebastianbergmann/type",
+            "description": "Factory interfaces for PSR-7 HTTP Message",
+            "homepage": "http://php-http.org",
+            "keywords": [
+                "factory",
+                "http",
+                "message",
+                "stream",
+                "uri"
+            ],
             "support": {
-                "issues": "https://github.com/sebastianbergmann/type/issues",
-                "source": "https://github.com/sebastianbergmann/type/tree/2.3.1"
+                "issues": "https://github.com/php-http/message-factory/issues",
+                "source": "https://github.com/php-http/message-factory/tree/master"
             },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:18:59+00:00"
+            "time": "2015-12-19T14:08:53+00:00"
         },
         {
-            "name": "sebastian/version",
-            "version": "3.0.2",
+            "name": "php-http/promise",
+            "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/sebastianbergmann/version.git",
-                "reference": "c6c1022351a901512170118436c764e473f6de8c"
+                "url": "https://github.com/php-http/promise.git",
+                "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
-                "reference": "c6c1022351a901512170118436c764e473f6de8c",
+                "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
+                "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.3"
+                "php": "^7.1 || ^8.0"
+            },
+            "require-dev": {
+                "friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
+                "phpspec/phpspec": "^5.1.2 || ^6.2"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.0-dev"
+                    "dev-master": "1.1-dev"
                 }
             },
             "autoload": {
-                "classmap": [
-                    "src/"
-                ]
+                "psr-4": {
+                    "Http\\Promise\\": "src/"
+                }
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
-                "BSD-3-Clause"
+                "MIT"
             ],
             "authors": [
                 {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
+                    "name": "Joel Wurtz",
+                    "email": "joel.wurtz@gmail.com"
+                },
+                {
+                    "name": "Márk Sági-Kazár",
+                    "email": "mark.sagikazar@gmail.com"
                 }
             ],
-            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-            "homepage": "https://github.com/sebastianbergmann/version",
+            "description": "Promise used for asynchronous HTTP requests",
+            "homepage": "http://httplug.io",
+            "keywords": [
+                "promise"
+            ],
             "support": {
-                "issues": "https://github.com/sebastianbergmann/version/issues",
-                "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+                "issues": "https://github.com/php-http/promise/issues",
+                "source": "https://github.com/php-http/promise/tree/1.1.0"
             },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T06:39:44+00:00"
+            "time": "2020-07-07T09:29:14+00:00"
         },
         {
             "name": "symfony/deprecation-contracts",
@@ -2461,16 +557,16 @@
         },
         {
             "name": "symfony/options-resolver",
-            "version": "v5.2.4",
+            "version": "v5.3.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/options-resolver.git",
-                "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce"
+                "reference": "162e886ca035869866d233a2bfef70cc28f9bbe5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce",
-                "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce",
+                "url": "https://api.github.com/repos/symfony/options-resolver/zipball/162e886ca035869866d233a2bfef70cc28f9bbe5",
+                "reference": "162e886ca035869866d233a2bfef70cc28f9bbe5",
                 "shasum": ""
             },
             "require": {
@@ -2510,86 +606,7 @@
                 "options"
             ],
             "support": {
-                "source": "https://github.com/symfony/options-resolver/tree/v5.2.4"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2021-01-27T12:56:27+00:00"
-        },
-        {
-            "name": "symfony/polyfill-ctype",
-            "version": "v1.23.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-ctype.git",
-                "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
-                "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "suggest": {
-                "ext-ctype": "For best performance"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "1.23-dev"
-                },
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Polyfill\\Ctype\\": ""
-                },
-                "files": [
-                    "bootstrap.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Gert de Pagter",
-                    "email": "BackEndTea@gmail.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill for ctype functions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "ctype",
-                "polyfill",
-                "portable"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
+                "source": "https://github.com/symfony/options-resolver/tree/v5.3.0"
             },
             "funding": [
                 {
@@ -2605,7 +622,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2021-02-19T12:13:01+00:00"
+            "time": "2021-05-26T17:43:10+00:00"
         },
         {
             "name": "symfony/polyfill-mbstring",
@@ -2851,16 +868,16 @@
         },
         {
             "name": "symfony/var-dumper",
-            "version": "v5.2.8",
+            "version": "v5.3.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/var-dumper.git",
-                "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba"
+                "reference": "1d3953e627fe4b5f6df503f356b6545ada6351f3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d693200a73fae179d27f8f1b16b4faf3e8569eba",
-                "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1d3953e627fe4b5f6df503f356b6545ada6351f3",
+                "reference": "1d3953e627fe4b5f6df503f356b6545ada6351f3",
                 "shasum": ""
             },
             "require": {
@@ -2919,7 +936,7 @@
                 "dump"
             ],
             "support": {
-                "source": "https://github.com/symfony/var-dumper/tree/v5.2.8"
+                "source": "https://github.com/symfony/var-dumper/tree/v5.3.0"
             },
             "funding": [
                 {
@@ -2935,115 +952,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2021-05-07T13:42:21+00:00"
-        },
-        {
-            "name": "theseer/tokenizer",
-            "version": "1.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/theseer/tokenizer.git",
-                "reference": "75a63c33a8577608444246075ea0af0d052e452a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a",
-                "reference": "75a63c33a8577608444246075ea0af0d052e452a",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-tokenizer": "*",
-                "ext-xmlwriter": "*",
-                "php": "^7.2 || ^8.0"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
-                }
-            ],
-            "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
-            "support": {
-                "issues": "https://github.com/theseer/tokenizer/issues",
-                "source": "https://github.com/theseer/tokenizer/tree/master"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/theseer",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-07-12T23:59:07+00:00"
-        },
-        {
-            "name": "webmozart/assert",
-            "version": "1.10.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/webmozarts/assert.git",
-                "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
-                "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0",
-                "symfony/polyfill-ctype": "^1.8"
-            },
-            "conflict": {
-                "phpstan/phpstan": "<0.12.20",
-                "vimeo/psalm": "<4.6.1 || 4.6.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^8.5.13"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.10-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Webmozart\\Assert\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@gmail.com"
-                }
-            ],
-            "description": "Assertions to validate method input/output with nice error messages.",
-            "keywords": [
-                "assert",
-                "check",
-                "validate"
-            ],
-            "support": {
-                "issues": "https://github.com/webmozarts/assert/issues",
-                "source": "https://github.com/webmozarts/assert/tree/1.10.0"
-            },
-            "time": "2021-03-09T10:59:23+00:00"
+            "time": "2021-05-27T12:28:50+00:00"
         }
     ],
     "aliases": [],
diff --git a/config/generator-aplus.yaml b/config/generator-aplus.yaml
index 19499e727..d04c21e4f 100644
--- a/config/generator-aplus.yaml
+++ b/config/generator-aplus.yaml
@@ -3,7 +3,6 @@ templateDir: sp-api/resources/php-amazon-selling-partner-api
 additionalProperties:
   invokerPackage: AmazonPHP\SellingPartner
   srcBasePath: src/AmazonPHP/SellingPartner
-  variableNamingConvention: camelCase
   modelPackage: Model\APlus
   packageName: APlusSDK
 files:
diff --git a/config/generator-authorization.yaml b/config/generator-authorization.yaml
index a174f7ef3..eb7d5e764 100644
--- a/config/generator-authorization.yaml
+++ b/config/generator-authorization.yaml
@@ -3,7 +3,6 @@ templateDir: sp-api/resources/php-amazon-selling-partner-api
 additionalProperties:
   invokerPackage: AmazonPHP\SellingPartner
   srcBasePath: src/AmazonPHP/SellingPartner
-  variableNamingConvention: camelCase
   modelPackage: Model\Authorization
   packageName: AuthorizationSDK
 files:
diff --git a/config/generator-catalog-item.yaml b/config/generator-catalog-item.yaml
index d53abdcbe..303030239 100644
--- a/config/generator-catalog-item.yaml
+++ b/config/generator-catalog-item.yaml
@@ -3,7 +3,6 @@ templateDir: sp-api/resources/php-amazon-selling-partner-api
 additionalProperties:
   invokerPackage: AmazonPHP\SellingPartner
   srcBasePath: src/AmazonPHP/SellingPartner
-  variableNamingConvention: camelCase
   modelPackage: Model\CatalogItem
   packageName: CatalogItemSDK
 files:
diff --git a/config/generator-fba-inbound.yaml b/config/generator-fba-inbound.yaml
index 050d460ab..08a70dca2 100644
--- a/config/generator-fba-inbound.yaml
+++ b/config/generator-fba-inbound.yaml
@@ -3,7 +3,6 @@ templateDir: sp-api/resources/php-amazon-selling-partner-api
 additionalProperties:
   invokerPackage: AmazonPHP\SellingPartner
   srcBasePath: src/AmazonPHP/SellingPartner
-  variableNamingConvention: camelCase
   modelPackage: Model\FBAInbound
   packageName: FBAInboundSDK
 files:
diff --git a/config/generator-fba-inventory.yaml b/config/generator-fba-inventory.yaml
index 17958f364..af46235bd 100644
--- a/config/generator-fba-inventory.yaml
+++ b/config/generator-fba-inventory.yaml
@@ -3,7 +3,6 @@ templateDir: sp-api/resources/php-amazon-selling-partner-api
 additionalProperties:
   invokerPackage: AmazonPHP\SellingPartner
   srcBasePath: src/AmazonPHP/SellingPartner
-  variableNamingConvention: camelCase
   modelPackage: Model\FBAInventory
   packageName: FBAInventorySDK
 files:
diff --git a/config/generator-orders.yaml b/config/generator-orders.yaml
index 93cad9323..43c417ec0 100644
--- a/config/generator-orders.yaml
+++ b/config/generator-orders.yaml
@@ -3,7 +3,6 @@ templateDir: sp-api/resources/php-amazon-selling-partner-api
 additionalProperties:
   invokerPackage: AmazonPHP\SellingPartner
   srcBasePath: src/AmazonPHP/SellingPartner
-  variableNamingConvention: camelCase
   modelPackage: Model\Orders
   packageName: OrdersSDK
   useTags: false
diff --git a/config/generator-reports.yaml b/config/generator-reports.yaml
index 06f9e319e..50e3d85bf 100644
--- a/config/generator-reports.yaml
+++ b/config/generator-reports.yaml
@@ -3,7 +3,6 @@ templateDir: sp-api/resources/php-amazon-selling-partner-api
 additionalProperties:
   invokerPackage: AmazonPHP\SellingPartner
   srcBasePath: src/AmazonPHP/SellingPartner
-  variableNamingConvention: camelCase
   modelPackage: Model\Reports
   packageName: ReportsSDK
   useTags: false
diff --git a/config/generator-tokens.yaml b/config/generator-tokens.yaml
index 5eb08fac4..48e375d0b 100644
--- a/config/generator-tokens.yaml
+++ b/config/generator-tokens.yaml
@@ -3,7 +3,6 @@ templateDir: sp-api/resources/php-amazon-selling-partner-api
 additionalProperties:
   invokerPackage: AmazonPHP\SellingPartner
   srcBasePath: src/AmazonPHP/SellingPartner
-  variableNamingConvention: camelCase
   modelPackage: Model\Tokens
   packageName: TokensSDK
   useTags: false
diff --git a/psalm.xml b/psalm.xml
index 7c0333df3..f54e62583 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -4,7 +4,7 @@
     resolveFromConfigFile="true"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="https://getpsalm.org/schema/config"
-    xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
+    xsi:schemaLocation="https://getpsalm.org/schema/config tools/vendor/vimeo/psalm/config.xsd"
 >
     <projectFiles>
         <directory name="src" />
diff --git a/resources/php-amazon-selling-partner-api/api.mustache b/resources/php-amazon-selling-partner-api/api.mustache
index d93997f94..540a45699 100644
--- a/resources/php-amazon-selling-partner-api/api.mustache
+++ b/resources/php-amazon-selling-partner-api/api.mustache
@@ -2,12 +2,15 @@
 
 namespace {{invokerPackage}}\Api\{{classname}};
 
+use {{invokerPackage}}\AccessToken;
+use {{invokerPackage}}\Configuration;
 use {{invokerPackage}}\Exception\ApiException;
 use {{invokerPackage}}\Exception\InvalidArgumentException;
-use {{invokerPackage}}\OAuth;
-use {{invokerPackage}}\ObjectSerializer;
+use {{invokerPackage}}\HttpFactory;
 use {{invokerPackage}}\HttpSignatureHeaders;
+use {{invokerPackage}}\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,11 +19,17 @@ use Psr\Http\Message\RequestInterface;
  */
 final {{#operations}}class {{packageName}}
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
+
+    private HttpFactory $httpFactory;
 
-    public function __construct(OAuth $authentication)
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
 {{#operation}}
@@ -47,6 +56,8 @@ final {{#operations}}class {{packageName}}
 {{#-last}}
 {{/-last}}
 {{/servers}}
+     * @param AccessToken $accessToken
+     * @param string $region
 {{#allParams}}
      * @param {{{dataType}}} ${{paramName}}{{#description}} {{description}}{{/description}}{{^description}} {{paramName}}{{/description}} {{#required}}(required){{/required}}{{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
 {{/allParams}}
@@ -57,9 +68,9 @@ final {{#operations}}class {{packageName}}
      * @return {{returnType}}
 {{/returnType}}
      */
-    public function {{operationId}}({{^vendorExtensions.x-group-parameters}}{{#allParams}}${{paramName}}{{^required}} = {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}}){{#returnType}}: {{returnType}}{{/returnType}}
+    public function {{operationId}}(AccessToken $accessToken, string $region{{^vendorExtensions.x-group-parameters}}, {{#allParams}}${{paramName}}{{^required}} = {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}}){{#returnType}}: {{returnType}}{{/returnType}}
     {
-        {{#returnType}}list($response) = {{/returnType}}$this->{{operationId}}WithHttpInfo({{^vendorExtensions.x-group-parameters}}{{#allParams}}${{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}});{{#returnType}}
+        {{#returnType}}list($response) = {{/returnType}}$this->{{operationId}}WithHttpInfo($accessToken, $region, {{^vendorExtensions.x-group-parameters}}{{#allParams}}${{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}});{{#returnType}}
         return $response;{{/returnType}}
     }
 
@@ -87,6 +98,8 @@ final {{#operations}}class {{packageName}}
      *
 {{/-last}}
 {{/servers}}
+     * @param AccessToken $accessToken
+     * @param string $region
 {{#allParams}}
      * @param  {{{dataType}}} ${{paramName}}{{#description}} {{description}}{{/description}} {{#required}}(required){{/required}}{{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
 {{/allParams}}
@@ -97,13 +110,13 @@ final {{#operations}}class {{packageName}}
      * @return array<{{returnType}}>
     {{/returnType}}
      */
-    private function {{operationId}}WithHttpInfo({{^vendorExtensions.x-group-parameters}}{{#allParams}}${{paramName}}{{^required}} = {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}}) : array
+    private function {{operationId}}WithHttpInfo(AccessToken $accessToken, string $region{{^vendorExtensions.x-group-parameters}}, {{#allParams}}${{paramName}}{{^required}} = {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}}) : array
     {
-        $request = $this->{{operationId}}Request({{^vendorExtensions.x-group-parameters}}{{#allParams}}${{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}});
+        $request = $this->{{operationId}}Request($accessToken, $region{{^vendorExtensions.x-group-parameters}}, {{#allParams}}${{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}});
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -138,7 +151,12 @@ final {{#operations}}class {{packageName}}
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, {{{dataType}}}::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            {{{dataType}}}::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders()
                     ];
@@ -152,7 +170,12 @@ final {{#operations}}class {{packageName}}
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders()
             ];
@@ -168,6 +191,7 @@ final {{#operations}}class {{packageName}}
             {{#dataType}}
                 {{^isWildcard}}case {{code}}:{{/isWildcard}}{{#isWildcard}}default:{{/isWildcard}}
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         {{{dataType}}}::class,
                         $e->getResponseHeaders()
@@ -197,6 +221,8 @@ final {{#operations}}class {{packageName}}
      *
 {{/-last}}
 {{/servers}}
+     * @param AccessToken $accessToken
+     * @param string $region
 {{#allParams}}
      * @param  {{{dataType}}} ${{paramName}}{{#description}} {{description}}{{/description}} {{#required}}(required){{/required}}{{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
 {{/allParams}}
@@ -204,7 +230,7 @@ final {{#operations}}class {{packageName}}
      * @throws \{{invokerPackage}}\Exception\InvalidArgumentException
      * @return RequestInterface
      */
-    public function {{operationId}}Request({{^vendorExtensions.x-group-parameters}}{{#allParams}}${{paramName}}{{^required}} = {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}}) : RequestInterface
+    public function {{operationId}}Request(AccessToken $accessToken, string $region{{^vendorExtensions.x-group-parameters}}, {{#allParams}}${{paramName}}{{^required}} = {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}$associative_array{{/vendorExtensions.x-group-parameters}}) : RequestInterface
     {
         {{#vendorExtensions.x-group-parameters}}
         // unbox the parameters from the associative array
@@ -350,30 +376,37 @@ final {{#operations}}class {{packageName}}
         }
         {{/formParams}}
 
+
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json']
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
         {{#bodyParams}}
         if (isset(${{paramName}})) {
-            if ($headers['Content-Type'] === 'application/json') {
+            if ($headers['Content-Type'] === ['application/json']) {
                 $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization(${{paramName}}));
             } else {
                 $httpBody = ${{paramName}};
             }
 
-            $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString($httpBody));
+            $request = $request->withBody($this->httpFactory->createStreamFromString($httpBody));
         } elseif (count($formParams) > 0) {
         {{/bodyParams}}
         {{^bodyParams}}
@@ -391,33 +424,23 @@ final {{#operations}}class {{packageName}}
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     {{/operation}}
diff --git a/src/AmazonPHP/SellingPartner/AccessToken.php b/src/AmazonPHP/SellingPartner/AccessToken.php
index 7ab8ffc60..78da9d7ca 100644
--- a/src/AmazonPHP/SellingPartner/AccessToken.php
+++ b/src/AmazonPHP/SellingPartner/AccessToken.php
@@ -12,14 +12,17 @@ final class AccessToken
 
     private int $expiresIn;
 
-    public function __construct(string $token, string $type, int $expiresIn)
+    private string $grantType;
+
+    public function __construct(string $token, string $type, int $expiresIn, string $grantType)
     {
         $this->token = $token;
         $this->type = $type;
         $this->expiresIn = $expiresIn;
+        $this->grantType = $grantType;
     }
 
-    public static function fromJSON(string $tokenString) : self
+    public static function fromJSON(string $tokenString, string $grantType) : self
     {
         $data = \json_decode($tokenString, true, 512, JSON_THROW_ON_ERROR);
 
@@ -27,6 +30,7 @@ public static function fromJSON(string $tokenString) : self
             $data['access_token'],
             $data['token_type'],
             $data['expires_in'],
+            $grantType
         );
     }
 
@@ -44,4 +48,9 @@ public function expiresIn() : int
     {
         return $this->expiresIn;
     }
+
+    public function grantType() : string
+    {
+        return $this->grantType;
+    }
 }
diff --git a/src/AmazonPHP/SellingPartner/Api/APlusSDK.php b/src/AmazonPHP/SellingPartner/Api/APlusSDK.php
index bf50f47b5..162428d6f 100644
--- a/src/AmazonPHP/SellingPartner/Api/APlusSDK.php
+++ b/src/AmazonPHP/SellingPartner/Api/APlusSDK.php
@@ -2,12 +2,15 @@
 
 namespace AmazonPHP\SellingPartner\Api;
 
+use AmazonPHP\SellingPartner\AccessToken;
+use AmazonPHP\SellingPartner\Configuration;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\Exception\InvalidArgumentException;
+use AmazonPHP\SellingPartner\HttpFactory;
 use AmazonPHP\SellingPartner\HttpSignatureHeaders;
-use AmazonPHP\SellingPartner\OAuth;
 use AmazonPHP\SellingPartner\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,25 +19,31 @@
  */
 final class APlusSDK
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
 
-    public function __construct(OAuth $authentication)
+    private HttpFactory $httpFactory;
+
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
     /**
      * Operation createContentDocument.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function createContentDocument(string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse
+    public function createContentDocument(AccessToken $accessToken, string $region, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse
     {
-        [$response] = $this->createContentDocumentWithHttpInfo($marketplaceId, $postContentDocumentRequest);
+        [$response] = $this->createContentDocumentWithHttpInfo($accessToken, $region, $marketplace_id, $post_content_document_request);
 
         return $response;
     }
@@ -42,30 +51,30 @@ public function createContentDocument(string $marketplaceId, \AmazonPHP\SellingP
     /**
      * Create request for operation 'createContentDocument'.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function createContentDocumentRequest(string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest) : RequestInterface
+    public function createContentDocumentRequest(AccessToken $accessToken, string $region, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request) : RequestInterface
     {
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling createContentDocument'
+                'Missing the required parameter $marketplace_id when calling createContentDocument'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.createContentDocument, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.createContentDocument, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'postContentDocumentRequest' is set
-        if ($postContentDocumentRequest === null || (\is_array($postContentDocumentRequest) && \count($postContentDocumentRequest) === 0)) {
+        // verify the required parameter 'post_content_document_request' is set
+        if ($post_content_document_request === null || (\is_array($post_content_document_request) && \count($post_content_document_request) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $postContentDocumentRequest when calling createContentDocument'
+                'Missing the required parameter $post_content_document_request when calling createContentDocument'
             );
         }
 
@@ -77,12 +86,12 @@ public function createContentDocumentRequest(string $marketplaceId, \AmazonPHP\S
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
 
         if (\count($queryParams)) {
@@ -90,28 +99,34 @@ public function createContentDocumentRequest(string $marketplaceId, \AmazonPHP\S
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
-        if (isset($postContentDocumentRequest)) {
-            if ($headers['Content-Type'] === 'application/json') {
-                $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($postContentDocumentRequest), JSON_THROW_ON_ERROR);
+        if (isset($post_content_document_request)) {
+            if ($headers['Content-Type'] === ['application/json']) {
+                $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($post_content_document_request), JSON_THROW_ON_ERROR);
             } else {
-                $httpBody = $postContentDocumentRequest;
+                $httpBody = $post_content_document_request;
             }
 
-            $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString($httpBody));
+            $request = $request->withBody($this->httpFactory->createStreamFromString($httpBody));
         } elseif (\count($formParams) > 0) {
             if ($multipart) {
                 $multipartContents = [];
@@ -127,48 +142,38 @@ public function createContentDocumentRequest(string $marketplaceId, \AmazonPHP\S
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getContentDocument.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param array<array-key, string> $includedDataSet The set of A+ Content data types to include in the response. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param array<array-key, string> $included_data_set The set of A+ Content data types to include in the response. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getContentDocument(string $contentReferenceKey, string $marketplaceId, array $includedDataSet) : \AmazonPHP\SellingPartner\Model\APlus\GetContentDocumentResponse
+    public function getContentDocument(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, array $included_data_set) : \AmazonPHP\SellingPartner\Model\APlus\GetContentDocumentResponse
     {
-        [$response] = $this->getContentDocumentWithHttpInfo($contentReferenceKey, $marketplaceId, $includedDataSet);
+        [$response] = $this->getContentDocumentWithHttpInfo($accessToken, $region, $content_reference_key, $marketplace_id, $included_data_set);
 
         return $response;
     }
@@ -176,47 +181,47 @@ public function getContentDocument(string $contentReferenceKey, string $marketpl
     /**
      * Create request for operation 'getContentDocument'.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param array<array-key, string> $includedDataSet The set of A+ Content data types to include in the response. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param array<array-key, string> $included_data_set The set of A+ Content data types to include in the response. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getContentDocumentRequest(string $contentReferenceKey, string $marketplaceId, array $includedDataSet) : RequestInterface
+    public function getContentDocumentRequest(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, array $included_data_set) : RequestInterface
     {
-        // verify the required parameter 'contentReferenceKey' is set
-        if ($contentReferenceKey === null || (\is_array($contentReferenceKey) && \count($contentReferenceKey) === 0)) {
+        // verify the required parameter 'content_reference_key' is set
+        if ($content_reference_key === null || (\is_array($content_reference_key) && \count($content_reference_key) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $contentReferenceKey when calling getContentDocument'
+                'Missing the required parameter $content_reference_key when calling getContentDocument'
             );
         }
 
-        if (\strlen($contentReferenceKey) < 1) {
-            throw new InvalidArgumentException('invalid length for "$contentReferenceKey" when calling AplusContentApi.getContentDocument, must be bigger than or equal to 1.');
+        if (\strlen($content_reference_key) < 1) {
+            throw new InvalidArgumentException('invalid length for "$content_reference_key" when calling AplusContentApi.getContentDocument, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling getContentDocument'
+                'Missing the required parameter $marketplace_id when calling getContentDocument'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.getContentDocument, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.getContentDocument, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'includedDataSet' is set
-        if ($includedDataSet === null || (\is_array($includedDataSet) && \count($includedDataSet) === 0)) {
+        // verify the required parameter 'included_data_set' is set
+        if ($included_data_set === null || (\is_array($included_data_set) && \count($included_data_set) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $includedDataSet when calling getContentDocument'
+                'Missing the required parameter $included_data_set when calling getContentDocument'
             );
         }
 
-        if (\count($includedDataSet) < 1) {
-            throw new InvalidArgumentException('invalid value for "$includedDataSet" when calling AplusContentApi.getContentDocument, number of items must be greater than or equal to 1.');
+        if (\count($included_data_set) < 1) {
+            throw new InvalidArgumentException('invalid value for "$included_data_set" when calling AplusContentApi.getContentDocument, number of items must be greater than or equal to 1.');
         }
 
         $resourcePath = '/aplus/2020-11-01/contentDocuments/{contentReferenceKey}';
@@ -227,20 +232,20 @@ public function getContentDocumentRequest(string $contentReferenceKey, string $m
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
         // query params
-        if (\is_array($includedDataSet)) {
-            $includedDataSet = ObjectSerializer::serializeCollection($includedDataSet, 'form', true);
+        if (\is_array($included_data_set)) {
+            $included_data_set = ObjectSerializer::serializeCollection($included_data_set, 'form', true);
         }
 
-        if ($includedDataSet !== null) {
-            $queryParams['includedDataSet'] = $includedDataSet;
+        if ($included_data_set !== null) {
+            $queryParams['includedDataSet'] = $included_data_set;
         }
 
         if (\count($queryParams)) {
@@ -248,26 +253,32 @@ public function getContentDocumentRequest(string $contentReferenceKey, string $m
         }
 
         // path params
-        if ($contentReferenceKey !== null) {
+        if ($content_reference_key !== null) {
             $resourcePath = \str_replace(
                 '{' . 'contentReferenceKey' . '}',
-                ObjectSerializer::toPathValue($contentReferenceKey),
+                ObjectSerializer::toPathValue($content_reference_key),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -286,50 +297,40 @@ public function getContentDocumentRequest(string $contentReferenceKey, string $m
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation listContentDocumentAsinRelations.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param array<array-key, string>|null $includedDataSet The set of A+ Content data types to include in the response. If you do not include this parameter, the operation returns the related ASINs without metadata. (optional)
-     * @param array<array-key, string>|null $asinSet The set of ASINs. (optional)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param array<array-key, string>|null $included_data_set The set of A+ Content data types to include in the response. If you do not include this parameter, the operation returns the related ASINs without metadata. (optional)
+     * @param array<array-key, string>|null $asin_set The set of ASINs. (optional)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function listContentDocumentAsinRelations(string $contentReferenceKey, string $marketplaceId, array $includedDataSet = null, array $asinSet = null, string $pageToken = null) : \AmazonPHP\SellingPartner\Model\APlus\ListContentDocumentAsinRelationsResponse
+    public function listContentDocumentAsinRelations(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, array $included_data_set = null, array $asin_set = null, string $page_token = null) : \AmazonPHP\SellingPartner\Model\APlus\ListContentDocumentAsinRelationsResponse
     {
-        [$response] = $this->listContentDocumentAsinRelationsWithHttpInfo($contentReferenceKey, $marketplaceId, $includedDataSet, $asinSet, $pageToken);
+        [$response] = $this->listContentDocumentAsinRelationsWithHttpInfo($accessToken, $region, $content_reference_key, $marketplace_id, $included_data_set, $asin_set, $page_token);
 
         return $response;
     }
@@ -337,46 +338,46 @@ public function listContentDocumentAsinRelations(string $contentReferenceKey, st
     /**
      * Create request for operation 'listContentDocumentAsinRelations'.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param array<array-key, string>|null $includedDataSet The set of A+ Content data types to include in the response. If you do not include this parameter, the operation returns the related ASINs without metadata. (optional)
-     * @param array<array-key, string>|null $asinSet The set of ASINs. (optional)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param array<array-key, string>|null $included_data_set The set of A+ Content data types to include in the response. If you do not include this parameter, the operation returns the related ASINs without metadata. (optional)
+     * @param array<array-key, string>|null $asin_set The set of ASINs. (optional)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function listContentDocumentAsinRelationsRequest(string $contentReferenceKey, string $marketplaceId, array $includedDataSet = null, array $asinSet = null, string $pageToken = null) : RequestInterface
+    public function listContentDocumentAsinRelationsRequest(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, array $included_data_set = null, array $asin_set = null, string $page_token = null) : RequestInterface
     {
-        // verify the required parameter 'contentReferenceKey' is set
-        if ($contentReferenceKey === null || (\is_array($contentReferenceKey) && \count($contentReferenceKey) === 0)) {
+        // verify the required parameter 'content_reference_key' is set
+        if ($content_reference_key === null || (\is_array($content_reference_key) && \count($content_reference_key) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $contentReferenceKey when calling listContentDocumentAsinRelations'
+                'Missing the required parameter $content_reference_key when calling listContentDocumentAsinRelations'
             );
         }
 
-        if (\strlen($contentReferenceKey) < 1) {
-            throw new InvalidArgumentException('invalid length for "$contentReferenceKey" when calling AplusContentApi.listContentDocumentAsinRelations, must be bigger than or equal to 1.');
+        if (\strlen($content_reference_key) < 1) {
+            throw new InvalidArgumentException('invalid length for "$content_reference_key" when calling AplusContentApi.listContentDocumentAsinRelations, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling listContentDocumentAsinRelations'
+                'Missing the required parameter $marketplace_id when calling listContentDocumentAsinRelations'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.listContentDocumentAsinRelations, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.listContentDocumentAsinRelations, must be bigger than or equal to 1.');
         }
 
-        if ($includedDataSet !== null && \count($includedDataSet) < 0) {
-            throw new InvalidArgumentException('invalid value for "$includedDataSet" when calling AplusContentApi.listContentDocumentAsinRelations, number of items must be greater than or equal to 0.');
+        if ($included_data_set !== null && \count($included_data_set) < 0) {
+            throw new InvalidArgumentException('invalid value for "$included_data_set" when calling AplusContentApi.listContentDocumentAsinRelations, number of items must be greater than or equal to 0.');
         }
 
-        if ($pageToken !== null && \strlen($pageToken) < 1) {
-            throw new InvalidArgumentException('invalid length for "$pageToken" when calling AplusContentApi.listContentDocumentAsinRelations, must be bigger than or equal to 1.');
+        if ($page_token !== null && \strlen($page_token) < 1) {
+            throw new InvalidArgumentException('invalid length for "$page_token" when calling AplusContentApi.listContentDocumentAsinRelations, must be bigger than or equal to 1.');
         }
 
         $resourcePath = '/aplus/2020-11-01/contentDocuments/{contentReferenceKey}/asins';
@@ -387,36 +388,36 @@ public function listContentDocumentAsinRelationsRequest(string $contentReference
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
         // query params
-        if (\is_array($includedDataSet)) {
-            $includedDataSet = ObjectSerializer::serializeCollection($includedDataSet, 'form', true);
+        if (\is_array($included_data_set)) {
+            $included_data_set = ObjectSerializer::serializeCollection($included_data_set, 'form', true);
         }
 
-        if ($includedDataSet !== null) {
-            $queryParams['includedDataSet'] = $includedDataSet;
+        if ($included_data_set !== null) {
+            $queryParams['includedDataSet'] = $included_data_set;
         }
         // query params
-        if (\is_array($asinSet)) {
-            $asinSet = ObjectSerializer::serializeCollection($asinSet, 'form', true);
+        if (\is_array($asin_set)) {
+            $asin_set = ObjectSerializer::serializeCollection($asin_set, 'form', true);
         }
 
-        if ($asinSet !== null) {
-            $queryParams['asinSet'] = $asinSet;
+        if ($asin_set !== null) {
+            $queryParams['asinSet'] = $asin_set;
         }
         // query params
-        if (\is_array($pageToken)) {
-            $pageToken = ObjectSerializer::serializeCollection($pageToken, '', true);
+        if (\is_array($page_token)) {
+            $page_token = ObjectSerializer::serializeCollection($page_token, '', true);
         }
 
-        if ($pageToken !== null) {
-            $queryParams['pageToken'] = $pageToken;
+        if ($page_token !== null) {
+            $queryParams['pageToken'] = $page_token;
         }
 
         if (\count($queryParams)) {
@@ -424,26 +425,32 @@ public function listContentDocumentAsinRelationsRequest(string $contentReference
         }
 
         // path params
-        if ($contentReferenceKey !== null) {
+        if ($content_reference_key !== null) {
             $resourcePath = \str_replace(
                 '{' . 'contentReferenceKey' . '}',
-                ObjectSerializer::toPathValue($contentReferenceKey),
+                ObjectSerializer::toPathValue($content_reference_key),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -462,47 +469,37 @@ public function listContentDocumentAsinRelationsRequest(string $contentReference
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation postContentDocumentApprovalSubmission.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function postContentDocumentApprovalSubmission(string $contentReferenceKey, string $marketplaceId) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentApprovalSubmissionResponse
+    public function postContentDocumentApprovalSubmission(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentApprovalSubmissionResponse
     {
-        [$response] = $this->postContentDocumentApprovalSubmissionWithHttpInfo($contentReferenceKey, $marketplaceId);
+        [$response] = $this->postContentDocumentApprovalSubmissionWithHttpInfo($accessToken, $region, $content_reference_key, $marketplace_id);
 
         return $response;
     }
@@ -510,35 +507,35 @@ public function postContentDocumentApprovalSubmission(string $contentReferenceKe
     /**
      * Create request for operation 'postContentDocumentApprovalSubmission'.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function postContentDocumentApprovalSubmissionRequest(string $contentReferenceKey, string $marketplaceId) : RequestInterface
+    public function postContentDocumentApprovalSubmissionRequest(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id) : RequestInterface
     {
-        // verify the required parameter 'contentReferenceKey' is set
-        if ($contentReferenceKey === null || (\is_array($contentReferenceKey) && \count($contentReferenceKey) === 0)) {
+        // verify the required parameter 'content_reference_key' is set
+        if ($content_reference_key === null || (\is_array($content_reference_key) && \count($content_reference_key) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $contentReferenceKey when calling postContentDocumentApprovalSubmission'
+                'Missing the required parameter $content_reference_key when calling postContentDocumentApprovalSubmission'
             );
         }
 
-        if (\strlen($contentReferenceKey) < 1) {
-            throw new InvalidArgumentException('invalid length for "$contentReferenceKey" when calling AplusContentApi.postContentDocumentApprovalSubmission, must be bigger than or equal to 1.');
+        if (\strlen($content_reference_key) < 1) {
+            throw new InvalidArgumentException('invalid length for "$content_reference_key" when calling AplusContentApi.postContentDocumentApprovalSubmission, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling postContentDocumentApprovalSubmission'
+                'Missing the required parameter $marketplace_id when calling postContentDocumentApprovalSubmission'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.postContentDocumentApprovalSubmission, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.postContentDocumentApprovalSubmission, must be bigger than or equal to 1.');
         }
 
         $resourcePath = '/aplus/2020-11-01/contentDocuments/{contentReferenceKey}/approvalSubmissions';
@@ -549,12 +546,12 @@ public function postContentDocumentApprovalSubmissionRequest(string $contentRefe
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
 
         if (\count($queryParams)) {
@@ -562,26 +559,32 @@ public function postContentDocumentApprovalSubmissionRequest(string $contentRefe
         }
 
         // path params
-        if ($contentReferenceKey !== null) {
+        if ($content_reference_key !== null) {
             $resourcePath = \str_replace(
                 '{' . 'contentReferenceKey' . '}',
-                ObjectSerializer::toPathValue($contentReferenceKey),
+                ObjectSerializer::toPathValue($content_reference_key),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -600,48 +603,38 @@ public function postContentDocumentApprovalSubmissionRequest(string $contentRefe
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation postContentDocumentAsinRelations.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $postContentDocumentAsinRelationsRequest The content document ASIN relations request details. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $post_content_document_asin_relations_request The content document ASIN relations request details. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function postContentDocumentAsinRelations(string $contentReferenceKey, string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $postContentDocumentAsinRelationsRequest) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsResponse
+    public function postContentDocumentAsinRelations(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $post_content_document_asin_relations_request) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsResponse
     {
-        [$response] = $this->postContentDocumentAsinRelationsWithHttpInfo($contentReferenceKey, $marketplaceId, $postContentDocumentAsinRelationsRequest);
+        [$response] = $this->postContentDocumentAsinRelationsWithHttpInfo($accessToken, $region, $content_reference_key, $marketplace_id, $post_content_document_asin_relations_request);
 
         return $response;
     }
@@ -649,42 +642,42 @@ public function postContentDocumentAsinRelations(string $contentReferenceKey, st
     /**
      * Create request for operation 'postContentDocumentAsinRelations'.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $postContentDocumentAsinRelationsRequest The content document ASIN relations request details. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $post_content_document_asin_relations_request The content document ASIN relations request details. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function postContentDocumentAsinRelationsRequest(string $contentReferenceKey, string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $postContentDocumentAsinRelationsRequest) : RequestInterface
+    public function postContentDocumentAsinRelationsRequest(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $post_content_document_asin_relations_request) : RequestInterface
     {
-        // verify the required parameter 'contentReferenceKey' is set
-        if ($contentReferenceKey === null || (\is_array($contentReferenceKey) && \count($contentReferenceKey) === 0)) {
+        // verify the required parameter 'content_reference_key' is set
+        if ($content_reference_key === null || (\is_array($content_reference_key) && \count($content_reference_key) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $contentReferenceKey when calling postContentDocumentAsinRelations'
+                'Missing the required parameter $content_reference_key when calling postContentDocumentAsinRelations'
             );
         }
 
-        if (\strlen($contentReferenceKey) < 1) {
-            throw new InvalidArgumentException('invalid length for "$contentReferenceKey" when calling AplusContentApi.postContentDocumentAsinRelations, must be bigger than or equal to 1.');
+        if (\strlen($content_reference_key) < 1) {
+            throw new InvalidArgumentException('invalid length for "$content_reference_key" when calling AplusContentApi.postContentDocumentAsinRelations, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling postContentDocumentAsinRelations'
+                'Missing the required parameter $marketplace_id when calling postContentDocumentAsinRelations'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.postContentDocumentAsinRelations, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.postContentDocumentAsinRelations, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'postContentDocumentAsinRelationsRequest' is set
-        if ($postContentDocumentAsinRelationsRequest === null || (\is_array($postContentDocumentAsinRelationsRequest) && \count($postContentDocumentAsinRelationsRequest) === 0)) {
+        // verify the required parameter 'post_content_document_asin_relations_request' is set
+        if ($post_content_document_asin_relations_request === null || (\is_array($post_content_document_asin_relations_request) && \count($post_content_document_asin_relations_request) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $postContentDocumentAsinRelationsRequest when calling postContentDocumentAsinRelations'
+                'Missing the required parameter $post_content_document_asin_relations_request when calling postContentDocumentAsinRelations'
             );
         }
 
@@ -696,12 +689,12 @@ public function postContentDocumentAsinRelationsRequest(string $contentReference
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
 
         if (\count($queryParams)) {
@@ -709,37 +702,43 @@ public function postContentDocumentAsinRelationsRequest(string $contentReference
         }
 
         // path params
-        if ($contentReferenceKey !== null) {
+        if ($content_reference_key !== null) {
             $resourcePath = \str_replace(
                 '{' . 'contentReferenceKey' . '}',
-                ObjectSerializer::toPathValue($contentReferenceKey),
+                ObjectSerializer::toPathValue($content_reference_key),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
-        if (isset($postContentDocumentAsinRelationsRequest)) {
-            if ($headers['Content-Type'] === 'application/json') {
-                $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($postContentDocumentAsinRelationsRequest), JSON_THROW_ON_ERROR);
+        if (isset($post_content_document_asin_relations_request)) {
+            if ($headers['Content-Type'] === ['application/json']) {
+                $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($post_content_document_asin_relations_request), JSON_THROW_ON_ERROR);
             } else {
-                $httpBody = $postContentDocumentAsinRelationsRequest;
+                $httpBody = $post_content_document_asin_relations_request;
             }
 
-            $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString($httpBody));
+            $request = $request->withBody($this->httpFactory->createStreamFromString($httpBody));
         } elseif (\count($formParams) > 0) {
             if ($multipart) {
                 $multipartContents = [];
@@ -755,47 +754,37 @@ public function postContentDocumentAsinRelationsRequest(string $contentReference
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation postContentDocumentSuspendSubmission.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function postContentDocumentSuspendSubmission(string $contentReferenceKey, string $marketplaceId) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentSuspendSubmissionResponse
+    public function postContentDocumentSuspendSubmission(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentSuspendSubmissionResponse
     {
-        [$response] = $this->postContentDocumentSuspendSubmissionWithHttpInfo($contentReferenceKey, $marketplaceId);
+        [$response] = $this->postContentDocumentSuspendSubmissionWithHttpInfo($accessToken, $region, $content_reference_key, $marketplace_id);
 
         return $response;
     }
@@ -803,35 +792,35 @@ public function postContentDocumentSuspendSubmission(string $contentReferenceKey
     /**
      * Create request for operation 'postContentDocumentSuspendSubmission'.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function postContentDocumentSuspendSubmissionRequest(string $contentReferenceKey, string $marketplaceId) : RequestInterface
+    public function postContentDocumentSuspendSubmissionRequest(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id) : RequestInterface
     {
-        // verify the required parameter 'contentReferenceKey' is set
-        if ($contentReferenceKey === null || (\is_array($contentReferenceKey) && \count($contentReferenceKey) === 0)) {
+        // verify the required parameter 'content_reference_key' is set
+        if ($content_reference_key === null || (\is_array($content_reference_key) && \count($content_reference_key) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $contentReferenceKey when calling postContentDocumentSuspendSubmission'
+                'Missing the required parameter $content_reference_key when calling postContentDocumentSuspendSubmission'
             );
         }
 
-        if (\strlen($contentReferenceKey) < 1) {
-            throw new InvalidArgumentException('invalid length for "$contentReferenceKey" when calling AplusContentApi.postContentDocumentSuspendSubmission, must be bigger than or equal to 1.');
+        if (\strlen($content_reference_key) < 1) {
+            throw new InvalidArgumentException('invalid length for "$content_reference_key" when calling AplusContentApi.postContentDocumentSuspendSubmission, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling postContentDocumentSuspendSubmission'
+                'Missing the required parameter $marketplace_id when calling postContentDocumentSuspendSubmission'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.postContentDocumentSuspendSubmission, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.postContentDocumentSuspendSubmission, must be bigger than or equal to 1.');
         }
 
         $resourcePath = '/aplus/2020-11-01/contentDocuments/{contentReferenceKey}/suspendSubmissions';
@@ -842,12 +831,12 @@ public function postContentDocumentSuspendSubmissionRequest(string $contentRefer
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
 
         if (\count($queryParams)) {
@@ -855,26 +844,32 @@ public function postContentDocumentSuspendSubmissionRequest(string $contentRefer
         }
 
         // path params
-        if ($contentReferenceKey !== null) {
+        if ($content_reference_key !== null) {
             $resourcePath = \str_replace(
                 '{' . 'contentReferenceKey' . '}',
-                ObjectSerializer::toPathValue($contentReferenceKey),
+                ObjectSerializer::toPathValue($content_reference_key),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -893,47 +888,37 @@ public function postContentDocumentSuspendSubmissionRequest(string $contentRefer
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation searchContentDocuments.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function searchContentDocuments(string $marketplaceId, string $pageToken = null) : \AmazonPHP\SellingPartner\Model\APlus\SearchContentDocumentsResponse
+    public function searchContentDocuments(AccessToken $accessToken, string $region, string $marketplace_id, string $page_token = null) : \AmazonPHP\SellingPartner\Model\APlus\SearchContentDocumentsResponse
     {
-        [$response] = $this->searchContentDocumentsWithHttpInfo($marketplaceId, $pageToken);
+        [$response] = $this->searchContentDocumentsWithHttpInfo($accessToken, $region, $marketplace_id, $page_token);
 
         return $response;
     }
@@ -941,28 +926,28 @@ public function searchContentDocuments(string $marketplaceId, string $pageToken
     /**
      * Create request for operation 'searchContentDocuments'.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function searchContentDocumentsRequest(string $marketplaceId, string $pageToken = null) : RequestInterface
+    public function searchContentDocumentsRequest(AccessToken $accessToken, string $region, string $marketplace_id, string $page_token = null) : RequestInterface
     {
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling searchContentDocuments'
+                'Missing the required parameter $marketplace_id when calling searchContentDocuments'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.searchContentDocuments, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.searchContentDocuments, must be bigger than or equal to 1.');
         }
 
-        if ($pageToken !== null && \strlen($pageToken) < 1) {
-            throw new InvalidArgumentException('invalid length for "$pageToken" when calling AplusContentApi.searchContentDocuments, must be bigger than or equal to 1.');
+        if ($page_token !== null && \strlen($page_token) < 1) {
+            throw new InvalidArgumentException('invalid length for "$page_token" when calling AplusContentApi.searchContentDocuments, must be bigger than or equal to 1.');
         }
 
         $resourcePath = '/aplus/2020-11-01/contentDocuments';
@@ -973,20 +958,20 @@ public function searchContentDocumentsRequest(string $marketplaceId, string $pag
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
         // query params
-        if (\is_array($pageToken)) {
-            $pageToken = ObjectSerializer::serializeCollection($pageToken, '', true);
+        if (\is_array($page_token)) {
+            $page_token = ObjectSerializer::serializeCollection($page_token, '', true);
         }
 
-        if ($pageToken !== null) {
-            $queryParams['pageToken'] = $pageToken;
+        if ($page_token !== null) {
+            $queryParams['pageToken'] = $page_token;
         }
 
         if (\count($queryParams)) {
@@ -994,17 +979,23 @@ public function searchContentDocumentsRequest(string $marketplaceId, string $pag
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -1023,48 +1014,38 @@ public function searchContentDocumentsRequest(string $marketplaceId, string $pag
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation searchContentPublishRecords.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      * @param string $asin The Amazon Standard Identification Number (ASIN). (required)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function searchContentPublishRecords(string $marketplaceId, string $asin, string $pageToken = null) : \AmazonPHP\SellingPartner\Model\APlus\SearchContentPublishRecordsResponse
+    public function searchContentPublishRecords(AccessToken $accessToken, string $region, string $marketplace_id, string $asin, string $page_token = null) : \AmazonPHP\SellingPartner\Model\APlus\SearchContentPublishRecordsResponse
     {
-        [$response] = $this->searchContentPublishRecordsWithHttpInfo($marketplaceId, $asin, $pageToken);
+        [$response] = $this->searchContentPublishRecordsWithHttpInfo($accessToken, $region, $marketplace_id, $asin, $page_token);
 
         return $response;
     }
@@ -1072,25 +1053,25 @@ public function searchContentPublishRecords(string $marketplaceId, string $asin,
     /**
      * Create request for operation 'searchContentPublishRecords'.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      * @param string $asin The Amazon Standard Identification Number (ASIN). (required)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function searchContentPublishRecordsRequest(string $marketplaceId, string $asin, string $pageToken = null) : RequestInterface
+    public function searchContentPublishRecordsRequest(AccessToken $accessToken, string $region, string $marketplace_id, string $asin, string $page_token = null) : RequestInterface
     {
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling searchContentPublishRecords'
+                'Missing the required parameter $marketplace_id when calling searchContentPublishRecords'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.searchContentPublishRecords, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.searchContentPublishRecords, must be bigger than or equal to 1.');
         }
 
         // verify the required parameter 'asin' is set
@@ -1104,8 +1085,8 @@ public function searchContentPublishRecordsRequest(string $marketplaceId, string
             throw new InvalidArgumentException('invalid length for "$asin" when calling AplusContentApi.searchContentPublishRecords, must be bigger than or equal to 10.');
         }
 
-        if ($pageToken !== null && \strlen($pageToken) < 1) {
-            throw new InvalidArgumentException('invalid length for "$pageToken" when calling AplusContentApi.searchContentPublishRecords, must be bigger than or equal to 1.');
+        if ($page_token !== null && \strlen($page_token) < 1) {
+            throw new InvalidArgumentException('invalid length for "$page_token" when calling AplusContentApi.searchContentPublishRecords, must be bigger than or equal to 1.');
         }
 
         $resourcePath = '/aplus/2020-11-01/contentPublishRecords';
@@ -1116,12 +1097,12 @@ public function searchContentPublishRecordsRequest(string $marketplaceId, string
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
         // query params
         if (\is_array($asin)) {
@@ -1132,12 +1113,12 @@ public function searchContentPublishRecordsRequest(string $marketplaceId, string
             $queryParams['asin'] = $asin;
         }
         // query params
-        if (\is_array($pageToken)) {
-            $pageToken = ObjectSerializer::serializeCollection($pageToken, '', true);
+        if (\is_array($page_token)) {
+            $page_token = ObjectSerializer::serializeCollection($page_token, '', true);
         }
 
-        if ($pageToken !== null) {
-            $queryParams['pageToken'] = $pageToken;
+        if ($page_token !== null) {
+            $queryParams['pageToken'] = $page_token;
         }
 
         if (\count($queryParams)) {
@@ -1145,17 +1126,23 @@ public function searchContentPublishRecordsRequest(string $marketplaceId, string
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -1174,48 +1161,38 @@ public function searchContentPublishRecordsRequest(string $marketplaceId, string
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation updateContentDocument.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function updateContentDocument(string $contentReferenceKey, string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse
+    public function updateContentDocument(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request) : \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse
     {
-        [$response] = $this->updateContentDocumentWithHttpInfo($contentReferenceKey, $marketplaceId, $postContentDocumentRequest);
+        [$response] = $this->updateContentDocumentWithHttpInfo($accessToken, $region, $content_reference_key, $marketplace_id, $post_content_document_request);
 
         return $response;
     }
@@ -1223,42 +1200,42 @@ public function updateContentDocument(string $contentReferenceKey, string $marke
     /**
      * Create request for operation 'updateContentDocument'.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function updateContentDocumentRequest(string $contentReferenceKey, string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest) : RequestInterface
+    public function updateContentDocumentRequest(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request) : RequestInterface
     {
-        // verify the required parameter 'contentReferenceKey' is set
-        if ($contentReferenceKey === null || (\is_array($contentReferenceKey) && \count($contentReferenceKey) === 0)) {
+        // verify the required parameter 'content_reference_key' is set
+        if ($content_reference_key === null || (\is_array($content_reference_key) && \count($content_reference_key) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $contentReferenceKey when calling updateContentDocument'
+                'Missing the required parameter $content_reference_key when calling updateContentDocument'
             );
         }
 
-        if (\strlen($contentReferenceKey) < 1) {
-            throw new InvalidArgumentException('invalid length for "$contentReferenceKey" when calling AplusContentApi.updateContentDocument, must be bigger than or equal to 1.');
+        if (\strlen($content_reference_key) < 1) {
+            throw new InvalidArgumentException('invalid length for "$content_reference_key" when calling AplusContentApi.updateContentDocument, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling updateContentDocument'
+                'Missing the required parameter $marketplace_id when calling updateContentDocument'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.updateContentDocument, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.updateContentDocument, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'postContentDocumentRequest' is set
-        if ($postContentDocumentRequest === null || (\is_array($postContentDocumentRequest) && \count($postContentDocumentRequest) === 0)) {
+        // verify the required parameter 'post_content_document_request' is set
+        if ($post_content_document_request === null || (\is_array($post_content_document_request) && \count($post_content_document_request) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $postContentDocumentRequest when calling updateContentDocument'
+                'Missing the required parameter $post_content_document_request when calling updateContentDocument'
             );
         }
 
@@ -1270,12 +1247,12 @@ public function updateContentDocumentRequest(string $contentReferenceKey, string
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
 
         if (\count($queryParams)) {
@@ -1283,37 +1260,43 @@ public function updateContentDocumentRequest(string $contentReferenceKey, string
         }
 
         // path params
-        if ($contentReferenceKey !== null) {
+        if ($content_reference_key !== null) {
             $resourcePath = \str_replace(
                 '{' . 'contentReferenceKey' . '}',
-                ObjectSerializer::toPathValue($contentReferenceKey),
+                ObjectSerializer::toPathValue($content_reference_key),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
-        if (isset($postContentDocumentRequest)) {
-            if ($headers['Content-Type'] === 'application/json') {
-                $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($postContentDocumentRequest), JSON_THROW_ON_ERROR);
+        if (isset($post_content_document_request)) {
+            if ($headers['Content-Type'] === ['application/json']) {
+                $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($post_content_document_request), JSON_THROW_ON_ERROR);
             } else {
-                $httpBody = $postContentDocumentRequest;
+                $httpBody = $post_content_document_request;
             }
 
-            $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString($httpBody));
+            $request = $request->withBody($this->httpFactory->createStreamFromString($httpBody));
         } elseif (\count($formParams) > 0) {
             if ($multipart) {
                 $multipartContents = [];
@@ -1329,48 +1312,38 @@ public function updateContentDocumentRequest(string $contentReferenceKey, string
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation validateContentDocumentAsinRelations.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
-     * @param array<array-key, string>|null $asinSet The set of ASINs. (optional)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
+     * @param array<array-key, string>|null $asin_set The set of ASINs. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function validateContentDocumentAsinRelations(string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest, array $asinSet = null) : \AmazonPHP\SellingPartner\Model\APlus\ValidateContentDocumentAsinRelationsResponse
+    public function validateContentDocumentAsinRelations(AccessToken $accessToken, string $region, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request, array $asin_set = null) : \AmazonPHP\SellingPartner\Model\APlus\ValidateContentDocumentAsinRelationsResponse
     {
-        [$response] = $this->validateContentDocumentAsinRelationsWithHttpInfo($marketplaceId, $postContentDocumentRequest, $asinSet);
+        [$response] = $this->validateContentDocumentAsinRelationsWithHttpInfo($accessToken, $region, $marketplace_id, $post_content_document_request, $asin_set);
 
         return $response;
     }
@@ -1378,31 +1351,31 @@ public function validateContentDocumentAsinRelations(string $marketplaceId, \Ama
     /**
      * Create request for operation 'validateContentDocumentAsinRelations'.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
-     * @param array<array-key, string>|null $asinSet The set of ASINs. (optional)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
+     * @param array<array-key, string>|null $asin_set The set of ASINs. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function validateContentDocumentAsinRelationsRequest(string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest, array $asinSet = null) : RequestInterface
+    public function validateContentDocumentAsinRelationsRequest(AccessToken $accessToken, string $region, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request, array $asin_set = null) : RequestInterface
     {
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling validateContentDocumentAsinRelations'
+                'Missing the required parameter $marketplace_id when calling validateContentDocumentAsinRelations'
             );
         }
 
-        if (\strlen($marketplaceId) < 1) {
-            throw new InvalidArgumentException('invalid length for "$marketplaceId" when calling AplusContentApi.validateContentDocumentAsinRelations, must be bigger than or equal to 1.');
+        if (\strlen($marketplace_id) < 1) {
+            throw new InvalidArgumentException('invalid length for "$marketplace_id" when calling AplusContentApi.validateContentDocumentAsinRelations, must be bigger than or equal to 1.');
         }
 
-        // verify the required parameter 'postContentDocumentRequest' is set
-        if ($postContentDocumentRequest === null || (\is_array($postContentDocumentRequest) && \count($postContentDocumentRequest) === 0)) {
+        // verify the required parameter 'post_content_document_request' is set
+        if ($post_content_document_request === null || (\is_array($post_content_document_request) && \count($post_content_document_request) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $postContentDocumentRequest when calling validateContentDocumentAsinRelations'
+                'Missing the required parameter $post_content_document_request when calling validateContentDocumentAsinRelations'
             );
         }
 
@@ -1414,20 +1387,20 @@ public function validateContentDocumentAsinRelationsRequest(string $marketplaceI
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['marketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['marketplaceId'] = $marketplace_id;
         }
         // query params
-        if (\is_array($asinSet)) {
-            $asinSet = ObjectSerializer::serializeCollection($asinSet, 'form', true);
+        if (\is_array($asin_set)) {
+            $asin_set = ObjectSerializer::serializeCollection($asin_set, 'form', true);
         }
 
-        if ($asinSet !== null) {
-            $queryParams['asinSet'] = $asinSet;
+        if ($asin_set !== null) {
+            $queryParams['asinSet'] = $asin_set;
         }
 
         if (\count($queryParams)) {
@@ -1435,28 +1408,34 @@ public function validateContentDocumentAsinRelationsRequest(string $marketplaceI
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
-        if (isset($postContentDocumentRequest)) {
-            if ($headers['Content-Type'] === 'application/json') {
-                $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($postContentDocumentRequest), JSON_THROW_ON_ERROR);
+        if (isset($post_content_document_request)) {
+            if ($headers['Content-Type'] === ['application/json']) {
+                $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($post_content_document_request), JSON_THROW_ON_ERROR);
             } else {
-                $httpBody = $postContentDocumentRequest;
+                $httpBody = $post_content_document_request;
             }
 
-            $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString($httpBody));
+            $request = $request->withBody($this->httpFactory->createStreamFromString($httpBody));
         } elseif (\count($formParams) > 0) {
             if ($multipart) {
                 $multipartContents = [];
@@ -1472,53 +1451,43 @@ public function validateContentDocumentAsinRelationsRequest(string $marketplaceI
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation createContentDocumentWithHttpInfo.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse>
      */
-    private function createContentDocumentWithHttpInfo(string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest) : array
+    private function createContentDocumentWithHttpInfo(AccessToken $accessToken, string $region, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request) : array
     {
-        $request = $this->createContentDocumentRequest($marketplaceId, $postContentDocumentRequest);
+        $request = $this->createContentDocumentRequest($accessToken, $region, $marketplace_id, $post_content_document_request);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1548,7 +1517,12 @@ private function createContentDocumentWithHttpInfo(string $marketplaceId, \Amazo
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1562,7 +1536,12 @@ private function createContentDocumentWithHttpInfo(string $marketplaceId, \Amazo
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1572,7 +1551,12 @@ private function createContentDocumentWithHttpInfo(string $marketplaceId, \Amazo
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1580,6 +1564,7 @@ private function createContentDocumentWithHttpInfo(string $marketplaceId, \Amazo
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse::class,
                         $e->getResponseHeaders()
@@ -1595,6 +1580,7 @@ private function createContentDocumentWithHttpInfo(string $marketplaceId, \Amazo
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -1611,22 +1597,22 @@ private function createContentDocumentWithHttpInfo(string $marketplaceId, \Amazo
     /**
      * Operation getContentDocumentWithHttpInfo.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param array<array-key, string> $includedDataSet The set of A+ Content data types to include in the response. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param array<array-key, string> $included_data_set The set of A+ Content data types to include in the response. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\GetContentDocumentResponse>
      */
-    private function getContentDocumentWithHttpInfo(string $contentReferenceKey, string $marketplaceId, array $includedDataSet) : array
+    private function getContentDocumentWithHttpInfo(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, array $included_data_set) : array
     {
-        $request = $this->getContentDocumentRequest($contentReferenceKey, $marketplaceId, $includedDataSet);
+        $request = $this->getContentDocumentRequest($accessToken, $region, $content_reference_key, $marketplace_id, $included_data_set);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1656,7 +1642,12 @@ private function getContentDocumentWithHttpInfo(string $contentReferenceKey, str
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\GetContentDocumentResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\GetContentDocumentResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1671,7 +1662,12 @@ private function getContentDocumentWithHttpInfo(string $contentReferenceKey, str
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1681,7 +1677,12 @@ private function getContentDocumentWithHttpInfo(string $contentReferenceKey, str
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1689,6 +1690,7 @@ private function getContentDocumentWithHttpInfo(string $contentReferenceKey, str
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\GetContentDocumentResponse::class,
                         $e->getResponseHeaders()
@@ -1705,6 +1707,7 @@ private function getContentDocumentWithHttpInfo(string $contentReferenceKey, str
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -1721,24 +1724,24 @@ private function getContentDocumentWithHttpInfo(string $contentReferenceKey, str
     /**
      * Operation listContentDocumentAsinRelationsWithHttpInfo.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param array<array-key, string>|null $includedDataSet The set of A+ Content data types to include in the response. If you do not include this parameter, the operation returns the related ASINs without metadata. (optional)
-     * @param array<array-key, string>|null $asinSet The set of ASINs. (optional)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param array<array-key, string>|null $included_data_set The set of A+ Content data types to include in the response. If you do not include this parameter, the operation returns the related ASINs without metadata. (optional)
+     * @param array<array-key, string>|null $asin_set The set of ASINs. (optional)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\ListContentDocumentAsinRelationsResponse>
      */
-    private function listContentDocumentAsinRelationsWithHttpInfo(string $contentReferenceKey, string $marketplaceId, array $includedDataSet = null, array $asinSet = null, string $pageToken = null) : array
+    private function listContentDocumentAsinRelationsWithHttpInfo(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, array $included_data_set = null, array $asin_set = null, string $page_token = null) : array
     {
-        $request = $this->listContentDocumentAsinRelationsRequest($contentReferenceKey, $marketplaceId, $includedDataSet, $asinSet, $pageToken);
+        $request = $this->listContentDocumentAsinRelationsRequest($accessToken, $region, $content_reference_key, $marketplace_id, $included_data_set, $asin_set, $page_token);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1768,7 +1771,12 @@ private function listContentDocumentAsinRelationsWithHttpInfo(string $contentRef
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ListContentDocumentAsinRelationsResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ListContentDocumentAsinRelationsResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1783,7 +1791,12 @@ private function listContentDocumentAsinRelationsWithHttpInfo(string $contentRef
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1793,7 +1806,12 @@ private function listContentDocumentAsinRelationsWithHttpInfo(string $contentRef
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1801,6 +1819,7 @@ private function listContentDocumentAsinRelationsWithHttpInfo(string $contentRef
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ListContentDocumentAsinRelationsResponse::class,
                         $e->getResponseHeaders()
@@ -1817,6 +1836,7 @@ private function listContentDocumentAsinRelationsWithHttpInfo(string $contentRef
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -1833,21 +1853,21 @@ private function listContentDocumentAsinRelationsWithHttpInfo(string $contentRef
     /**
      * Operation postContentDocumentApprovalSubmissionWithHttpInfo.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentApprovalSubmissionResponse>
      */
-    private function postContentDocumentApprovalSubmissionWithHttpInfo(string $contentReferenceKey, string $marketplaceId) : array
+    private function postContentDocumentApprovalSubmissionWithHttpInfo(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id) : array
     {
-        $request = $this->postContentDocumentApprovalSubmissionRequest($contentReferenceKey, $marketplaceId);
+        $request = $this->postContentDocumentApprovalSubmissionRequest($accessToken, $region, $content_reference_key, $marketplace_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1877,7 +1897,12 @@ private function postContentDocumentApprovalSubmissionWithHttpInfo(string $conte
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentApprovalSubmissionResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentApprovalSubmissionResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1892,7 +1917,12 @@ private function postContentDocumentApprovalSubmissionWithHttpInfo(string $conte
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1902,7 +1932,12 @@ private function postContentDocumentApprovalSubmissionWithHttpInfo(string $conte
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1910,6 +1945,7 @@ private function postContentDocumentApprovalSubmissionWithHttpInfo(string $conte
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentApprovalSubmissionResponse::class,
                         $e->getResponseHeaders()
@@ -1926,6 +1962,7 @@ private function postContentDocumentApprovalSubmissionWithHttpInfo(string $conte
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -1942,22 +1979,22 @@ private function postContentDocumentApprovalSubmissionWithHttpInfo(string $conte
     /**
      * Operation postContentDocumentAsinRelationsWithHttpInfo.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $postContentDocumentAsinRelationsRequest The content document ASIN relations request details. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $post_content_document_asin_relations_request The content document ASIN relations request details. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsResponse>
      */
-    private function postContentDocumentAsinRelationsWithHttpInfo(string $contentReferenceKey, string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $postContentDocumentAsinRelationsRequest) : array
+    private function postContentDocumentAsinRelationsWithHttpInfo(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsRequest $post_content_document_asin_relations_request) : array
     {
-        $request = $this->postContentDocumentAsinRelationsRequest($contentReferenceKey, $marketplaceId, $postContentDocumentAsinRelationsRequest);
+        $request = $this->postContentDocumentAsinRelationsRequest($accessToken, $region, $content_reference_key, $marketplace_id, $post_content_document_asin_relations_request);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1987,7 +2024,12 @@ private function postContentDocumentAsinRelationsWithHttpInfo(string $contentRef
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2002,7 +2044,12 @@ private function postContentDocumentAsinRelationsWithHttpInfo(string $contentRef
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2012,7 +2059,12 @@ private function postContentDocumentAsinRelationsWithHttpInfo(string $contentRef
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -2020,6 +2072,7 @@ private function postContentDocumentAsinRelationsWithHttpInfo(string $contentRef
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentAsinRelationsResponse::class,
                         $e->getResponseHeaders()
@@ -2036,6 +2089,7 @@ private function postContentDocumentAsinRelationsWithHttpInfo(string $contentRef
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -2052,21 +2106,21 @@ private function postContentDocumentAsinRelationsWithHttpInfo(string $contentRef
     /**
      * Operation postContentDocumentSuspendSubmissionWithHttpInfo.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentSuspendSubmissionResponse>
      */
-    private function postContentDocumentSuspendSubmissionWithHttpInfo(string $contentReferenceKey, string $marketplaceId) : array
+    private function postContentDocumentSuspendSubmissionWithHttpInfo(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id) : array
     {
-        $request = $this->postContentDocumentSuspendSubmissionRequest($contentReferenceKey, $marketplaceId);
+        $request = $this->postContentDocumentSuspendSubmissionRequest($accessToken, $region, $content_reference_key, $marketplace_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -2096,7 +2150,12 @@ private function postContentDocumentSuspendSubmissionWithHttpInfo(string $conten
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentSuspendSubmissionResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentSuspendSubmissionResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2111,7 +2170,12 @@ private function postContentDocumentSuspendSubmissionWithHttpInfo(string $conten
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2121,7 +2185,12 @@ private function postContentDocumentSuspendSubmissionWithHttpInfo(string $conten
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -2129,6 +2198,7 @@ private function postContentDocumentSuspendSubmissionWithHttpInfo(string $conten
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentSuspendSubmissionResponse::class,
                         $e->getResponseHeaders()
@@ -2145,6 +2215,7 @@ private function postContentDocumentSuspendSubmissionWithHttpInfo(string $conten
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -2161,21 +2232,21 @@ private function postContentDocumentSuspendSubmissionWithHttpInfo(string $conten
     /**
      * Operation searchContentDocumentsWithHttpInfo.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\SearchContentDocumentsResponse>
      */
-    private function searchContentDocumentsWithHttpInfo(string $marketplaceId, string $pageToken = null) : array
+    private function searchContentDocumentsWithHttpInfo(AccessToken $accessToken, string $region, string $marketplace_id, string $page_token = null) : array
     {
-        $request = $this->searchContentDocumentsRequest($marketplaceId, $pageToken);
+        $request = $this->searchContentDocumentsRequest($accessToken, $region, $marketplace_id, $page_token);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -2205,7 +2276,12 @@ private function searchContentDocumentsWithHttpInfo(string $marketplaceId, strin
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\SearchContentDocumentsResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\SearchContentDocumentsResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2220,7 +2296,12 @@ private function searchContentDocumentsWithHttpInfo(string $marketplaceId, strin
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2230,7 +2311,12 @@ private function searchContentDocumentsWithHttpInfo(string $marketplaceId, strin
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -2238,6 +2324,7 @@ private function searchContentDocumentsWithHttpInfo(string $marketplaceId, strin
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\SearchContentDocumentsResponse::class,
                         $e->getResponseHeaders()
@@ -2254,6 +2341,7 @@ private function searchContentDocumentsWithHttpInfo(string $marketplaceId, strin
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -2270,22 +2358,22 @@ private function searchContentDocumentsWithHttpInfo(string $marketplaceId, strin
     /**
      * Operation searchContentPublishRecordsWithHttpInfo.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
      * @param string $asin The Amazon Standard Identification Number (ASIN). (required)
-     * @param null|string $pageToken A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
+     * @param null|string $page_token A page token from the nextPageToken response element returned by your previous call to this operation. nextPageToken is returned when the results of a call exceed the page size. To get the next page of results, call the operation and include pageToken as the only parameter. Specifying pageToken with any other parameter will cause the request to fail. When no nextPageToken value is returned there are no more pages to return. A pageToken value is not usable across different operations. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\SearchContentPublishRecordsResponse>
      */
-    private function searchContentPublishRecordsWithHttpInfo(string $marketplaceId, string $asin, string $pageToken = null) : array
+    private function searchContentPublishRecordsWithHttpInfo(AccessToken $accessToken, string $region, string $marketplace_id, string $asin, string $page_token = null) : array
     {
-        $request = $this->searchContentPublishRecordsRequest($marketplaceId, $asin, $pageToken);
+        $request = $this->searchContentPublishRecordsRequest($accessToken, $region, $marketplace_id, $asin, $page_token);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -2315,7 +2403,12 @@ private function searchContentPublishRecordsWithHttpInfo(string $marketplaceId,
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\SearchContentPublishRecordsResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\SearchContentPublishRecordsResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2329,7 +2422,12 @@ private function searchContentPublishRecordsWithHttpInfo(string $marketplaceId,
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2339,7 +2437,12 @@ private function searchContentPublishRecordsWithHttpInfo(string $marketplaceId,
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -2347,6 +2450,7 @@ private function searchContentPublishRecordsWithHttpInfo(string $marketplaceId,
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\SearchContentPublishRecordsResponse::class,
                         $e->getResponseHeaders()
@@ -2362,6 +2466,7 @@ private function searchContentPublishRecordsWithHttpInfo(string $marketplaceId,
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -2378,22 +2483,22 @@ private function searchContentPublishRecordsWithHttpInfo(string $marketplaceId,
     /**
      * Operation updateContentDocumentWithHttpInfo.
      *
-     * @param string $contentReferenceKey The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
+     * @param string $content_reference_key The unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ Content identifier. (required)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse>
      */
-    private function updateContentDocumentWithHttpInfo(string $contentReferenceKey, string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest) : array
+    private function updateContentDocumentWithHttpInfo(AccessToken $accessToken, string $region, string $content_reference_key, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request) : array
     {
-        $request = $this->updateContentDocumentRequest($contentReferenceKey, $marketplaceId, $postContentDocumentRequest);
+        $request = $this->updateContentDocumentRequest($accessToken, $region, $content_reference_key, $marketplace_id, $post_content_document_request);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -2423,7 +2528,12 @@ private function updateContentDocumentWithHttpInfo(string $contentReferenceKey,
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2438,7 +2548,12 @@ private function updateContentDocumentWithHttpInfo(string $contentReferenceKey,
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2448,7 +2563,12 @@ private function updateContentDocumentWithHttpInfo(string $contentReferenceKey,
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -2456,6 +2576,7 @@ private function updateContentDocumentWithHttpInfo(string $contentReferenceKey,
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentResponse::class,
                         $e->getResponseHeaders()
@@ -2472,6 +2593,7 @@ private function updateContentDocumentWithHttpInfo(string $contentReferenceKey,
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
@@ -2488,22 +2610,22 @@ private function updateContentDocumentWithHttpInfo(string $contentReferenceKey,
     /**
      * Operation validateContentDocumentAsinRelationsWithHttpInfo.
      *
-     * @param string $marketplaceId The identifier for the marketplace where the A+ Content is published. (required)
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest The content document request details. (required)
-     * @param array<array-key, string>|null $asinSet The set of ASINs. (optional)
+     * @param string $marketplace_id The identifier for the marketplace where the A+ Content is published. (required)
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request The content document request details. (required)
+     * @param array<array-key, string>|null $asin_set The set of ASINs. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\APlus\ValidateContentDocumentAsinRelationsResponse>
      */
-    private function validateContentDocumentAsinRelationsWithHttpInfo(string $marketplaceId, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $postContentDocumentRequest, array $asinSet = null) : array
+    private function validateContentDocumentAsinRelationsWithHttpInfo(AccessToken $accessToken, string $region, string $marketplace_id, \AmazonPHP\SellingPartner\Model\APlus\PostContentDocumentRequest $post_content_document_request, array $asin_set = null) : array
     {
-        $request = $this->validateContentDocumentAsinRelationsRequest($marketplaceId, $postContentDocumentRequest, $asinSet);
+        $request = $this->validateContentDocumentAsinRelationsRequest($accessToken, $region, $marketplace_id, $post_content_document_request, $asin_set);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -2533,7 +2655,12 @@ private function validateContentDocumentAsinRelationsWithHttpInfo(string $market
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ValidateContentDocumentAsinRelationsResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ValidateContentDocumentAsinRelationsResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2547,7 +2674,12 @@ private function validateContentDocumentAsinRelationsWithHttpInfo(string $market
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -2557,7 +2689,12 @@ private function validateContentDocumentAsinRelationsWithHttpInfo(string $market
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -2565,6 +2702,7 @@ private function validateContentDocumentAsinRelationsWithHttpInfo(string $market
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ValidateContentDocumentAsinRelationsResponse::class,
                         $e->getResponseHeaders()
@@ -2580,6 +2718,7 @@ private function validateContentDocumentAsinRelationsWithHttpInfo(string $market
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\APlus\ErrorList::class,
                         $e->getResponseHeaders()
diff --git a/src/AmazonPHP/SellingPartner/Api/AuthorizationSDK.php b/src/AmazonPHP/SellingPartner/Api/AuthorizationSDK.php
index b581b9c7f..7a43266ec 100644
--- a/src/AmazonPHP/SellingPartner/Api/AuthorizationSDK.php
+++ b/src/AmazonPHP/SellingPartner/Api/AuthorizationSDK.php
@@ -2,12 +2,15 @@
 
 namespace AmazonPHP\SellingPartner\Api;
 
+use AmazonPHP\SellingPartner\AccessToken;
+use AmazonPHP\SellingPartner\Configuration;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\Exception\InvalidArgumentException;
+use AmazonPHP\SellingPartner\HttpFactory;
 use AmazonPHP\SellingPartner\HttpSignatureHeaders;
-use AmazonPHP\SellingPartner\OAuth;
 use AmazonPHP\SellingPartner\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,11 +19,17 @@
  */
 final class AuthorizationSDK
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
 
-    public function __construct(OAuth $authentication)
+    private HttpFactory $httpFactory;
+
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
     /**
@@ -28,16 +37,16 @@ public function __construct(OAuth $authentication)
      *
      * Returns the Login with Amazon (LWA) authorization code for an existing Amazon MWS authorization.
      *
-     * @param string $sellingPartnerId The seller ID of the seller for whom you are requesting Selling Partner API authorization. This must be the seller ID of the seller who authorized your application on the Marketplace Appstore. (required)
-     * @param string $developerId Your developer ID. This must be one of the developer ID values that you provided when you registered your application in Developer Central. (required)
-     * @param string $mwsAuthToken The MWS Auth Token that was generated when the seller authorized your application on the Marketplace Appstore. (required)
+     * @param string $selling_partner_id The seller ID of the seller for whom you are requesting Selling Partner API authorization. This must be the seller ID of the seller who authorized your application on the Marketplace Appstore. (required)
+     * @param string $developer_id Your developer ID. This must be one of the developer ID values that you provided when you registered your application in Developer Central. (required)
+     * @param string $mws_auth_token The MWS Auth Token that was generated when the seller authorized your application on the Marketplace Appstore. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getAuthorizationCode(string $sellingPartnerId, string $developerId, string $mwsAuthToken) : \AmazonPHP\SellingPartner\Model\Authorization\GetAuthorizationCodeResponse
+    public function getAuthorizationCode(AccessToken $accessToken, string $region, string $selling_partner_id, string $developer_id, string $mws_auth_token) : \AmazonPHP\SellingPartner\Model\Authorization\GetAuthorizationCodeResponse
     {
-        [$response] = $this->getAuthorizationCodeWithHttpInfo($sellingPartnerId, $developerId, $mwsAuthToken);
+        [$response] = $this->getAuthorizationCodeWithHttpInfo($accessToken, $region, $selling_partner_id, $developer_id, $mws_auth_token);
 
         return $response;
     }
@@ -45,32 +54,32 @@ public function getAuthorizationCode(string $sellingPartnerId, string $developer
     /**
      * Create request for operation 'getAuthorizationCode'.
      *
-     * @param string $sellingPartnerId The seller ID of the seller for whom you are requesting Selling Partner API authorization. This must be the seller ID of the seller who authorized your application on the Marketplace Appstore. (required)
-     * @param string $developerId Your developer ID. This must be one of the developer ID values that you provided when you registered your application in Developer Central. (required)
-     * @param string $mwsAuthToken The MWS Auth Token that was generated when the seller authorized your application on the Marketplace Appstore. (required)
+     * @param string $selling_partner_id The seller ID of the seller for whom you are requesting Selling Partner API authorization. This must be the seller ID of the seller who authorized your application on the Marketplace Appstore. (required)
+     * @param string $developer_id Your developer ID. This must be one of the developer ID values that you provided when you registered your application in Developer Central. (required)
+     * @param string $mws_auth_token The MWS Auth Token that was generated when the seller authorized your application on the Marketplace Appstore. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getAuthorizationCodeRequest(string $sellingPartnerId, string $developerId, string $mwsAuthToken) : RequestInterface
+    public function getAuthorizationCodeRequest(AccessToken $accessToken, string $region, string $selling_partner_id, string $developer_id, string $mws_auth_token) : RequestInterface
     {
-        // verify the required parameter 'sellingPartnerId' is set
-        if ($sellingPartnerId === null || (\is_array($sellingPartnerId) && \count($sellingPartnerId) === 0)) {
+        // verify the required parameter 'selling_partner_id' is set
+        if ($selling_partner_id === null || (\is_array($selling_partner_id) && \count($selling_partner_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $sellingPartnerId when calling getAuthorizationCode'
+                'Missing the required parameter $selling_partner_id when calling getAuthorizationCode'
             );
         }
-        // verify the required parameter 'developerId' is set
-        if ($developerId === null || (\is_array($developerId) && \count($developerId) === 0)) {
+        // verify the required parameter 'developer_id' is set
+        if ($developer_id === null || (\is_array($developer_id) && \count($developer_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $developerId when calling getAuthorizationCode'
+                'Missing the required parameter $developer_id when calling getAuthorizationCode'
             );
         }
-        // verify the required parameter 'mwsAuthToken' is set
-        if ($mwsAuthToken === null || (\is_array($mwsAuthToken) && \count($mwsAuthToken) === 0)) {
+        // verify the required parameter 'mws_auth_token' is set
+        if ($mws_auth_token === null || (\is_array($mws_auth_token) && \count($mws_auth_token) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $mwsAuthToken when calling getAuthorizationCode'
+                'Missing the required parameter $mws_auth_token when calling getAuthorizationCode'
             );
         }
 
@@ -82,28 +91,28 @@ public function getAuthorizationCodeRequest(string $sellingPartnerId, string $de
         $query = '';
 
         // query params
-        if (\is_array($sellingPartnerId)) {
-            $sellingPartnerId = ObjectSerializer::serializeCollection($sellingPartnerId, '', true);
+        if (\is_array($selling_partner_id)) {
+            $selling_partner_id = ObjectSerializer::serializeCollection($selling_partner_id, '', true);
         }
 
-        if ($sellingPartnerId !== null) {
-            $queryParams['sellingPartnerId'] = $sellingPartnerId;
+        if ($selling_partner_id !== null) {
+            $queryParams['sellingPartnerId'] = $selling_partner_id;
         }
         // query params
-        if (\is_array($developerId)) {
-            $developerId = ObjectSerializer::serializeCollection($developerId, '', true);
+        if (\is_array($developer_id)) {
+            $developer_id = ObjectSerializer::serializeCollection($developer_id, '', true);
         }
 
-        if ($developerId !== null) {
-            $queryParams['developerId'] = $developerId;
+        if ($developer_id !== null) {
+            $queryParams['developerId'] = $developer_id;
         }
         // query params
-        if (\is_array($mwsAuthToken)) {
-            $mwsAuthToken = ObjectSerializer::serializeCollection($mwsAuthToken, '', true);
+        if (\is_array($mws_auth_token)) {
+            $mws_auth_token = ObjectSerializer::serializeCollection($mws_auth_token, '', true);
         }
 
-        if ($mwsAuthToken !== null) {
-            $queryParams['mwsAuthToken'] = $mwsAuthToken;
+        if ($mws_auth_token !== null) {
+            $queryParams['mwsAuthToken'] = $mws_auth_token;
         }
 
         if (\count($queryParams)) {
@@ -111,17 +120,23 @@ public function getAuthorizationCodeRequest(string $sellingPartnerId, string $de
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -140,33 +155,23 @@ public function getAuthorizationCodeRequest(string $sellingPartnerId, string $de
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
@@ -174,22 +179,22 @@ public function getAuthorizationCodeRequest(string $sellingPartnerId, string $de
      *
      * Returns the Login with Amazon (LWA) authorization code for an existing Amazon MWS authorization.
      *
-     * @param string $sellingPartnerId The seller ID of the seller for whom you are requesting Selling Partner API authorization. This must be the seller ID of the seller who authorized your application on the Marketplace Appstore. (required)
-     * @param string $developerId Your developer ID. This must be one of the developer ID values that you provided when you registered your application in Developer Central. (required)
-     * @param string $mwsAuthToken The MWS Auth Token that was generated when the seller authorized your application on the Marketplace Appstore. (required)
+     * @param string $selling_partner_id The seller ID of the seller for whom you are requesting Selling Partner API authorization. This must be the seller ID of the seller who authorized your application on the Marketplace Appstore. (required)
+     * @param string $developer_id Your developer ID. This must be one of the developer ID values that you provided when you registered your application in Developer Central. (required)
+     * @param string $mws_auth_token The MWS Auth Token that was generated when the seller authorized your application on the Marketplace Appstore. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Authorization\GetAuthorizationCodeResponse>
      */
-    private function getAuthorizationCodeWithHttpInfo(string $sellingPartnerId, string $developerId, string $mwsAuthToken) : array
+    private function getAuthorizationCodeWithHttpInfo(AccessToken $accessToken, string $region, string $selling_partner_id, string $developer_id, string $mws_auth_token) : array
     {
-        $request = $this->getAuthorizationCodeRequest($sellingPartnerId, $developerId, $mwsAuthToken);
+        $request = $this->getAuthorizationCodeRequest($accessToken, $region, $selling_partner_id, $developer_id, $mws_auth_token);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -227,7 +232,12 @@ private function getAuthorizationCodeWithHttpInfo(string $sellingPartnerId, stri
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Authorization\GetAuthorizationCodeResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Authorization\GetAuthorizationCodeResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -237,7 +247,12 @@ private function getAuthorizationCodeWithHttpInfo(string $sellingPartnerId, stri
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -253,6 +268,7 @@ private function getAuthorizationCodeWithHttpInfo(string $sellingPartnerId, stri
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Authorization\GetAuthorizationCodeResponse::class,
                         $e->getResponseHeaders()
diff --git a/src/AmazonPHP/SellingPartner/Api/CatalogItemSDK.php b/src/AmazonPHP/SellingPartner/Api/CatalogItemSDK.php
index 5c5998a02..fe2abcee8 100644
--- a/src/AmazonPHP/SellingPartner/Api/CatalogItemSDK.php
+++ b/src/AmazonPHP/SellingPartner/Api/CatalogItemSDK.php
@@ -2,12 +2,15 @@
 
 namespace AmazonPHP\SellingPartner\Api;
 
+use AmazonPHP\SellingPartner\AccessToken;
+use AmazonPHP\SellingPartner\Configuration;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\Exception\InvalidArgumentException;
+use AmazonPHP\SellingPartner\HttpFactory;
 use AmazonPHP\SellingPartner\HttpSignatureHeaders;
-use AmazonPHP\SellingPartner\OAuth;
 use AmazonPHP\SellingPartner\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,25 +19,31 @@
  */
 final class CatalogItemSDK
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
 
-    public function __construct(OAuth $authentication)
+    private HttpFactory $httpFactory;
+
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
     /**
      * Operation getCatalogItem.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for the item. (required)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for the item. (required)
      * @param string $asin The Amazon Standard Identification Number (ASIN) of the item. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getCatalogItem(string $marketplaceId, string $asin) : \AmazonPHP\SellingPartner\Model\CatalogItem\GetCatalogItemResponse
+    public function getCatalogItem(AccessToken $accessToken, string $region, string $marketplace_id, string $asin) : \AmazonPHP\SellingPartner\Model\CatalogItem\GetCatalogItemResponse
     {
-        [$response] = $this->getCatalogItemWithHttpInfo($marketplaceId, $asin);
+        [$response] = $this->getCatalogItemWithHttpInfo($accessToken, $region, $marketplace_id, $asin);
 
         return $response;
     }
@@ -42,19 +51,19 @@ public function getCatalogItem(string $marketplaceId, string $asin) : \AmazonPHP
     /**
      * Create request for operation 'getCatalogItem'.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for the item. (required)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for the item. (required)
      * @param string $asin The Amazon Standard Identification Number (ASIN) of the item. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getCatalogItemRequest(string $marketplaceId, string $asin) : RequestInterface
+    public function getCatalogItemRequest(AccessToken $accessToken, string $region, string $marketplace_id, string $asin) : RequestInterface
     {
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling getCatalogItem'
+                'Missing the required parameter $marketplace_id when calling getCatalogItem'
             );
         }
         // verify the required parameter 'asin' is set
@@ -72,12 +81,12 @@ public function getCatalogItemRequest(string $marketplaceId, string $asin) : Req
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['MarketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['MarketplaceId'] = $marketplace_id;
         }
 
         if (\count($queryParams)) {
@@ -94,17 +103,23 @@ public function getCatalogItemRequest(string $marketplaceId, string $asin) : Req
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -123,48 +138,38 @@ public function getCatalogItemRequest(string $marketplaceId, string $asin) : Req
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation listCatalogCategories.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for the item. (required)
-     * @param null|string $aSIN The Amazon Standard Identification Number (ASIN) of the item. (optional)
-     * @param null|string $sellerSKU Used to identify items in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for the item. (required)
+     * @param null|string $asin The Amazon Standard Identification Number (ASIN) of the item. (optional)
+     * @param null|string $seller_sku Used to identify items in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function listCatalogCategories(string $marketplaceId, string $aSIN = null, string $sellerSKU = null) : \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogCategoriesResponse
+    public function listCatalogCategories(AccessToken $accessToken, string $region, string $marketplace_id, string $asin = null, string $seller_sku = null) : \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogCategoriesResponse
     {
-        [$response] = $this->listCatalogCategoriesWithHttpInfo($marketplaceId, $aSIN, $sellerSKU);
+        [$response] = $this->listCatalogCategoriesWithHttpInfo($accessToken, $region, $marketplace_id, $asin, $seller_sku);
 
         return $response;
     }
@@ -172,20 +177,20 @@ public function listCatalogCategories(string $marketplaceId, string $aSIN = null
     /**
      * Create request for operation 'listCatalogCategories'.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for the item. (required)
-     * @param null|string $aSIN The Amazon Standard Identification Number (ASIN) of the item. (optional)
-     * @param null|string $sellerSKU Used to identify items in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for the item. (required)
+     * @param null|string $asin The Amazon Standard Identification Number (ASIN) of the item. (optional)
+     * @param null|string $seller_sku Used to identify items in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function listCatalogCategoriesRequest(string $marketplaceId, string $aSIN = null, string $sellerSKU = null) : RequestInterface
+    public function listCatalogCategoriesRequest(AccessToken $accessToken, string $region, string $marketplace_id, string $asin = null, string $seller_sku = null) : RequestInterface
     {
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling listCatalogCategories'
+                'Missing the required parameter $marketplace_id when calling listCatalogCategories'
             );
         }
 
@@ -197,28 +202,28 @@ public function listCatalogCategoriesRequest(string $marketplaceId, string $aSIN
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['MarketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['MarketplaceId'] = $marketplace_id;
         }
         // query params
-        if (\is_array($aSIN)) {
-            $aSIN = ObjectSerializer::serializeCollection($aSIN, '', true);
+        if (\is_array($asin)) {
+            $asin = ObjectSerializer::serializeCollection($asin, '', true);
         }
 
-        if ($aSIN !== null) {
-            $queryParams['ASIN'] = $aSIN;
+        if ($asin !== null) {
+            $queryParams['ASIN'] = $asin;
         }
         // query params
-        if (\is_array($sellerSKU)) {
-            $sellerSKU = ObjectSerializer::serializeCollection($sellerSKU, '', true);
+        if (\is_array($seller_sku)) {
+            $seller_sku = ObjectSerializer::serializeCollection($seller_sku, '', true);
         }
 
-        if ($sellerSKU !== null) {
-            $queryParams['SellerSKU'] = $sellerSKU;
+        if ($seller_sku !== null) {
+            $queryParams['SellerSKU'] = $seller_sku;
         }
 
         if (\count($queryParams)) {
@@ -226,17 +231,23 @@ public function listCatalogCategoriesRequest(string $marketplaceId, string $aSIN
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -255,53 +266,43 @@ public function listCatalogCategoriesRequest(string $marketplaceId, string $aSIN
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation listCatalogItems.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for which items are returned. (required)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for which items are returned. (required)
      * @param null|string $query Keyword(s) to use to search for items in the catalog. Example: &#39;harry potter books&#39;. (optional)
-     * @param null|string $queryContextId An identifier for the context within which the given search will be performed. A marketplace might provide mechanisms for constraining a search to a subset of potential items. For example, the retail marketplace allows queries to be constrained to a specific category. The QueryContextId parameter specifies such a subset. If it is omitted, the search will be performed using the default context for the marketplace, which will typically contain the largest set of items. (optional)
-     * @param null|string $sellerSKU Used to identify an item in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
-     * @param null|string $uPC A 12-digit bar code used for retail packaging. (optional)
-     * @param null|string $eAN A European article number that uniquely identifies the catalog item, manufacturer, and its attributes. (optional)
-     * @param null|string $iSBN The unique commercial book identifier used to identify books internationally. (optional)
-     * @param null|string $jAN A Japanese article number that uniquely identifies the product, manufacturer, and its attributes. (optional)
+     * @param null|string $query_context_id An identifier for the context within which the given search will be performed. A marketplace might provide mechanisms for constraining a search to a subset of potential items. For example, the retail marketplace allows queries to be constrained to a specific category. The QueryContextId parameter specifies such a subset. If it is omitted, the search will be performed using the default context for the marketplace, which will typically contain the largest set of items. (optional)
+     * @param null|string $seller_sku Used to identify an item in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
+     * @param null|string $upc A 12-digit bar code used for retail packaging. (optional)
+     * @param null|string $ean A European article number that uniquely identifies the catalog item, manufacturer, and its attributes. (optional)
+     * @param null|string $isbn The unique commercial book identifier used to identify books internationally. (optional)
+     * @param null|string $jan A Japanese article number that uniquely identifies the product, manufacturer, and its attributes. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function listCatalogItems(string $marketplaceId, string $query = null, string $queryContextId = null, string $sellerSKU = null, string $uPC = null, string $eAN = null, string $iSBN = null, string $jAN = null) : \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogItemsResponse
+    public function listCatalogItems(AccessToken $accessToken, string $region, string $marketplace_id, string $query = null, string $query_context_id = null, string $seller_sku = null, string $upc = null, string $ean = null, string $isbn = null, string $jan = null) : \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogItemsResponse
     {
-        [$response] = $this->listCatalogItemsWithHttpInfo($marketplaceId, $query, $queryContextId, $sellerSKU, $uPC, $eAN, $iSBN, $jAN);
+        [$response] = $this->listCatalogItemsWithHttpInfo($accessToken, $region, $marketplace_id, $query, $query_context_id, $seller_sku, $upc, $ean, $isbn, $jan);
 
         return $response;
     }
@@ -309,25 +310,25 @@ public function listCatalogItems(string $marketplaceId, string $query = null, st
     /**
      * Create request for operation 'listCatalogItems'.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for which items are returned. (required)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for which items are returned. (required)
      * @param null|string $query Keyword(s) to use to search for items in the catalog. Example: &#39;harry potter books&#39;. (optional)
-     * @param null|string $queryContextId An identifier for the context within which the given search will be performed. A marketplace might provide mechanisms for constraining a search to a subset of potential items. For example, the retail marketplace allows queries to be constrained to a specific category. The QueryContextId parameter specifies such a subset. If it is omitted, the search will be performed using the default context for the marketplace, which will typically contain the largest set of items. (optional)
-     * @param null|string $sellerSKU Used to identify an item in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
-     * @param null|string $uPC A 12-digit bar code used for retail packaging. (optional)
-     * @param null|string $eAN A European article number that uniquely identifies the catalog item, manufacturer, and its attributes. (optional)
-     * @param null|string $iSBN The unique commercial book identifier used to identify books internationally. (optional)
-     * @param null|string $jAN A Japanese article number that uniquely identifies the product, manufacturer, and its attributes. (optional)
+     * @param null|string $query_context_id An identifier for the context within which the given search will be performed. A marketplace might provide mechanisms for constraining a search to a subset of potential items. For example, the retail marketplace allows queries to be constrained to a specific category. The QueryContextId parameter specifies such a subset. If it is omitted, the search will be performed using the default context for the marketplace, which will typically contain the largest set of items. (optional)
+     * @param null|string $seller_sku Used to identify an item in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
+     * @param null|string $upc A 12-digit bar code used for retail packaging. (optional)
+     * @param null|string $ean A European article number that uniquely identifies the catalog item, manufacturer, and its attributes. (optional)
+     * @param null|string $isbn The unique commercial book identifier used to identify books internationally. (optional)
+     * @param null|string $jan A Japanese article number that uniquely identifies the product, manufacturer, and its attributes. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function listCatalogItemsRequest(string $marketplaceId, string $query = null, string $queryContextId = null, string $sellerSKU = null, string $uPC = null, string $eAN = null, string $iSBN = null, string $jAN = null) : RequestInterface
+    public function listCatalogItemsRequest(AccessToken $accessToken, string $region, string $marketplace_id, string $query = null, string $query_context_id = null, string $seller_sku = null, string $upc = null, string $ean = null, string $isbn = null, string $jan = null) : RequestInterface
     {
-        // verify the required parameter 'marketplaceId' is set
-        if ($marketplaceId === null || (\is_array($marketplaceId) && \count($marketplaceId) === 0)) {
+        // verify the required parameter 'marketplace_id' is set
+        if ($marketplace_id === null || (\is_array($marketplace_id) && \count($marketplace_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceId when calling listCatalogItems'
+                'Missing the required parameter $marketplace_id when calling listCatalogItems'
             );
         }
 
@@ -339,12 +340,12 @@ public function listCatalogItemsRequest(string $marketplaceId, string $query = n
         $query = '';
 
         // query params
-        if (\is_array($marketplaceId)) {
-            $marketplaceId = ObjectSerializer::serializeCollection($marketplaceId, '', true);
+        if (\is_array($marketplace_id)) {
+            $marketplace_id = ObjectSerializer::serializeCollection($marketplace_id, '', true);
         }
 
-        if ($marketplaceId !== null) {
-            $queryParams['MarketplaceId'] = $marketplaceId;
+        if ($marketplace_id !== null) {
+            $queryParams['MarketplaceId'] = $marketplace_id;
         }
         // query params
         if (\is_array($query)) {
@@ -355,52 +356,52 @@ public function listCatalogItemsRequest(string $marketplaceId, string $query = n
             $queryParams['Query'] = $query;
         }
         // query params
-        if (\is_array($queryContextId)) {
-            $queryContextId = ObjectSerializer::serializeCollection($queryContextId, '', true);
+        if (\is_array($query_context_id)) {
+            $query_context_id = ObjectSerializer::serializeCollection($query_context_id, '', true);
         }
 
-        if ($queryContextId !== null) {
-            $queryParams['QueryContextId'] = $queryContextId;
+        if ($query_context_id !== null) {
+            $queryParams['QueryContextId'] = $query_context_id;
         }
         // query params
-        if (\is_array($sellerSKU)) {
-            $sellerSKU = ObjectSerializer::serializeCollection($sellerSKU, '', true);
+        if (\is_array($seller_sku)) {
+            $seller_sku = ObjectSerializer::serializeCollection($seller_sku, '', true);
         }
 
-        if ($sellerSKU !== null) {
-            $queryParams['SellerSKU'] = $sellerSKU;
+        if ($seller_sku !== null) {
+            $queryParams['SellerSKU'] = $seller_sku;
         }
         // query params
-        if (\is_array($uPC)) {
-            $uPC = ObjectSerializer::serializeCollection($uPC, '', true);
+        if (\is_array($upc)) {
+            $upc = ObjectSerializer::serializeCollection($upc, '', true);
         }
 
-        if ($uPC !== null) {
-            $queryParams['UPC'] = $uPC;
+        if ($upc !== null) {
+            $queryParams['UPC'] = $upc;
         }
         // query params
-        if (\is_array($eAN)) {
-            $eAN = ObjectSerializer::serializeCollection($eAN, '', true);
+        if (\is_array($ean)) {
+            $ean = ObjectSerializer::serializeCollection($ean, '', true);
         }
 
-        if ($eAN !== null) {
-            $queryParams['EAN'] = $eAN;
+        if ($ean !== null) {
+            $queryParams['EAN'] = $ean;
         }
         // query params
-        if (\is_array($iSBN)) {
-            $iSBN = ObjectSerializer::serializeCollection($iSBN, '', true);
+        if (\is_array($isbn)) {
+            $isbn = ObjectSerializer::serializeCollection($isbn, '', true);
         }
 
-        if ($iSBN !== null) {
-            $queryParams['ISBN'] = $iSBN;
+        if ($isbn !== null) {
+            $queryParams['ISBN'] = $isbn;
         }
         // query params
-        if (\is_array($jAN)) {
-            $jAN = ObjectSerializer::serializeCollection($jAN, '', true);
+        if (\is_array($jan)) {
+            $jan = ObjectSerializer::serializeCollection($jan, '', true);
         }
 
-        if ($jAN !== null) {
-            $queryParams['JAN'] = $jAN;
+        if ($jan !== null) {
+            $queryParams['JAN'] = $jan;
         }
 
         if (\count($queryParams)) {
@@ -408,17 +409,23 @@ public function listCatalogItemsRequest(string $marketplaceId, string $query = n
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -437,39 +444,29 @@ public function listCatalogItemsRequest(string $marketplaceId, string $query = n
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getCatalogItemWithHttpInfo.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for the item. (required)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for the item. (required)
      * @param string $asin The Amazon Standard Identification Number (ASIN) of the item. (required)
      *
      * @throws ApiException on non-2xx response
@@ -477,13 +474,13 @@ public function listCatalogItemsRequest(string $marketplaceId, string $query = n
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\CatalogItem\GetCatalogItemResponse>
      */
-    private function getCatalogItemWithHttpInfo(string $marketplaceId, string $asin) : array
+    private function getCatalogItemWithHttpInfo(AccessToken $accessToken, string $region, string $marketplace_id, string $asin) : array
     {
-        $request = $this->getCatalogItemRequest($marketplaceId, $asin);
+        $request = $this->getCatalogItemRequest($accessToken, $region, $marketplace_id, $asin);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -520,7 +517,12 @@ private function getCatalogItemWithHttpInfo(string $marketplaceId, string $asin)
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\CatalogItem\GetCatalogItemResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\CatalogItem\GetCatalogItemResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -530,7 +532,12 @@ private function getCatalogItemWithHttpInfo(string $marketplaceId, string $asin)
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -545,6 +552,7 @@ private function getCatalogItemWithHttpInfo(string $marketplaceId, string $asin)
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\CatalogItem\GetCatalogItemResponse::class,
                         $e->getResponseHeaders()
@@ -561,22 +569,22 @@ private function getCatalogItemWithHttpInfo(string $marketplaceId, string $asin)
     /**
      * Operation listCatalogCategoriesWithHttpInfo.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for the item. (required)
-     * @param null|string $aSIN The Amazon Standard Identification Number (ASIN) of the item. (optional)
-     * @param null|string $sellerSKU Used to identify items in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for the item. (required)
+     * @param null|string $asin The Amazon Standard Identification Number (ASIN) of the item. (optional)
+     * @param null|string $seller_sku Used to identify items in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogCategoriesResponse>
      */
-    private function listCatalogCategoriesWithHttpInfo(string $marketplaceId, string $aSIN = null, string $sellerSKU = null) : array
+    private function listCatalogCategoriesWithHttpInfo(AccessToken $accessToken, string $region, string $marketplace_id, string $asin = null, string $seller_sku = null) : array
     {
-        $request = $this->listCatalogCategoriesRequest($marketplaceId, $aSIN, $sellerSKU);
+        $request = $this->listCatalogCategoriesRequest($accessToken, $region, $marketplace_id, $asin, $seller_sku);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -613,7 +621,12 @@ private function listCatalogCategoriesWithHttpInfo(string $marketplaceId, string
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogCategoriesResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogCategoriesResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -623,7 +636,12 @@ private function listCatalogCategoriesWithHttpInfo(string $marketplaceId, string
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -638,6 +656,7 @@ private function listCatalogCategoriesWithHttpInfo(string $marketplaceId, string
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogCategoriesResponse::class,
                         $e->getResponseHeaders()
@@ -654,27 +673,27 @@ private function listCatalogCategoriesWithHttpInfo(string $marketplaceId, string
     /**
      * Operation listCatalogItemsWithHttpInfo.
      *
-     * @param string $marketplaceId A marketplace identifier. Specifies the marketplace for which items are returned. (required)
+     * @param string $marketplace_id A marketplace identifier. Specifies the marketplace for which items are returned. (required)
      * @param null|string $query Keyword(s) to use to search for items in the catalog. Example: &#39;harry potter books&#39;. (optional)
-     * @param null|string $queryContextId An identifier for the context within which the given search will be performed. A marketplace might provide mechanisms for constraining a search to a subset of potential items. For example, the retail marketplace allows queries to be constrained to a specific category. The QueryContextId parameter specifies such a subset. If it is omitted, the search will be performed using the default context for the marketplace, which will typically contain the largest set of items. (optional)
-     * @param null|string $sellerSKU Used to identify an item in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
-     * @param null|string $uPC A 12-digit bar code used for retail packaging. (optional)
-     * @param null|string $eAN A European article number that uniquely identifies the catalog item, manufacturer, and its attributes. (optional)
-     * @param null|string $iSBN The unique commercial book identifier used to identify books internationally. (optional)
-     * @param null|string $jAN A Japanese article number that uniquely identifies the product, manufacturer, and its attributes. (optional)
+     * @param null|string $query_context_id An identifier for the context within which the given search will be performed. A marketplace might provide mechanisms for constraining a search to a subset of potential items. For example, the retail marketplace allows queries to be constrained to a specific category. The QueryContextId parameter specifies such a subset. If it is omitted, the search will be performed using the default context for the marketplace, which will typically contain the largest set of items. (optional)
+     * @param null|string $seller_sku Used to identify an item in the given marketplace. SellerSKU is qualified by the seller&#39;s SellerId, which is included with every operation that you submit. (optional)
+     * @param null|string $upc A 12-digit bar code used for retail packaging. (optional)
+     * @param null|string $ean A European article number that uniquely identifies the catalog item, manufacturer, and its attributes. (optional)
+     * @param null|string $isbn The unique commercial book identifier used to identify books internationally. (optional)
+     * @param null|string $jan A Japanese article number that uniquely identifies the product, manufacturer, and its attributes. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogItemsResponse>
      */
-    private function listCatalogItemsWithHttpInfo(string $marketplaceId, string $query = null, string $queryContextId = null, string $sellerSKU = null, string $uPC = null, string $eAN = null, string $iSBN = null, string $jAN = null) : array
+    private function listCatalogItemsWithHttpInfo(AccessToken $accessToken, string $region, string $marketplace_id, string $query = null, string $query_context_id = null, string $seller_sku = null, string $upc = null, string $ean = null, string $isbn = null, string $jan = null) : array
     {
-        $request = $this->listCatalogItemsRequest($marketplaceId, $query, $queryContextId, $sellerSKU, $uPC, $eAN, $iSBN, $jAN);
+        $request = $this->listCatalogItemsRequest($accessToken, $region, $marketplace_id, $query, $query_context_id, $seller_sku, $upc, $ean, $isbn, $jan);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -711,7 +730,12 @@ private function listCatalogItemsWithHttpInfo(string $marketplaceId, string $que
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogItemsResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogItemsResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -721,7 +745,12 @@ private function listCatalogItemsWithHttpInfo(string $marketplaceId, string $que
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -736,6 +765,7 @@ private function listCatalogItemsWithHttpInfo(string $marketplaceId, string $que
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\CatalogItem\ListCatalogItemsResponse::class,
                         $e->getResponseHeaders()
diff --git a/src/AmazonPHP/SellingPartner/Api/FBAInboundSDK.php b/src/AmazonPHP/SellingPartner/Api/FBAInboundSDK.php
index 90d8a6102..5a6bead45 100644
--- a/src/AmazonPHP/SellingPartner/Api/FBAInboundSDK.php
+++ b/src/AmazonPHP/SellingPartner/Api/FBAInboundSDK.php
@@ -2,12 +2,15 @@
 
 namespace AmazonPHP\SellingPartner\Api;
 
+use AmazonPHP\SellingPartner\AccessToken;
+use AmazonPHP\SellingPartner\Configuration;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\Exception\InvalidArgumentException;
+use AmazonPHP\SellingPartner\HttpFactory;
 use AmazonPHP\SellingPartner\HttpSignatureHeaders;
-use AmazonPHP\SellingPartner\OAuth;
 use AmazonPHP\SellingPartner\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,11 +19,17 @@
  */
 final class FBAInboundSDK
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
 
-    public function __construct(OAuth $authentication)
+    private HttpFactory $httpFactory;
+
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
     /**
@@ -28,14 +37,14 @@ public function __construct(OAuth $authentication)
      *
      * @param string $asin The ASIN of the item for which you want an eligibility preview. (required)
      * @param string $program The program that you want to check eligibility against. (required)
-     * @param array<array-key, string>|null $marketplaceIds The identifier for the marketplace in which you want to determine eligibility. Required only when program&#x3D;INBOUND. (optional)
+     * @param array<array-key, string>|null $marketplace_ids The identifier for the marketplace in which you want to determine eligibility. Required only when program&#x3D;INBOUND. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getItemEligibilityPreview(string $asin, string $program, array $marketplaceIds = null) : \AmazonPHP\SellingPartner\Model\FBAInbound\GetItemEligibilityPreviewResponse
+    public function getItemEligibilityPreview(AccessToken $accessToken, string $region, string $asin, string $program, array $marketplace_ids = null) : \AmazonPHP\SellingPartner\Model\FBAInbound\GetItemEligibilityPreviewResponse
     {
-        [$response] = $this->getItemEligibilityPreviewWithHttpInfo($asin, $program, $marketplaceIds);
+        [$response] = $this->getItemEligibilityPreviewWithHttpInfo($accessToken, $region, $asin, $program, $marketplace_ids);
 
         return $response;
     }
@@ -45,13 +54,13 @@ public function getItemEligibilityPreview(string $asin, string $program, array $
      *
      * @param string $asin The ASIN of the item for which you want an eligibility preview. (required)
      * @param string $program The program that you want to check eligibility against. (required)
-     * @param array<array-key, string>|null $marketplaceIds The identifier for the marketplace in which you want to determine eligibility. Required only when program&#x3D;INBOUND. (optional)
+     * @param array<array-key, string>|null $marketplace_ids The identifier for the marketplace in which you want to determine eligibility. Required only when program&#x3D;INBOUND. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getItemEligibilityPreviewRequest(string $asin, string $program, array $marketplaceIds = null) : RequestInterface
+    public function getItemEligibilityPreviewRequest(AccessToken $accessToken, string $region, string $asin, string $program, array $marketplace_ids = null) : RequestInterface
     {
         // verify the required parameter 'asin' is set
         if ($asin === null || (\is_array($asin) && \count($asin) === 0)) {
@@ -66,8 +75,8 @@ public function getItemEligibilityPreviewRequest(string $asin, string $program,
             );
         }
 
-        if ($marketplaceIds !== null && \count($marketplaceIds) > 1) {
-            throw new InvalidArgumentException('invalid value for "$marketplaceIds" when calling FbaInboundApi.getItemEligibilityPreview, number of items must be less than or equal to 1.');
+        if ($marketplace_ids !== null && \count($marketplace_ids) > 1) {
+            throw new InvalidArgumentException('invalid value for "$marketplace_ids" when calling FbaInboundApi.getItemEligibilityPreview, number of items must be less than or equal to 1.');
         }
 
         $resourcePath = '/fba/inbound/v1/eligibility/itemPreview';
@@ -78,12 +87,12 @@ public function getItemEligibilityPreviewRequest(string $asin, string $program,
         $query = '';
 
         // query params
-        if (\is_array($marketplaceIds)) {
-            $marketplaceIds = ObjectSerializer::serializeCollection($marketplaceIds, 'form', true);
+        if (\is_array($marketplace_ids)) {
+            $marketplace_ids = ObjectSerializer::serializeCollection($marketplace_ids, 'form', true);
         }
 
-        if ($marketplaceIds !== null) {
-            $queryParams['marketplaceIds'] = $marketplaceIds;
+        if ($marketplace_ids !== null) {
+            $queryParams['marketplaceIds'] = $marketplace_ids;
         }
         // query params
         if (\is_array($asin)) {
@@ -107,17 +116,23 @@ public function getItemEligibilityPreviewRequest(string $asin, string $program,
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -136,33 +151,23 @@ public function getItemEligibilityPreviewRequest(string $asin, string $program,
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
@@ -170,20 +175,20 @@ public function getItemEligibilityPreviewRequest(string $asin, string $program,
      *
      * @param string $asin The ASIN of the item for which you want an eligibility preview. (required)
      * @param string $program The program that you want to check eligibility against. (required)
-     * @param array<array-key, string>|null $marketplaceIds The identifier for the marketplace in which you want to determine eligibility. Required only when program&#x3D;INBOUND. (optional)
+     * @param array<array-key, string>|null $marketplace_ids The identifier for the marketplace in which you want to determine eligibility. Required only when program&#x3D;INBOUND. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\FBAInbound\GetItemEligibilityPreviewResponse>
      */
-    private function getItemEligibilityPreviewWithHttpInfo(string $asin, string $program, array $marketplaceIds = null) : array
+    private function getItemEligibilityPreviewWithHttpInfo(AccessToken $accessToken, string $region, string $asin, string $program, array $marketplace_ids = null) : array
     {
-        $request = $this->getItemEligibilityPreviewRequest($asin, $program, $marketplaceIds);
+        $request = $this->getItemEligibilityPreviewRequest($accessToken, $region, $asin, $program, $marketplace_ids);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -220,7 +225,12 @@ private function getItemEligibilityPreviewWithHttpInfo(string $asin, string $pro
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\FBAInbound\GetItemEligibilityPreviewResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\FBAInbound\GetItemEligibilityPreviewResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -230,7 +240,12 @@ private function getItemEligibilityPreviewWithHttpInfo(string $asin, string $pro
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -245,6 +260,7 @@ private function getItemEligibilityPreviewWithHttpInfo(string $asin, string $pro
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\FBAInbound\GetItemEligibilityPreviewResponse::class,
                         $e->getResponseHeaders()
diff --git a/src/AmazonPHP/SellingPartner/Api/FBAInventorySDK.php b/src/AmazonPHP/SellingPartner/Api/FBAInventorySDK.php
index 27a46be0e..665746757 100644
--- a/src/AmazonPHP/SellingPartner/Api/FBAInventorySDK.php
+++ b/src/AmazonPHP/SellingPartner/Api/FBAInventorySDK.php
@@ -2,12 +2,15 @@
 
 namespace AmazonPHP\SellingPartner\Api;
 
+use AmazonPHP\SellingPartner\AccessToken;
+use AmazonPHP\SellingPartner\Configuration;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\Exception\InvalidArgumentException;
+use AmazonPHP\SellingPartner\HttpFactory;
 use AmazonPHP\SellingPartner\HttpSignatureHeaders;
-use AmazonPHP\SellingPartner\OAuth;
 use AmazonPHP\SellingPartner\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,30 +19,36 @@
  */
 final class FBAInventorySDK
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
 
-    public function __construct(OAuth $authentication)
+    private HttpFactory $httpFactory;
+
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
     /**
      * Operation getInventorySummaries.
      *
-     * @param string $granularityType The granularity type for the inventory aggregation level. (required)
-     * @param string $granularityId The granularity ID for the inventory aggregation level. (required)
-     * @param array<array-key, string> $marketplaceIds The marketplace ID for the marketplace for which to return inventory summaries. (required)
+     * @param string $granularity_type The granularity type for the inventory aggregation level. (required)
+     * @param string $granularity_id The granularity ID for the inventory aggregation level. (required)
+     * @param array<array-key, string> $marketplace_ids The marketplace ID for the marketplace for which to return inventory summaries. (required)
      * @param bool $details true to return inventory summaries with additional summarized inventory details and quantities. Otherwise, returns inventory summaries only (default value). (optional, default to false)
-     * @param \DateTime|null $startDateTime A start date and time in ISO8601 format. If specified, all inventory summaries that have changed since then are returned. You must specify a date and time that is no earlier than 18 months prior to the date and time when you call the API. Note: Changes in inboundWorkingQuantity, inboundShippedQuantity and inboundReceivingQuantity are not detected. (optional)
-     * @param array<array-key, string>|null $sellerSkus A list of seller SKUs for which to return inventory summaries. You may specify up to 50 SKUs. (optional)
-     * @param null|string $nextToken String token returned in the response of your previous request. (optional)
+     * @param null|\DateTime $start_date_time A start date and time in ISO8601 format. If specified, all inventory summaries that have changed since then are returned. You must specify a date and time that is no earlier than 18 months prior to the date and time when you call the API. Note: Changes in inboundWorkingQuantity, inboundShippedQuantity and inboundReceivingQuantity are not detected. (optional)
+     * @param array<array-key, string>|null $seller_skus A list of seller SKUs for which to return inventory summaries. You may specify up to 50 SKUs. (optional)
+     * @param null|string $next_token String token returned in the response of your previous request. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getInventorySummaries(string $granularityType, string $granularityId, array $marketplaceIds, bool $details = false, \DateTime $startDateTime = null, array $sellerSkus = null, string $nextToken = null) : \AmazonPHP\SellingPartner\Model\FBAInventory\GetInventorySummariesResponse
+    public function getInventorySummaries(AccessToken $accessToken, string $region, string $granularity_type, string $granularity_id, array $marketplace_ids, bool $details = false, \DateTime $start_date_time = null, array $seller_skus = null, string $next_token = null) : \AmazonPHP\SellingPartner\Model\FBAInventory\GetInventorySummariesResponse
     {
-        [$response] = $this->getInventorySummariesWithHttpInfo($granularityType, $granularityId, $marketplaceIds, $details, $startDateTime, $sellerSkus, $nextToken);
+        [$response] = $this->getInventorySummariesWithHttpInfo($accessToken, $region, $granularity_type, $granularity_id, $marketplace_ids, $details, $start_date_time, $seller_skus, $next_token);
 
         return $response;
     }
@@ -47,45 +56,45 @@ public function getInventorySummaries(string $granularityType, string $granulari
     /**
      * Create request for operation 'getInventorySummaries'.
      *
-     * @param string $granularityType The granularity type for the inventory aggregation level. (required)
-     * @param string $granularityId The granularity ID for the inventory aggregation level. (required)
-     * @param array<array-key, string> $marketplaceIds The marketplace ID for the marketplace for which to return inventory summaries. (required)
+     * @param string $granularity_type The granularity type for the inventory aggregation level. (required)
+     * @param string $granularity_id The granularity ID for the inventory aggregation level. (required)
+     * @param array<array-key, string> $marketplace_ids The marketplace ID for the marketplace for which to return inventory summaries. (required)
      * @param bool $details true to return inventory summaries with additional summarized inventory details and quantities. Otherwise, returns inventory summaries only (default value). (optional, default to false)
-     * @param \DateTime|null $startDateTime A start date and time in ISO8601 format. If specified, all inventory summaries that have changed since then are returned. You must specify a date and time that is no earlier than 18 months prior to the date and time when you call the API. Note: Changes in inboundWorkingQuantity, inboundShippedQuantity and inboundReceivingQuantity are not detected. (optional)
-     * @param array<array-key, string>|null $sellerSkus A list of seller SKUs for which to return inventory summaries. You may specify up to 50 SKUs. (optional)
-     * @param null|string $nextToken String token returned in the response of your previous request. (optional)
+     * @param null|\DateTime $start_date_time A start date and time in ISO8601 format. If specified, all inventory summaries that have changed since then are returned. You must specify a date and time that is no earlier than 18 months prior to the date and time when you call the API. Note: Changes in inboundWorkingQuantity, inboundShippedQuantity and inboundReceivingQuantity are not detected. (optional)
+     * @param array<array-key, string>|null $seller_skus A list of seller SKUs for which to return inventory summaries. You may specify up to 50 SKUs. (optional)
+     * @param null|string $next_token String token returned in the response of your previous request. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getInventorySummariesRequest(string $granularityType, string $granularityId, array $marketplaceIds, bool $details = false, \DateTime $startDateTime = null, array $sellerSkus = null, string $nextToken = null) : RequestInterface
+    public function getInventorySummariesRequest(AccessToken $accessToken, string $region, string $granularity_type, string $granularity_id, array $marketplace_ids, bool $details = false, \DateTime $start_date_time = null, array $seller_skus = null, string $next_token = null) : RequestInterface
     {
-        // verify the required parameter 'granularityType' is set
-        if ($granularityType === null || (\is_array($granularityType) && \count($granularityType) === 0)) {
+        // verify the required parameter 'granularity_type' is set
+        if ($granularity_type === null || (\is_array($granularity_type) && \count($granularity_type) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $granularityType when calling getInventorySummaries'
+                'Missing the required parameter $granularity_type when calling getInventorySummaries'
             );
         }
-        // verify the required parameter 'granularityId' is set
-        if ($granularityId === null || (\is_array($granularityId) && \count($granularityId) === 0)) {
+        // verify the required parameter 'granularity_id' is set
+        if ($granularity_id === null || (\is_array($granularity_id) && \count($granularity_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $granularityId when calling getInventorySummaries'
+                'Missing the required parameter $granularity_id when calling getInventorySummaries'
             );
         }
-        // verify the required parameter 'marketplaceIds' is set
-        if ($marketplaceIds === null || (\is_array($marketplaceIds) && \count($marketplaceIds) === 0)) {
+        // verify the required parameter 'marketplace_ids' is set
+        if ($marketplace_ids === null || (\is_array($marketplace_ids) && \count($marketplace_ids) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceIds when calling getInventorySummaries'
+                'Missing the required parameter $marketplace_ids when calling getInventorySummaries'
             );
         }
 
-        if (\count($marketplaceIds) > 1) {
-            throw new InvalidArgumentException('invalid value for "$marketplaceIds" when calling FbaInventoryApi.getInventorySummaries, number of items must be less than or equal to 1.');
+        if (\count($marketplace_ids) > 1) {
+            throw new InvalidArgumentException('invalid value for "$marketplace_ids" when calling FbaInventoryApi.getInventorySummaries, number of items must be less than or equal to 1.');
         }
 
-        if ($sellerSkus !== null && \count($sellerSkus) > 50) {
-            throw new InvalidArgumentException('invalid value for "$sellerSkus" when calling FbaInventoryApi.getInventorySummaries, number of items must be less than or equal to 50.');
+        if ($seller_skus !== null && \count($seller_skus) > 50) {
+            throw new InvalidArgumentException('invalid value for "$seller_skus" when calling FbaInventoryApi.getInventorySummaries, number of items must be less than or equal to 50.');
         }
 
         $resourcePath = '/fba/inventory/v1/summaries';
@@ -104,52 +113,52 @@ public function getInventorySummariesRequest(string $granularityType, string $gr
             $queryParams['details'] = $details;
         }
         // query params
-        if (\is_array($granularityType)) {
-            $granularityType = ObjectSerializer::serializeCollection($granularityType, '', true);
+        if (\is_array($granularity_type)) {
+            $granularity_type = ObjectSerializer::serializeCollection($granularity_type, '', true);
         }
 
-        if ($granularityType !== null) {
-            $queryParams['granularityType'] = $granularityType;
+        if ($granularity_type !== null) {
+            $queryParams['granularityType'] = $granularity_type;
         }
         // query params
-        if (\is_array($granularityId)) {
-            $granularityId = ObjectSerializer::serializeCollection($granularityId, '', true);
+        if (\is_array($granularity_id)) {
+            $granularity_id = ObjectSerializer::serializeCollection($granularity_id, '', true);
         }
 
-        if ($granularityId !== null) {
-            $queryParams['granularityId'] = $granularityId;
+        if ($granularity_id !== null) {
+            $queryParams['granularityId'] = $granularity_id;
         }
         // query params
-        if (\is_array($startDateTime)) {
-            $startDateTime = ObjectSerializer::serializeCollection($startDateTime, '', true);
+        if (\is_array($start_date_time)) {
+            $start_date_time = ObjectSerializer::serializeCollection($start_date_time, '', true);
         }
 
-        if ($startDateTime !== null) {
-            $queryParams['startDateTime'] = $startDateTime;
+        if ($start_date_time !== null) {
+            $queryParams['startDateTime'] = $start_date_time;
         }
         // query params
-        if (\is_array($sellerSkus)) {
-            $sellerSkus = ObjectSerializer::serializeCollection($sellerSkus, 'form', true);
+        if (\is_array($seller_skus)) {
+            $seller_skus = ObjectSerializer::serializeCollection($seller_skus, 'form', true);
         }
 
-        if ($sellerSkus !== null) {
-            $queryParams['sellerSkus'] = $sellerSkus;
+        if ($seller_skus !== null) {
+            $queryParams['sellerSkus'] = $seller_skus;
         }
         // query params
-        if (\is_array($nextToken)) {
-            $nextToken = ObjectSerializer::serializeCollection($nextToken, '', true);
+        if (\is_array($next_token)) {
+            $next_token = ObjectSerializer::serializeCollection($next_token, '', true);
         }
 
-        if ($nextToken !== null) {
-            $queryParams['nextToken'] = $nextToken;
+        if ($next_token !== null) {
+            $queryParams['nextToken'] = $next_token;
         }
         // query params
-        if (\is_array($marketplaceIds)) {
-            $marketplaceIds = ObjectSerializer::serializeCollection($marketplaceIds, 'form', true);
+        if (\is_array($marketplace_ids)) {
+            $marketplace_ids = ObjectSerializer::serializeCollection($marketplace_ids, 'form', true);
         }
 
-        if ($marketplaceIds !== null) {
-            $queryParams['marketplaceIds'] = $marketplaceIds;
+        if ($marketplace_ids !== null) {
+            $queryParams['marketplaceIds'] = $marketplace_ids;
         }
 
         if (\count($queryParams)) {
@@ -157,17 +166,23 @@ public function getInventorySummariesRequest(string $granularityType, string $gr
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -186,58 +201,48 @@ public function getInventorySummariesRequest(string $granularityType, string $gr
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getInventorySummariesWithHttpInfo.
      *
-     * @param string $granularityType The granularity type for the inventory aggregation level. (required)
-     * @param string $granularityId The granularity ID for the inventory aggregation level. (required)
-     * @param array<array-key, string> $marketplaceIds The marketplace ID for the marketplace for which to return inventory summaries. (required)
+     * @param string $granularity_type The granularity type for the inventory aggregation level. (required)
+     * @param string $granularity_id The granularity ID for the inventory aggregation level. (required)
+     * @param array<array-key, string> $marketplace_ids The marketplace ID for the marketplace for which to return inventory summaries. (required)
      * @param bool $details true to return inventory summaries with additional summarized inventory details and quantities. Otherwise, returns inventory summaries only (default value). (optional, default to false)
-     * @param \DateTime|null $startDateTime A start date and time in ISO8601 format. If specified, all inventory summaries that have changed since then are returned. You must specify a date and time that is no earlier than 18 months prior to the date and time when you call the API. Note: Changes in inboundWorkingQuantity, inboundShippedQuantity and inboundReceivingQuantity are not detected. (optional)
-     * @param array<array-key, string>|null $sellerSkus A list of seller SKUs for which to return inventory summaries. You may specify up to 50 SKUs. (optional)
-     * @param null|string $nextToken String token returned in the response of your previous request. (optional)
+     * @param null|\DateTime $start_date_time A start date and time in ISO8601 format. If specified, all inventory summaries that have changed since then are returned. You must specify a date and time that is no earlier than 18 months prior to the date and time when you call the API. Note: Changes in inboundWorkingQuantity, inboundShippedQuantity and inboundReceivingQuantity are not detected. (optional)
+     * @param array<array-key, string>|null $seller_skus A list of seller SKUs for which to return inventory summaries. You may specify up to 50 SKUs. (optional)
+     * @param null|string $next_token String token returned in the response of your previous request. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\FBAInventory\GetInventorySummariesResponse>
      */
-    private function getInventorySummariesWithHttpInfo(string $granularityType, string $granularityId, array $marketplaceIds, bool $details = false, \DateTime $startDateTime = null, array $sellerSkus = null, string $nextToken = null) : array
+    private function getInventorySummariesWithHttpInfo(AccessToken $accessToken, string $region, string $granularity_type, string $granularity_id, array $marketplace_ids, bool $details = false, \DateTime $start_date_time = null, array $seller_skus = null, string $next_token = null) : array
     {
-        $request = $this->getInventorySummariesRequest($granularityType, $granularityId, $marketplaceIds, $details, $startDateTime, $sellerSkus, $nextToken);
+        $request = $this->getInventorySummariesRequest($accessToken, $region, $granularity_type, $granularity_id, $marketplace_ids, $details, $start_date_time, $seller_skus, $next_token);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -273,7 +278,12 @@ private function getInventorySummariesWithHttpInfo(string $granularityType, stri
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\FBAInventory\GetInventorySummariesResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\FBAInventory\GetInventorySummariesResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -283,7 +293,12 @@ private function getInventorySummariesWithHttpInfo(string $granularityType, stri
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -297,6 +312,7 @@ private function getInventorySummariesWithHttpInfo(string $granularityType, stri
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\FBAInventory\GetInventorySummariesResponse::class,
                         $e->getResponseHeaders()
diff --git a/src/AmazonPHP/SellingPartner/Api/OrdersSDK.php b/src/AmazonPHP/SellingPartner/Api/OrdersSDK.php
index 693e902f3..06ffb4db9 100644
--- a/src/AmazonPHP/SellingPartner/Api/OrdersSDK.php
+++ b/src/AmazonPHP/SellingPartner/Api/OrdersSDK.php
@@ -2,12 +2,15 @@
 
 namespace AmazonPHP\SellingPartner\Api;
 
+use AmazonPHP\SellingPartner\AccessToken;
+use AmazonPHP\SellingPartner\Configuration;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\Exception\InvalidArgumentException;
+use AmazonPHP\SellingPartner\HttpFactory;
 use AmazonPHP\SellingPartner\HttpSignatureHeaders;
-use AmazonPHP\SellingPartner\OAuth;
 use AmazonPHP\SellingPartner\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,24 +19,30 @@
  */
 final class OrdersSDK
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
 
-    public function __construct(OAuth $authentication)
+    private HttpFactory $httpFactory;
+
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
     /**
      * Operation getOrder.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getOrder(string $orderId) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderResponse
+    public function getOrder(AccessToken $accessToken, string $region, string $order_id) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderResponse
     {
-        [$response] = $this->getOrderWithHttpInfo($orderId);
+        [$response] = $this->getOrderWithHttpInfo($accessToken, $region, $order_id);
 
         return $response;
     }
@@ -41,18 +50,18 @@ public function getOrder(string $orderId) : \AmazonPHP\SellingPartner\Model\Orde
     /**
      * Create request for operation 'getOrder'.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getOrderRequest(string $orderId) : RequestInterface
+    public function getOrderRequest(AccessToken $accessToken, string $region, string $order_id) : RequestInterface
     {
-        // verify the required parameter 'orderId' is set
-        if ($orderId === null || (\is_array($orderId) && \count($orderId) === 0)) {
+        // verify the required parameter 'order_id' is set
+        if ($order_id === null || (\is_array($order_id) && \count($order_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $orderId when calling getOrder'
+                'Missing the required parameter $order_id when calling getOrder'
             );
         }
 
@@ -68,26 +77,32 @@ public function getOrderRequest(string $orderId) : RequestInterface
         }
 
         // path params
-        if ($orderId !== null) {
+        if ($order_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'orderId' . '}',
-                ObjectSerializer::toPathValue($orderId),
+                ObjectSerializer::toPathValue($order_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -106,46 +121,36 @@ public function getOrderRequest(string $orderId) : RequestInterface
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getOrderAddress.
      *
-     * @param string $orderId An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getOrderAddress(string $orderId) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderAddressResponse
+    public function getOrderAddress(AccessToken $accessToken, string $region, string $order_id) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderAddressResponse
     {
-        [$response] = $this->getOrderAddressWithHttpInfo($orderId);
+        [$response] = $this->getOrderAddressWithHttpInfo($accessToken, $region, $order_id);
 
         return $response;
     }
@@ -153,18 +158,18 @@ public function getOrderAddress(string $orderId) : \AmazonPHP\SellingPartner\Mod
     /**
      * Create request for operation 'getOrderAddress'.
      *
-     * @param string $orderId An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getOrderAddressRequest(string $orderId) : RequestInterface
+    public function getOrderAddressRequest(AccessToken $accessToken, string $region, string $order_id) : RequestInterface
     {
-        // verify the required parameter 'orderId' is set
-        if ($orderId === null || (\is_array($orderId) && \count($orderId) === 0)) {
+        // verify the required parameter 'order_id' is set
+        if ($order_id === null || (\is_array($order_id) && \count($order_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $orderId when calling getOrderAddress'
+                'Missing the required parameter $order_id when calling getOrderAddress'
             );
         }
 
@@ -180,26 +185,32 @@ public function getOrderAddressRequest(string $orderId) : RequestInterface
         }
 
         // path params
-        if ($orderId !== null) {
+        if ($order_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'orderId' . '}',
-                ObjectSerializer::toPathValue($orderId),
+                ObjectSerializer::toPathValue($order_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -218,46 +229,36 @@ public function getOrderAddressRequest(string $orderId) : RequestInterface
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getOrderBuyerInfo.
      *
-     * @param string $orderId An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getOrderBuyerInfo(string $orderId) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderBuyerInfoResponse
+    public function getOrderBuyerInfo(AccessToken $accessToken, string $region, string $order_id) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderBuyerInfoResponse
     {
-        [$response] = $this->getOrderBuyerInfoWithHttpInfo($orderId);
+        [$response] = $this->getOrderBuyerInfoWithHttpInfo($accessToken, $region, $order_id);
 
         return $response;
     }
@@ -265,18 +266,18 @@ public function getOrderBuyerInfo(string $orderId) : \AmazonPHP\SellingPartner\M
     /**
      * Create request for operation 'getOrderBuyerInfo'.
      *
-     * @param string $orderId An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getOrderBuyerInfoRequest(string $orderId) : RequestInterface
+    public function getOrderBuyerInfoRequest(AccessToken $accessToken, string $region, string $order_id) : RequestInterface
     {
-        // verify the required parameter 'orderId' is set
-        if ($orderId === null || (\is_array($orderId) && \count($orderId) === 0)) {
+        // verify the required parameter 'order_id' is set
+        if ($order_id === null || (\is_array($order_id) && \count($order_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $orderId when calling getOrderBuyerInfo'
+                'Missing the required parameter $order_id when calling getOrderBuyerInfo'
             );
         }
 
@@ -292,26 +293,32 @@ public function getOrderBuyerInfoRequest(string $orderId) : RequestInterface
         }
 
         // path params
-        if ($orderId !== null) {
+        if ($order_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'orderId' . '}',
-                ObjectSerializer::toPathValue($orderId),
+                ObjectSerializer::toPathValue($order_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -330,47 +337,37 @@ public function getOrderBuyerInfoRequest(string $orderId) : RequestInterface
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getOrderItems.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getOrderItems(string $orderId, string $nextToken = null) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsResponse
+    public function getOrderItems(AccessToken $accessToken, string $region, string $order_id, string $next_token = null) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsResponse
     {
-        [$response] = $this->getOrderItemsWithHttpInfo($orderId, $nextToken);
+        [$response] = $this->getOrderItemsWithHttpInfo($accessToken, $region, $order_id, $next_token);
 
         return $response;
     }
@@ -378,19 +375,19 @@ public function getOrderItems(string $orderId, string $nextToken = null) : \Amaz
     /**
      * Create request for operation 'getOrderItems'.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getOrderItemsRequest(string $orderId, string $nextToken = null) : RequestInterface
+    public function getOrderItemsRequest(AccessToken $accessToken, string $region, string $order_id, string $next_token = null) : RequestInterface
     {
-        // verify the required parameter 'orderId' is set
-        if ($orderId === null || (\is_array($orderId) && \count($orderId) === 0)) {
+        // verify the required parameter 'order_id' is set
+        if ($order_id === null || (\is_array($order_id) && \count($order_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $orderId when calling getOrderItems'
+                'Missing the required parameter $order_id when calling getOrderItems'
             );
         }
 
@@ -402,12 +399,12 @@ public function getOrderItemsRequest(string $orderId, string $nextToken = null)
         $query = '';
 
         // query params
-        if (\is_array($nextToken)) {
-            $nextToken = ObjectSerializer::serializeCollection($nextToken, '', true);
+        if (\is_array($next_token)) {
+            $next_token = ObjectSerializer::serializeCollection($next_token, '', true);
         }
 
-        if ($nextToken !== null) {
-            $queryParams['NextToken'] = $nextToken;
+        if ($next_token !== null) {
+            $queryParams['NextToken'] = $next_token;
         }
 
         if (\count($queryParams)) {
@@ -415,26 +412,32 @@ public function getOrderItemsRequest(string $orderId, string $nextToken = null)
         }
 
         // path params
-        if ($orderId !== null) {
+        if ($order_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'orderId' . '}',
-                ObjectSerializer::toPathValue($orderId),
+                ObjectSerializer::toPathValue($order_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -453,47 +456,37 @@ public function getOrderItemsRequest(string $orderId, string $nextToken = null)
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getOrderItemsBuyerInfo.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getOrderItemsBuyerInfo(string $orderId, string $nextToken = null) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsBuyerInfoResponse
+    public function getOrderItemsBuyerInfo(AccessToken $accessToken, string $region, string $order_id, string $next_token = null) : \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsBuyerInfoResponse
     {
-        [$response] = $this->getOrderItemsBuyerInfoWithHttpInfo($orderId, $nextToken);
+        [$response] = $this->getOrderItemsBuyerInfoWithHttpInfo($accessToken, $region, $order_id, $next_token);
 
         return $response;
     }
@@ -501,19 +494,19 @@ public function getOrderItemsBuyerInfo(string $orderId, string $nextToken = null
     /**
      * Create request for operation 'getOrderItemsBuyerInfo'.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getOrderItemsBuyerInfoRequest(string $orderId, string $nextToken = null) : RequestInterface
+    public function getOrderItemsBuyerInfoRequest(AccessToken $accessToken, string $region, string $order_id, string $next_token = null) : RequestInterface
     {
-        // verify the required parameter 'orderId' is set
-        if ($orderId === null || (\is_array($orderId) && \count($orderId) === 0)) {
+        // verify the required parameter 'order_id' is set
+        if ($order_id === null || (\is_array($order_id) && \count($order_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $orderId when calling getOrderItemsBuyerInfo'
+                'Missing the required parameter $order_id when calling getOrderItemsBuyerInfo'
             );
         }
 
@@ -525,12 +518,12 @@ public function getOrderItemsBuyerInfoRequest(string $orderId, string $nextToken
         $query = '';
 
         // query params
-        if (\is_array($nextToken)) {
-            $nextToken = ObjectSerializer::serializeCollection($nextToken, '', true);
+        if (\is_array($next_token)) {
+            $next_token = ObjectSerializer::serializeCollection($next_token, '', true);
         }
 
-        if ($nextToken !== null) {
-            $queryParams['NextToken'] = $nextToken;
+        if ($next_token !== null) {
+            $queryParams['NextToken'] = $next_token;
         }
 
         if (\count($queryParams)) {
@@ -538,26 +531,32 @@ public function getOrderItemsBuyerInfoRequest(string $orderId, string $nextToken
         }
 
         // path params
-        if ($orderId !== null) {
+        if ($order_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'orderId' . '}',
-                ObjectSerializer::toPathValue($orderId),
+                ObjectSerializer::toPathValue($order_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -576,62 +575,52 @@ public function getOrderItemsBuyerInfoRequest(string $orderId, string $nextToken
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getOrders.
      *
-     * @param array<array-key, string> $marketplaceIds A list of MarketplaceId values. Used to select orders that were placed in the specified marketplaces. (required)
-     * @param null|string $createdAfter A date used for selecting orders created after (or at) a specified time. Only orders placed after the specified time are returned. Either the CreatedAfter parameter or the LastUpdatedAfter parameter is required. Both cannot be empty. The date must be in ISO 8601 format. (optional)
-     * @param null|string $createdBefore A date used for selecting orders created before (or at) a specified time. Only orders placed before the specified time are returned. The date must be in ISO 8601 format. (optional)
-     * @param null|string $lastUpdatedAfter A date used for selecting orders that were last updated after (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
-     * @param null|string $lastUpdatedBefore A date used for selecting orders that were last updated before (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
-     * @param array<array-key, string>|null $orderStatuses A list of OrderStatus values used to filter the results. Possible values: PendingAvailability (This status is available for pre-orders only. The order has been placed, payment has not been authorized, and the release date of the item is in the future.); Pending (The order has been placed but payment has not been authorized); Unshipped (Payment has been authorized and the order is ready for shipment, but no items in the order have been shipped); PartiallyShipped (One or more, but not all, items in the order have been shipped); Shipped (All items in the order have been shipped); InvoiceUnconfirmed (All items in the order have been shipped. The seller has not yet given confirmation to Amazon that the invoice has been shipped to the buyer.); Canceled (The order has been canceled); and Unfulfillable (The order cannot be fulfilled. This state applies only to Multi-Channel Fulfillment orders.). (optional)
-     * @param array<array-key, string>|null $fulfillmentChannels A list that indicates how an order was fulfilled. Filters the results by fulfillment channel. Possible values: FBA (Fulfillment by Amazon); SellerFulfilled (Fulfilled by the seller). (optional)
-     * @param array<array-key, string>|null $paymentMethods A list of payment method values. Used to select orders paid using the specified payment methods. Possible values: COD (Cash on delivery); CVS (Convenience store payment); Other (Any payment method other than COD or CVS). (optional)
-     * @param null|string $buyerEmail The email address of a buyer. Used to select orders that contain the specified email address. (optional)
-     * @param null|string $sellerOrderId An order identifier that is specified by the seller. Used to select only the orders that match the order identifier. If SellerOrderId is specified, then FulfillmentChannels, OrderStatuses, PaymentMethod, LastUpdatedAfter, LastUpdatedBefore, and BuyerEmail cannot be specified. (optional)
-     * @param int|null $maxResultsPerPage A number that indicates the maximum number of orders that can be returned per page. Value must be 1 - 100. Default 100. (optional)
-     * @param array<array-key, string>|null $easyShipShipmentStatuses A list of EasyShipShipmentStatus values. Used to select Easy Ship orders with statuses that match the specified  values. If EasyShipShipmentStatus is specified, only Amazon Easy Ship orders are returned.Possible values: PendingPickUp (Amazon has not yet picked up the package from the seller). LabelCanceled (The seller canceled the pickup). PickedUp (Amazon has picked up the package from the seller). AtOriginFC (The packaged is at the origin fulfillment center). AtDestinationFC (The package is at the destination fulfillment center). OutForDelivery (The package is out for delivery). Damaged (The package was damaged by the carrier). Delivered (The package has been delivered to the buyer). RejectedByBuyer (The package has been rejected by the buyer). Undeliverable (The package cannot be delivered). ReturnedToSeller (The package was not delivered to the buyer and was returned to the seller). ReturningToSeller (The package was not delivered to the buyer and is being returned to the seller). (optional)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
-     * @param array<array-key, string>|null $amazonOrderIds A list of AmazonOrderId values. An AmazonOrderId is an Amazon-defined order identifier, in 3-7-7 format. (optional)
-     * @param null|string $actualFulfillmentSupplySourceId Denotes the recommended sourceId where the order should be fulfilled from. (optional)
-     * @param bool|null $isISPU When true, this order is marked to be picked up from a store rather than delivered. (optional)
-     * @param null|string $storeChainStoreId The store chain store identifier. Linked to a specific store in a store chain. (optional)
+     * @param array<array-key, string> $marketplace_ids A list of MarketplaceId values. Used to select orders that were placed in the specified marketplaces. (required)
+     * @param null|string $created_after A date used for selecting orders created after (or at) a specified time. Only orders placed after the specified time are returned. Either the CreatedAfter parameter or the LastUpdatedAfter parameter is required. Both cannot be empty. The date must be in ISO 8601 format. (optional)
+     * @param null|string $created_before A date used for selecting orders created before (or at) a specified time. Only orders placed before the specified time are returned. The date must be in ISO 8601 format. (optional)
+     * @param null|string $last_updated_after A date used for selecting orders that were last updated after (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
+     * @param null|string $last_updated_before A date used for selecting orders that were last updated before (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
+     * @param array<array-key, string>|null $order_statuses A list of OrderStatus values used to filter the results. Possible values: PendingAvailability (This status is available for pre-orders only. The order has been placed, payment has not been authorized, and the release date of the item is in the future.); Pending (The order has been placed but payment has not been authorized); Unshipped (Payment has been authorized and the order is ready for shipment, but no items in the order have been shipped); PartiallyShipped (One or more, but not all, items in the order have been shipped); Shipped (All items in the order have been shipped); InvoiceUnconfirmed (All items in the order have been shipped. The seller has not yet given confirmation to Amazon that the invoice has been shipped to the buyer.); Canceled (The order has been canceled); and Unfulfillable (The order cannot be fulfilled. This state applies only to Multi-Channel Fulfillment orders.). (optional)
+     * @param array<array-key, string>|null $fulfillment_channels A list that indicates how an order was fulfilled. Filters the results by fulfillment channel. Possible values: FBA (Fulfillment by Amazon); SellerFulfilled (Fulfilled by the seller). (optional)
+     * @param array<array-key, string>|null $payment_methods A list of payment method values. Used to select orders paid using the specified payment methods. Possible values: COD (Cash on delivery); CVS (Convenience store payment); Other (Any payment method other than COD or CVS). (optional)
+     * @param null|string $buyer_email The email address of a buyer. Used to select orders that contain the specified email address. (optional)
+     * @param null|string $seller_order_id An order identifier that is specified by the seller. Used to select only the orders that match the order identifier. If SellerOrderId is specified, then FulfillmentChannels, OrderStatuses, PaymentMethod, LastUpdatedAfter, LastUpdatedBefore, and BuyerEmail cannot be specified. (optional)
+     * @param null|int $max_results_per_page A number that indicates the maximum number of orders that can be returned per page. Value must be 1 - 100. Default 100. (optional)
+     * @param array<array-key, string>|null $easy_ship_shipment_statuses A list of EasyShipShipmentStatus values. Used to select Easy Ship orders with statuses that match the specified  values. If EasyShipShipmentStatus is specified, only Amazon Easy Ship orders are returned.Possible values: PendingPickUp (Amazon has not yet picked up the package from the seller). LabelCanceled (The seller canceled the pickup). PickedUp (Amazon has picked up the package from the seller). AtOriginFC (The packaged is at the origin fulfillment center). AtDestinationFC (The package is at the destination fulfillment center). OutForDelivery (The package is out for delivery). Damaged (The package was damaged by the carrier). Delivered (The package has been delivered to the buyer). RejectedByBuyer (The package has been rejected by the buyer). Undeliverable (The package cannot be delivered). ReturnedToSeller (The package was not delivered to the buyer and was returned to the seller). ReturningToSeller (The package was not delivered to the buyer and is being returned to the seller). (optional)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
+     * @param array<array-key, string>|null $amazon_order_ids A list of AmazonOrderId values. An AmazonOrderId is an Amazon-defined order identifier, in 3-7-7 format. (optional)
+     * @param null|string $actual_fulfillment_supply_source_id Denotes the recommended sourceId where the order should be fulfilled from. (optional)
+     * @param null|bool $is_ispu When true, this order is marked to be picked up from a store rather than delivered. (optional)
+     * @param null|string $store_chain_store_id The store chain store identifier. Linked to a specific store in a store chain. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getOrders(array $marketplaceIds, string $createdAfter = null, string $createdBefore = null, string $lastUpdatedAfter = null, string $lastUpdatedBefore = null, array $orderStatuses = null, array $fulfillmentChannels = null, array $paymentMethods = null, string $buyerEmail = null, string $sellerOrderId = null, int $maxResultsPerPage = null, array $easyShipShipmentStatuses = null, string $nextToken = null, array $amazonOrderIds = null, string $actualFulfillmentSupplySourceId = null, bool $isISPU = null, string $storeChainStoreId = null) : \AmazonPHP\SellingPartner\Model\Orders\GetOrdersResponse
+    public function getOrders(AccessToken $accessToken, string $region, array $marketplace_ids, string $created_after = null, string $created_before = null, string $last_updated_after = null, string $last_updated_before = null, array $order_statuses = null, array $fulfillment_channels = null, array $payment_methods = null, string $buyer_email = null, string $seller_order_id = null, int $max_results_per_page = null, array $easy_ship_shipment_statuses = null, string $next_token = null, array $amazon_order_ids = null, string $actual_fulfillment_supply_source_id = null, bool $is_ispu = null, string $store_chain_store_id = null) : \AmazonPHP\SellingPartner\Model\Orders\GetOrdersResponse
     {
-        [$response] = $this->getOrdersWithHttpInfo($marketplaceIds, $createdAfter, $createdBefore, $lastUpdatedAfter, $lastUpdatedBefore, $orderStatuses, $fulfillmentChannels, $paymentMethods, $buyerEmail, $sellerOrderId, $maxResultsPerPage, $easyShipShipmentStatuses, $nextToken, $amazonOrderIds, $actualFulfillmentSupplySourceId, $isISPU, $storeChainStoreId);
+        [$response] = $this->getOrdersWithHttpInfo($accessToken, $region, $marketplace_ids, $created_after, $created_before, $last_updated_after, $last_updated_before, $order_statuses, $fulfillment_channels, $payment_methods, $buyer_email, $seller_order_id, $max_results_per_page, $easy_ship_shipment_statuses, $next_token, $amazon_order_ids, $actual_fulfillment_supply_source_id, $is_ispu, $store_chain_store_id);
 
         return $response;
     }
@@ -639,43 +628,43 @@ public function getOrders(array $marketplaceIds, string $createdAfter = null, st
     /**
      * Create request for operation 'getOrders'.
      *
-     * @param array<array-key, string> $marketplaceIds A list of MarketplaceId values. Used to select orders that were placed in the specified marketplaces. (required)
-     * @param null|string $createdAfter A date used for selecting orders created after (or at) a specified time. Only orders placed after the specified time are returned. Either the CreatedAfter parameter or the LastUpdatedAfter parameter is required. Both cannot be empty. The date must be in ISO 8601 format. (optional)
-     * @param null|string $createdBefore A date used for selecting orders created before (or at) a specified time. Only orders placed before the specified time are returned. The date must be in ISO 8601 format. (optional)
-     * @param null|string $lastUpdatedAfter A date used for selecting orders that were last updated after (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
-     * @param null|string $lastUpdatedBefore A date used for selecting orders that were last updated before (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
-     * @param array<array-key, string>|null $orderStatuses A list of OrderStatus values used to filter the results. Possible values: PendingAvailability (This status is available for pre-orders only. The order has been placed, payment has not been authorized, and the release date of the item is in the future.); Pending (The order has been placed but payment has not been authorized); Unshipped (Payment has been authorized and the order is ready for shipment, but no items in the order have been shipped); PartiallyShipped (One or more, but not all, items in the order have been shipped); Shipped (All items in the order have been shipped); InvoiceUnconfirmed (All items in the order have been shipped. The seller has not yet given confirmation to Amazon that the invoice has been shipped to the buyer.); Canceled (The order has been canceled); and Unfulfillable (The order cannot be fulfilled. This state applies only to Multi-Channel Fulfillment orders.). (optional)
-     * @param array<array-key, string>|null $fulfillmentChannels A list that indicates how an order was fulfilled. Filters the results by fulfillment channel. Possible values: FBA (Fulfillment by Amazon); SellerFulfilled (Fulfilled by the seller). (optional)
-     * @param array<array-key, string>|null $paymentMethods A list of payment method values. Used to select orders paid using the specified payment methods. Possible values: COD (Cash on delivery); CVS (Convenience store payment); Other (Any payment method other than COD or CVS). (optional)
-     * @param null|string $buyerEmail The email address of a buyer. Used to select orders that contain the specified email address. (optional)
-     * @param null|string $sellerOrderId An order identifier that is specified by the seller. Used to select only the orders that match the order identifier. If SellerOrderId is specified, then FulfillmentChannels, OrderStatuses, PaymentMethod, LastUpdatedAfter, LastUpdatedBefore, and BuyerEmail cannot be specified. (optional)
-     * @param int|null $maxResultsPerPage A number that indicates the maximum number of orders that can be returned per page. Value must be 1 - 100. Default 100. (optional)
-     * @param array<array-key, string>|null $easyShipShipmentStatuses A list of EasyShipShipmentStatus values. Used to select Easy Ship orders with statuses that match the specified  values. If EasyShipShipmentStatus is specified, only Amazon Easy Ship orders are returned.Possible values: PendingPickUp (Amazon has not yet picked up the package from the seller). LabelCanceled (The seller canceled the pickup). PickedUp (Amazon has picked up the package from the seller). AtOriginFC (The packaged is at the origin fulfillment center). AtDestinationFC (The package is at the destination fulfillment center). OutForDelivery (The package is out for delivery). Damaged (The package was damaged by the carrier). Delivered (The package has been delivered to the buyer). RejectedByBuyer (The package has been rejected by the buyer). Undeliverable (The package cannot be delivered). ReturnedToSeller (The package was not delivered to the buyer and was returned to the seller). ReturningToSeller (The package was not delivered to the buyer and is being returned to the seller). (optional)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
-     * @param array<array-key, string>|null $amazonOrderIds A list of AmazonOrderId values. An AmazonOrderId is an Amazon-defined order identifier, in 3-7-7 format. (optional)
-     * @param null|string $actualFulfillmentSupplySourceId Denotes the recommended sourceId where the order should be fulfilled from. (optional)
-     * @param bool|null $isISPU When true, this order is marked to be picked up from a store rather than delivered. (optional)
-     * @param null|string $storeChainStoreId The store chain store identifier. Linked to a specific store in a store chain. (optional)
+     * @param array<array-key, string> $marketplace_ids A list of MarketplaceId values. Used to select orders that were placed in the specified marketplaces. (required)
+     * @param null|string $created_after A date used for selecting orders created after (or at) a specified time. Only orders placed after the specified time are returned. Either the CreatedAfter parameter or the LastUpdatedAfter parameter is required. Both cannot be empty. The date must be in ISO 8601 format. (optional)
+     * @param null|string $created_before A date used for selecting orders created before (or at) a specified time. Only orders placed before the specified time are returned. The date must be in ISO 8601 format. (optional)
+     * @param null|string $last_updated_after A date used for selecting orders that were last updated after (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
+     * @param null|string $last_updated_before A date used for selecting orders that were last updated before (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
+     * @param array<array-key, string>|null $order_statuses A list of OrderStatus values used to filter the results. Possible values: PendingAvailability (This status is available for pre-orders only. The order has been placed, payment has not been authorized, and the release date of the item is in the future.); Pending (The order has been placed but payment has not been authorized); Unshipped (Payment has been authorized and the order is ready for shipment, but no items in the order have been shipped); PartiallyShipped (One or more, but not all, items in the order have been shipped); Shipped (All items in the order have been shipped); InvoiceUnconfirmed (All items in the order have been shipped. The seller has not yet given confirmation to Amazon that the invoice has been shipped to the buyer.); Canceled (The order has been canceled); and Unfulfillable (The order cannot be fulfilled. This state applies only to Multi-Channel Fulfillment orders.). (optional)
+     * @param array<array-key, string>|null $fulfillment_channels A list that indicates how an order was fulfilled. Filters the results by fulfillment channel. Possible values: FBA (Fulfillment by Amazon); SellerFulfilled (Fulfilled by the seller). (optional)
+     * @param array<array-key, string>|null $payment_methods A list of payment method values. Used to select orders paid using the specified payment methods. Possible values: COD (Cash on delivery); CVS (Convenience store payment); Other (Any payment method other than COD or CVS). (optional)
+     * @param null|string $buyer_email The email address of a buyer. Used to select orders that contain the specified email address. (optional)
+     * @param null|string $seller_order_id An order identifier that is specified by the seller. Used to select only the orders that match the order identifier. If SellerOrderId is specified, then FulfillmentChannels, OrderStatuses, PaymentMethod, LastUpdatedAfter, LastUpdatedBefore, and BuyerEmail cannot be specified. (optional)
+     * @param null|int $max_results_per_page A number that indicates the maximum number of orders that can be returned per page. Value must be 1 - 100. Default 100. (optional)
+     * @param array<array-key, string>|null $easy_ship_shipment_statuses A list of EasyShipShipmentStatus values. Used to select Easy Ship orders with statuses that match the specified  values. If EasyShipShipmentStatus is specified, only Amazon Easy Ship orders are returned.Possible values: PendingPickUp (Amazon has not yet picked up the package from the seller). LabelCanceled (The seller canceled the pickup). PickedUp (Amazon has picked up the package from the seller). AtOriginFC (The packaged is at the origin fulfillment center). AtDestinationFC (The package is at the destination fulfillment center). OutForDelivery (The package is out for delivery). Damaged (The package was damaged by the carrier). Delivered (The package has been delivered to the buyer). RejectedByBuyer (The package has been rejected by the buyer). Undeliverable (The package cannot be delivered). ReturnedToSeller (The package was not delivered to the buyer and was returned to the seller). ReturningToSeller (The package was not delivered to the buyer and is being returned to the seller). (optional)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
+     * @param array<array-key, string>|null $amazon_order_ids A list of AmazonOrderId values. An AmazonOrderId is an Amazon-defined order identifier, in 3-7-7 format. (optional)
+     * @param null|string $actual_fulfillment_supply_source_id Denotes the recommended sourceId where the order should be fulfilled from. (optional)
+     * @param null|bool $is_ispu When true, this order is marked to be picked up from a store rather than delivered. (optional)
+     * @param null|string $store_chain_store_id The store chain store identifier. Linked to a specific store in a store chain. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getOrdersRequest(array $marketplaceIds, string $createdAfter = null, string $createdBefore = null, string $lastUpdatedAfter = null, string $lastUpdatedBefore = null, array $orderStatuses = null, array $fulfillmentChannels = null, array $paymentMethods = null, string $buyerEmail = null, string $sellerOrderId = null, int $maxResultsPerPage = null, array $easyShipShipmentStatuses = null, string $nextToken = null, array $amazonOrderIds = null, string $actualFulfillmentSupplySourceId = null, bool $isISPU = null, string $storeChainStoreId = null) : RequestInterface
+    public function getOrdersRequest(AccessToken $accessToken, string $region, array $marketplace_ids, string $created_after = null, string $created_before = null, string $last_updated_after = null, string $last_updated_before = null, array $order_statuses = null, array $fulfillment_channels = null, array $payment_methods = null, string $buyer_email = null, string $seller_order_id = null, int $max_results_per_page = null, array $easy_ship_shipment_statuses = null, string $next_token = null, array $amazon_order_ids = null, string $actual_fulfillment_supply_source_id = null, bool $is_ispu = null, string $store_chain_store_id = null) : RequestInterface
     {
-        // verify the required parameter 'marketplaceIds' is set
-        if ($marketplaceIds === null || (\is_array($marketplaceIds) && \count($marketplaceIds) === 0)) {
+        // verify the required parameter 'marketplace_ids' is set
+        if ($marketplace_ids === null || (\is_array($marketplace_ids) && \count($marketplace_ids) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $marketplaceIds when calling getOrders'
+                'Missing the required parameter $marketplace_ids when calling getOrders'
             );
         }
 
-        if (\count($marketplaceIds) > 50) {
-            throw new InvalidArgumentException('invalid value for "$marketplaceIds" when calling OrdersV0Api.getOrders, number of items must be less than or equal to 50.');
+        if (\count($marketplace_ids) > 50) {
+            throw new InvalidArgumentException('invalid value for "$marketplace_ids" when calling OrdersV0Api.getOrders, number of items must be less than or equal to 50.');
         }
 
-        if ($amazonOrderIds !== null && \count($amazonOrderIds) > 50) {
-            throw new InvalidArgumentException('invalid value for "$amazonOrderIds" when calling OrdersV0Api.getOrders, number of items must be less than or equal to 50.');
+        if ($amazon_order_ids !== null && \count($amazon_order_ids) > 50) {
+            throw new InvalidArgumentException('invalid value for "$amazon_order_ids" when calling OrdersV0Api.getOrders, number of items must be less than or equal to 50.');
         }
 
         $resourcePath = '/orders/v0/orders';
@@ -686,140 +675,140 @@ public function getOrdersRequest(array $marketplaceIds, string $createdAfter = n
         $query = '';
 
         // query params
-        if (\is_array($createdAfter)) {
-            $createdAfter = ObjectSerializer::serializeCollection($createdAfter, '', true);
+        if (\is_array($created_after)) {
+            $created_after = ObjectSerializer::serializeCollection($created_after, '', true);
         }
 
-        if ($createdAfter !== null) {
-            $queryParams['CreatedAfter'] = $createdAfter;
+        if ($created_after !== null) {
+            $queryParams['CreatedAfter'] = $created_after;
         }
         // query params
-        if (\is_array($createdBefore)) {
-            $createdBefore = ObjectSerializer::serializeCollection($createdBefore, '', true);
+        if (\is_array($created_before)) {
+            $created_before = ObjectSerializer::serializeCollection($created_before, '', true);
         }
 
-        if ($createdBefore !== null) {
-            $queryParams['CreatedBefore'] = $createdBefore;
+        if ($created_before !== null) {
+            $queryParams['CreatedBefore'] = $created_before;
         }
         // query params
-        if (\is_array($lastUpdatedAfter)) {
-            $lastUpdatedAfter = ObjectSerializer::serializeCollection($lastUpdatedAfter, '', true);
+        if (\is_array($last_updated_after)) {
+            $last_updated_after = ObjectSerializer::serializeCollection($last_updated_after, '', true);
         }
 
-        if ($lastUpdatedAfter !== null) {
-            $queryParams['LastUpdatedAfter'] = $lastUpdatedAfter;
+        if ($last_updated_after !== null) {
+            $queryParams['LastUpdatedAfter'] = $last_updated_after;
         }
         // query params
-        if (\is_array($lastUpdatedBefore)) {
-            $lastUpdatedBefore = ObjectSerializer::serializeCollection($lastUpdatedBefore, '', true);
+        if (\is_array($last_updated_before)) {
+            $last_updated_before = ObjectSerializer::serializeCollection($last_updated_before, '', true);
         }
 
-        if ($lastUpdatedBefore !== null) {
-            $queryParams['LastUpdatedBefore'] = $lastUpdatedBefore;
+        if ($last_updated_before !== null) {
+            $queryParams['LastUpdatedBefore'] = $last_updated_before;
         }
         // query params
-        if (\is_array($orderStatuses)) {
-            $orderStatuses = ObjectSerializer::serializeCollection($orderStatuses, 'form', true);
+        if (\is_array($order_statuses)) {
+            $order_statuses = ObjectSerializer::serializeCollection($order_statuses, 'form', true);
         }
 
-        if ($orderStatuses !== null) {
-            $queryParams['OrderStatuses'] = $orderStatuses;
+        if ($order_statuses !== null) {
+            $queryParams['OrderStatuses'] = $order_statuses;
         }
         // query params
-        if (\is_array($marketplaceIds)) {
-            $marketplaceIds = ObjectSerializer::serializeCollection($marketplaceIds, 'form', true);
+        if (\is_array($marketplace_ids)) {
+            $marketplace_ids = ObjectSerializer::serializeCollection($marketplace_ids, 'form', true);
         }
 
-        if ($marketplaceIds !== null) {
-            $queryParams['MarketplaceIds'] = $marketplaceIds;
+        if ($marketplace_ids !== null) {
+            $queryParams['MarketplaceIds'] = $marketplace_ids;
         }
         // query params
-        if (\is_array($fulfillmentChannels)) {
-            $fulfillmentChannels = ObjectSerializer::serializeCollection($fulfillmentChannels, 'form', true);
+        if (\is_array($fulfillment_channels)) {
+            $fulfillment_channels = ObjectSerializer::serializeCollection($fulfillment_channels, 'form', true);
         }
 
-        if ($fulfillmentChannels !== null) {
-            $queryParams['FulfillmentChannels'] = $fulfillmentChannels;
+        if ($fulfillment_channels !== null) {
+            $queryParams['FulfillmentChannels'] = $fulfillment_channels;
         }
         // query params
-        if (\is_array($paymentMethods)) {
-            $paymentMethods = ObjectSerializer::serializeCollection($paymentMethods, 'form', true);
+        if (\is_array($payment_methods)) {
+            $payment_methods = ObjectSerializer::serializeCollection($payment_methods, 'form', true);
         }
 
-        if ($paymentMethods !== null) {
-            $queryParams['PaymentMethods'] = $paymentMethods;
+        if ($payment_methods !== null) {
+            $queryParams['PaymentMethods'] = $payment_methods;
         }
         // query params
-        if (\is_array($buyerEmail)) {
-            $buyerEmail = ObjectSerializer::serializeCollection($buyerEmail, '', true);
+        if (\is_array($buyer_email)) {
+            $buyer_email = ObjectSerializer::serializeCollection($buyer_email, '', true);
         }
 
-        if ($buyerEmail !== null) {
-            $queryParams['BuyerEmail'] = $buyerEmail;
+        if ($buyer_email !== null) {
+            $queryParams['BuyerEmail'] = $buyer_email;
         }
         // query params
-        if (\is_array($sellerOrderId)) {
-            $sellerOrderId = ObjectSerializer::serializeCollection($sellerOrderId, '', true);
+        if (\is_array($seller_order_id)) {
+            $seller_order_id = ObjectSerializer::serializeCollection($seller_order_id, '', true);
         }
 
-        if ($sellerOrderId !== null) {
-            $queryParams['SellerOrderId'] = $sellerOrderId;
+        if ($seller_order_id !== null) {
+            $queryParams['SellerOrderId'] = $seller_order_id;
         }
         // query params
-        if (\is_array($maxResultsPerPage)) {
-            $maxResultsPerPage = ObjectSerializer::serializeCollection($maxResultsPerPage, '', true);
+        if (\is_array($max_results_per_page)) {
+            $max_results_per_page = ObjectSerializer::serializeCollection($max_results_per_page, '', true);
         }
 
-        if ($maxResultsPerPage !== null) {
-            $queryParams['MaxResultsPerPage'] = $maxResultsPerPage;
+        if ($max_results_per_page !== null) {
+            $queryParams['MaxResultsPerPage'] = $max_results_per_page;
         }
         // query params
-        if (\is_array($easyShipShipmentStatuses)) {
-            $easyShipShipmentStatuses = ObjectSerializer::serializeCollection($easyShipShipmentStatuses, 'form', true);
+        if (\is_array($easy_ship_shipment_statuses)) {
+            $easy_ship_shipment_statuses = ObjectSerializer::serializeCollection($easy_ship_shipment_statuses, 'form', true);
         }
 
-        if ($easyShipShipmentStatuses !== null) {
-            $queryParams['EasyShipShipmentStatuses'] = $easyShipShipmentStatuses;
+        if ($easy_ship_shipment_statuses !== null) {
+            $queryParams['EasyShipShipmentStatuses'] = $easy_ship_shipment_statuses;
         }
         // query params
-        if (\is_array($nextToken)) {
-            $nextToken = ObjectSerializer::serializeCollection($nextToken, '', true);
+        if (\is_array($next_token)) {
+            $next_token = ObjectSerializer::serializeCollection($next_token, '', true);
         }
 
-        if ($nextToken !== null) {
-            $queryParams['NextToken'] = $nextToken;
+        if ($next_token !== null) {
+            $queryParams['NextToken'] = $next_token;
         }
         // query params
-        if (\is_array($amazonOrderIds)) {
-            $amazonOrderIds = ObjectSerializer::serializeCollection($amazonOrderIds, 'form', true);
+        if (\is_array($amazon_order_ids)) {
+            $amazon_order_ids = ObjectSerializer::serializeCollection($amazon_order_ids, 'form', true);
         }
 
-        if ($amazonOrderIds !== null) {
-            $queryParams['AmazonOrderIds'] = $amazonOrderIds;
+        if ($amazon_order_ids !== null) {
+            $queryParams['AmazonOrderIds'] = $amazon_order_ids;
         }
         // query params
-        if (\is_array($actualFulfillmentSupplySourceId)) {
-            $actualFulfillmentSupplySourceId = ObjectSerializer::serializeCollection($actualFulfillmentSupplySourceId, '', true);
+        if (\is_array($actual_fulfillment_supply_source_id)) {
+            $actual_fulfillment_supply_source_id = ObjectSerializer::serializeCollection($actual_fulfillment_supply_source_id, '', true);
         }
 
-        if ($actualFulfillmentSupplySourceId !== null) {
-            $queryParams['ActualFulfillmentSupplySourceId'] = $actualFulfillmentSupplySourceId;
+        if ($actual_fulfillment_supply_source_id !== null) {
+            $queryParams['ActualFulfillmentSupplySourceId'] = $actual_fulfillment_supply_source_id;
         }
         // query params
-        if (\is_array($isISPU)) {
-            $isISPU = ObjectSerializer::serializeCollection($isISPU, '', true);
+        if (\is_array($is_ispu)) {
+            $is_ispu = ObjectSerializer::serializeCollection($is_ispu, '', true);
         }
 
-        if ($isISPU !== null) {
-            $queryParams['IsISPU'] = $isISPU;
+        if ($is_ispu !== null) {
+            $queryParams['IsISPU'] = $is_ispu;
         }
         // query params
-        if (\is_array($storeChainStoreId)) {
-            $storeChainStoreId = ObjectSerializer::serializeCollection($storeChainStoreId, '', true);
+        if (\is_array($store_chain_store_id)) {
+            $store_chain_store_id = ObjectSerializer::serializeCollection($store_chain_store_id, '', true);
         }
 
-        if ($storeChainStoreId !== null) {
-            $queryParams['StoreChainStoreId'] = $storeChainStoreId;
+        if ($store_chain_store_id !== null) {
+            $queryParams['StoreChainStoreId'] = $store_chain_store_id;
         }
 
         if (\count($queryParams)) {
@@ -827,17 +816,23 @@ public function getOrdersRequest(array $marketplaceIds, string $createdAfter = n
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -856,52 +851,42 @@ public function getOrdersRequest(array $marketplaceIds, string $createdAfter = n
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getOrderWithHttpInfo.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Orders\GetOrderResponse>
      */
-    private function getOrderWithHttpInfo(string $orderId) : array
+    private function getOrderWithHttpInfo(AccessToken $accessToken, string $region, string $order_id) : array
     {
-        $request = $this->getOrderRequest($orderId);
+        $request = $this->getOrderRequest($accessToken, $region, $order_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -937,7 +922,12 @@ private function getOrderWithHttpInfo(string $orderId) : array
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Orders\GetOrderResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Orders\GetOrderResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -947,7 +937,12 @@ private function getOrderWithHttpInfo(string $orderId) : array
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -961,6 +956,7 @@ private function getOrderWithHttpInfo(string $orderId) : array
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Orders\GetOrderResponse::class,
                         $e->getResponseHeaders()
@@ -977,20 +973,20 @@ private function getOrderWithHttpInfo(string $orderId) : array
     /**
      * Operation getOrderAddressWithHttpInfo.
      *
-     * @param string $orderId An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Orders\GetOrderAddressResponse>
      */
-    private function getOrderAddressWithHttpInfo(string $orderId) : array
+    private function getOrderAddressWithHttpInfo(AccessToken $accessToken, string $region, string $order_id) : array
     {
-        $request = $this->getOrderAddressRequest($orderId);
+        $request = $this->getOrderAddressRequest($accessToken, $region, $order_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1026,7 +1022,12 @@ private function getOrderAddressWithHttpInfo(string $orderId) : array
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Orders\GetOrderAddressResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Orders\GetOrderAddressResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1036,7 +1037,12 @@ private function getOrderAddressWithHttpInfo(string $orderId) : array
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1050,6 +1056,7 @@ private function getOrderAddressWithHttpInfo(string $orderId) : array
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Orders\GetOrderAddressResponse::class,
                         $e->getResponseHeaders()
@@ -1066,20 +1073,20 @@ private function getOrderAddressWithHttpInfo(string $orderId) : array
     /**
      * Operation getOrderBuyerInfoWithHttpInfo.
      *
-     * @param string $orderId An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param string $order_id An orderId is an Amazon-defined order identifier, in 3-7-7 format. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Orders\GetOrderBuyerInfoResponse>
      */
-    private function getOrderBuyerInfoWithHttpInfo(string $orderId) : array
+    private function getOrderBuyerInfoWithHttpInfo(AccessToken $accessToken, string $region, string $order_id) : array
     {
-        $request = $this->getOrderBuyerInfoRequest($orderId);
+        $request = $this->getOrderBuyerInfoRequest($accessToken, $region, $order_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1115,7 +1122,12 @@ private function getOrderBuyerInfoWithHttpInfo(string $orderId) : array
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Orders\GetOrderBuyerInfoResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Orders\GetOrderBuyerInfoResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1125,7 +1137,12 @@ private function getOrderBuyerInfoWithHttpInfo(string $orderId) : array
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1139,6 +1156,7 @@ private function getOrderBuyerInfoWithHttpInfo(string $orderId) : array
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Orders\GetOrderBuyerInfoResponse::class,
                         $e->getResponseHeaders()
@@ -1155,21 +1173,21 @@ private function getOrderBuyerInfoWithHttpInfo(string $orderId) : array
     /**
      * Operation getOrderItemsWithHttpInfo.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsResponse>
      */
-    private function getOrderItemsWithHttpInfo(string $orderId, string $nextToken = null) : array
+    private function getOrderItemsWithHttpInfo(AccessToken $accessToken, string $region, string $order_id, string $next_token = null) : array
     {
-        $request = $this->getOrderItemsRequest($orderId, $nextToken);
+        $request = $this->getOrderItemsRequest($accessToken, $region, $order_id, $next_token);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1205,7 +1223,12 @@ private function getOrderItemsWithHttpInfo(string $orderId, string $nextToken =
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1215,7 +1238,12 @@ private function getOrderItemsWithHttpInfo(string $orderId, string $nextToken =
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1229,6 +1257,7 @@ private function getOrderItemsWithHttpInfo(string $orderId, string $nextToken =
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsResponse::class,
                         $e->getResponseHeaders()
@@ -1245,21 +1274,21 @@ private function getOrderItemsWithHttpInfo(string $orderId, string $nextToken =
     /**
      * Operation getOrderItemsBuyerInfoWithHttpInfo.
      *
-     * @param string $orderId An Amazon-defined order identifier, in 3-7-7 format. (required)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
+     * @param string $order_id An Amazon-defined order identifier, in 3-7-7 format. (required)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsBuyerInfoResponse>
      */
-    private function getOrderItemsBuyerInfoWithHttpInfo(string $orderId, string $nextToken = null) : array
+    private function getOrderItemsBuyerInfoWithHttpInfo(AccessToken $accessToken, string $region, string $order_id, string $next_token = null) : array
     {
-        $request = $this->getOrderItemsBuyerInfoRequest($orderId, $nextToken);
+        $request = $this->getOrderItemsBuyerInfoRequest($accessToken, $region, $order_id, $next_token);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1295,7 +1324,12 @@ private function getOrderItemsBuyerInfoWithHttpInfo(string $orderId, string $nex
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsBuyerInfoResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsBuyerInfoResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1305,7 +1339,12 @@ private function getOrderItemsBuyerInfoWithHttpInfo(string $orderId, string $nex
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1319,6 +1358,7 @@ private function getOrderItemsBuyerInfoWithHttpInfo(string $orderId, string $nex
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Orders\GetOrderItemsBuyerInfoResponse::class,
                         $e->getResponseHeaders()
@@ -1335,36 +1375,36 @@ private function getOrderItemsBuyerInfoWithHttpInfo(string $orderId, string $nex
     /**
      * Operation getOrdersWithHttpInfo.
      *
-     * @param array<array-key, string> $marketplaceIds A list of MarketplaceId values. Used to select orders that were placed in the specified marketplaces. (required)
-     * @param null|string $createdAfter A date used for selecting orders created after (or at) a specified time. Only orders placed after the specified time are returned. Either the CreatedAfter parameter or the LastUpdatedAfter parameter is required. Both cannot be empty. The date must be in ISO 8601 format. (optional)
-     * @param null|string $createdBefore A date used for selecting orders created before (or at) a specified time. Only orders placed before the specified time are returned. The date must be in ISO 8601 format. (optional)
-     * @param null|string $lastUpdatedAfter A date used for selecting orders that were last updated after (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
-     * @param null|string $lastUpdatedBefore A date used for selecting orders that were last updated before (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
-     * @param array<array-key, string>|null $orderStatuses A list of OrderStatus values used to filter the results. Possible values: PendingAvailability (This status is available for pre-orders only. The order has been placed, payment has not been authorized, and the release date of the item is in the future.); Pending (The order has been placed but payment has not been authorized); Unshipped (Payment has been authorized and the order is ready for shipment, but no items in the order have been shipped); PartiallyShipped (One or more, but not all, items in the order have been shipped); Shipped (All items in the order have been shipped); InvoiceUnconfirmed (All items in the order have been shipped. The seller has not yet given confirmation to Amazon that the invoice has been shipped to the buyer.); Canceled (The order has been canceled); and Unfulfillable (The order cannot be fulfilled. This state applies only to Multi-Channel Fulfillment orders.). (optional)
-     * @param array<array-key, string>|null $fulfillmentChannels A list that indicates how an order was fulfilled. Filters the results by fulfillment channel. Possible values: FBA (Fulfillment by Amazon); SellerFulfilled (Fulfilled by the seller). (optional)
-     * @param array<array-key, string>|null $paymentMethods A list of payment method values. Used to select orders paid using the specified payment methods. Possible values: COD (Cash on delivery); CVS (Convenience store payment); Other (Any payment method other than COD or CVS). (optional)
-     * @param null|string $buyerEmail The email address of a buyer. Used to select orders that contain the specified email address. (optional)
-     * @param null|string $sellerOrderId An order identifier that is specified by the seller. Used to select only the orders that match the order identifier. If SellerOrderId is specified, then FulfillmentChannels, OrderStatuses, PaymentMethod, LastUpdatedAfter, LastUpdatedBefore, and BuyerEmail cannot be specified. (optional)
-     * @param int|null $maxResultsPerPage A number that indicates the maximum number of orders that can be returned per page. Value must be 1 - 100. Default 100. (optional)
-     * @param array<array-key, string>|null $easyShipShipmentStatuses A list of EasyShipShipmentStatus values. Used to select Easy Ship orders with statuses that match the specified  values. If EasyShipShipmentStatus is specified, only Amazon Easy Ship orders are returned.Possible values: PendingPickUp (Amazon has not yet picked up the package from the seller). LabelCanceled (The seller canceled the pickup). PickedUp (Amazon has picked up the package from the seller). AtOriginFC (The packaged is at the origin fulfillment center). AtDestinationFC (The package is at the destination fulfillment center). OutForDelivery (The package is out for delivery). Damaged (The package was damaged by the carrier). Delivered (The package has been delivered to the buyer). RejectedByBuyer (The package has been rejected by the buyer). Undeliverable (The package cannot be delivered). ReturnedToSeller (The package was not delivered to the buyer and was returned to the seller). ReturningToSeller (The package was not delivered to the buyer and is being returned to the seller). (optional)
-     * @param null|string $nextToken A string token returned in the response of your previous request. (optional)
-     * @param array<array-key, string>|null $amazonOrderIds A list of AmazonOrderId values. An AmazonOrderId is an Amazon-defined order identifier, in 3-7-7 format. (optional)
-     * @param null|string $actualFulfillmentSupplySourceId Denotes the recommended sourceId where the order should be fulfilled from. (optional)
-     * @param bool|null $isISPU When true, this order is marked to be picked up from a store rather than delivered. (optional)
-     * @param null|string $storeChainStoreId The store chain store identifier. Linked to a specific store in a store chain. (optional)
+     * @param array<array-key, string> $marketplace_ids A list of MarketplaceId values. Used to select orders that were placed in the specified marketplaces. (required)
+     * @param null|string $created_after A date used for selecting orders created after (or at) a specified time. Only orders placed after the specified time are returned. Either the CreatedAfter parameter or the LastUpdatedAfter parameter is required. Both cannot be empty. The date must be in ISO 8601 format. (optional)
+     * @param null|string $created_before A date used for selecting orders created before (or at) a specified time. Only orders placed before the specified time are returned. The date must be in ISO 8601 format. (optional)
+     * @param null|string $last_updated_after A date used for selecting orders that were last updated after (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
+     * @param null|string $last_updated_before A date used for selecting orders that were last updated before (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. The date must be in ISO 8601 format. (optional)
+     * @param array<array-key, string>|null $order_statuses A list of OrderStatus values used to filter the results. Possible values: PendingAvailability (This status is available for pre-orders only. The order has been placed, payment has not been authorized, and the release date of the item is in the future.); Pending (The order has been placed but payment has not been authorized); Unshipped (Payment has been authorized and the order is ready for shipment, but no items in the order have been shipped); PartiallyShipped (One or more, but not all, items in the order have been shipped); Shipped (All items in the order have been shipped); InvoiceUnconfirmed (All items in the order have been shipped. The seller has not yet given confirmation to Amazon that the invoice has been shipped to the buyer.); Canceled (The order has been canceled); and Unfulfillable (The order cannot be fulfilled. This state applies only to Multi-Channel Fulfillment orders.). (optional)
+     * @param array<array-key, string>|null $fulfillment_channels A list that indicates how an order was fulfilled. Filters the results by fulfillment channel. Possible values: FBA (Fulfillment by Amazon); SellerFulfilled (Fulfilled by the seller). (optional)
+     * @param array<array-key, string>|null $payment_methods A list of payment method values. Used to select orders paid using the specified payment methods. Possible values: COD (Cash on delivery); CVS (Convenience store payment); Other (Any payment method other than COD or CVS). (optional)
+     * @param null|string $buyer_email The email address of a buyer. Used to select orders that contain the specified email address. (optional)
+     * @param null|string $seller_order_id An order identifier that is specified by the seller. Used to select only the orders that match the order identifier. If SellerOrderId is specified, then FulfillmentChannels, OrderStatuses, PaymentMethod, LastUpdatedAfter, LastUpdatedBefore, and BuyerEmail cannot be specified. (optional)
+     * @param null|int $max_results_per_page A number that indicates the maximum number of orders that can be returned per page. Value must be 1 - 100. Default 100. (optional)
+     * @param array<array-key, string>|null $easy_ship_shipment_statuses A list of EasyShipShipmentStatus values. Used to select Easy Ship orders with statuses that match the specified  values. If EasyShipShipmentStatus is specified, only Amazon Easy Ship orders are returned.Possible values: PendingPickUp (Amazon has not yet picked up the package from the seller). LabelCanceled (The seller canceled the pickup). PickedUp (Amazon has picked up the package from the seller). AtOriginFC (The packaged is at the origin fulfillment center). AtDestinationFC (The package is at the destination fulfillment center). OutForDelivery (The package is out for delivery). Damaged (The package was damaged by the carrier). Delivered (The package has been delivered to the buyer). RejectedByBuyer (The package has been rejected by the buyer). Undeliverable (The package cannot be delivered). ReturnedToSeller (The package was not delivered to the buyer and was returned to the seller). ReturningToSeller (The package was not delivered to the buyer and is being returned to the seller). (optional)
+     * @param null|string $next_token A string token returned in the response of your previous request. (optional)
+     * @param array<array-key, string>|null $amazon_order_ids A list of AmazonOrderId values. An AmazonOrderId is an Amazon-defined order identifier, in 3-7-7 format. (optional)
+     * @param null|string $actual_fulfillment_supply_source_id Denotes the recommended sourceId where the order should be fulfilled from. (optional)
+     * @param null|bool $is_ispu When true, this order is marked to be picked up from a store rather than delivered. (optional)
+     * @param null|string $store_chain_store_id The store chain store identifier. Linked to a specific store in a store chain. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Orders\GetOrdersResponse>
      */
-    private function getOrdersWithHttpInfo(array $marketplaceIds, string $createdAfter = null, string $createdBefore = null, string $lastUpdatedAfter = null, string $lastUpdatedBefore = null, array $orderStatuses = null, array $fulfillmentChannels = null, array $paymentMethods = null, string $buyerEmail = null, string $sellerOrderId = null, int $maxResultsPerPage = null, array $easyShipShipmentStatuses = null, string $nextToken = null, array $amazonOrderIds = null, string $actualFulfillmentSupplySourceId = null, bool $isISPU = null, string $storeChainStoreId = null) : array
+    private function getOrdersWithHttpInfo(AccessToken $accessToken, string $region, array $marketplace_ids, string $created_after = null, string $created_before = null, string $last_updated_after = null, string $last_updated_before = null, array $order_statuses = null, array $fulfillment_channels = null, array $payment_methods = null, string $buyer_email = null, string $seller_order_id = null, int $max_results_per_page = null, array $easy_ship_shipment_statuses = null, string $next_token = null, array $amazon_order_ids = null, string $actual_fulfillment_supply_source_id = null, bool $is_ispu = null, string $store_chain_store_id = null) : array
     {
-        $request = $this->getOrdersRequest($marketplaceIds, $createdAfter, $createdBefore, $lastUpdatedAfter, $lastUpdatedBefore, $orderStatuses, $fulfillmentChannels, $paymentMethods, $buyerEmail, $sellerOrderId, $maxResultsPerPage, $easyShipShipmentStatuses, $nextToken, $amazonOrderIds, $actualFulfillmentSupplySourceId, $isISPU, $storeChainStoreId);
+        $request = $this->getOrdersRequest($accessToken, $region, $marketplace_ids, $created_after, $created_before, $last_updated_after, $last_updated_before, $order_statuses, $fulfillment_channels, $payment_methods, $buyer_email, $seller_order_id, $max_results_per_page, $easy_ship_shipment_statuses, $next_token, $amazon_order_ids, $actual_fulfillment_supply_source_id, $is_ispu, $store_chain_store_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1400,7 +1440,12 @@ private function getOrdersWithHttpInfo(array $marketplaceIds, string $createdAft
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Orders\GetOrdersResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Orders\GetOrdersResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1410,7 +1455,12 @@ private function getOrdersWithHttpInfo(array $marketplaceIds, string $createdAft
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1424,6 +1474,7 @@ private function getOrdersWithHttpInfo(array $marketplaceIds, string $createdAft
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Orders\GetOrdersResponse::class,
                         $e->getResponseHeaders()
diff --git a/src/AmazonPHP/SellingPartner/Api/ReportsSDK.php b/src/AmazonPHP/SellingPartner/Api/ReportsSDK.php
index 84c8a2d16..83e3fe0be 100644
--- a/src/AmazonPHP/SellingPartner/Api/ReportsSDK.php
+++ b/src/AmazonPHP/SellingPartner/Api/ReportsSDK.php
@@ -2,12 +2,15 @@
 
 namespace AmazonPHP\SellingPartner\Api;
 
+use AmazonPHP\SellingPartner\AccessToken;
+use AmazonPHP\SellingPartner\Configuration;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\Exception\InvalidArgumentException;
+use AmazonPHP\SellingPartner\HttpFactory;
 use AmazonPHP\SellingPartner\HttpSignatureHeaders;
-use AmazonPHP\SellingPartner\OAuth;
 use AmazonPHP\SellingPartner\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,24 +19,30 @@
  */
 final class ReportsSDK
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
 
-    public function __construct(OAuth $authentication)
+    private HttpFactory $httpFactory;
+
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
     /**
      * Operation cancelReport.
      *
-     * @param string $reportId The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_id The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function cancelReport(string $reportId) : \AmazonPHP\SellingPartner\Model\Reports\CancelReportResponse
+    public function cancelReport(AccessToken $accessToken, string $region, string $report_id) : \AmazonPHP\SellingPartner\Model\Reports\CancelReportResponse
     {
-        [$response] = $this->cancelReportWithHttpInfo($reportId);
+        [$response] = $this->cancelReportWithHttpInfo($accessToken, $region, $report_id);
 
         return $response;
     }
@@ -41,18 +50,18 @@ public function cancelReport(string $reportId) : \AmazonPHP\SellingPartner\Model
     /**
      * Create request for operation 'cancelReport'.
      *
-     * @param string $reportId The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_id The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function cancelReportRequest(string $reportId) : RequestInterface
+    public function cancelReportRequest(AccessToken $accessToken, string $region, string $report_id) : RequestInterface
     {
-        // verify the required parameter 'reportId' is set
-        if ($reportId === null || (\is_array($reportId) && \count($reportId) === 0)) {
+        // verify the required parameter 'report_id' is set
+        if ($report_id === null || (\is_array($report_id) && \count($report_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $reportId when calling cancelReport'
+                'Missing the required parameter $report_id when calling cancelReport'
             );
         }
 
@@ -68,26 +77,32 @@ public function cancelReportRequest(string $reportId) : RequestInterface
         }
 
         // path params
-        if ($reportId !== null) {
+        if ($report_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'reportId' . '}',
-                ObjectSerializer::toPathValue($reportId),
+                ObjectSerializer::toPathValue($report_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -106,46 +121,36 @@ public function cancelReportRequest(string $reportId) : RequestInterface
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation cancelReportSchedule.
      *
-     * @param string $reportScheduleId The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_schedule_id The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function cancelReportSchedule(string $reportScheduleId) : \AmazonPHP\SellingPartner\Model\Reports\CancelReportScheduleResponse
+    public function cancelReportSchedule(AccessToken $accessToken, string $region, string $report_schedule_id) : \AmazonPHP\SellingPartner\Model\Reports\CancelReportScheduleResponse
     {
-        [$response] = $this->cancelReportScheduleWithHttpInfo($reportScheduleId);
+        [$response] = $this->cancelReportScheduleWithHttpInfo($accessToken, $region, $report_schedule_id);
 
         return $response;
     }
@@ -153,18 +158,18 @@ public function cancelReportSchedule(string $reportScheduleId) : \AmazonPHP\Sell
     /**
      * Create request for operation 'cancelReportSchedule'.
      *
-     * @param string $reportScheduleId The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_schedule_id The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function cancelReportScheduleRequest(string $reportScheduleId) : RequestInterface
+    public function cancelReportScheduleRequest(AccessToken $accessToken, string $region, string $report_schedule_id) : RequestInterface
     {
-        // verify the required parameter 'reportScheduleId' is set
-        if ($reportScheduleId === null || (\is_array($reportScheduleId) && \count($reportScheduleId) === 0)) {
+        // verify the required parameter 'report_schedule_id' is set
+        if ($report_schedule_id === null || (\is_array($report_schedule_id) && \count($report_schedule_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $reportScheduleId when calling cancelReportSchedule'
+                'Missing the required parameter $report_schedule_id when calling cancelReportSchedule'
             );
         }
 
@@ -180,26 +185,32 @@ public function cancelReportScheduleRequest(string $reportScheduleId) : RequestI
         }
 
         // path params
-        if ($reportScheduleId !== null) {
+        if ($report_schedule_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'reportScheduleId' . '}',
-                ObjectSerializer::toPathValue($reportScheduleId),
+                ObjectSerializer::toPathValue($report_schedule_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -218,33 +229,23 @@ public function cancelReportScheduleRequest(string $reportScheduleId) : RequestI
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
@@ -255,9 +256,9 @@ public function cancelReportScheduleRequest(string $reportScheduleId) : RequestI
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function createReport(\AmazonPHP\SellingPartner\Model\Reports\CreateReportSpecification $body) : \AmazonPHP\SellingPartner\Model\Reports\CreateReportResponse
+    public function createReport(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Reports\CreateReportSpecification $body) : \AmazonPHP\SellingPartner\Model\Reports\CreateReportResponse
     {
-        [$response] = $this->createReportWithHttpInfo($body);
+        [$response] = $this->createReportWithHttpInfo($accessToken, $region, $body);
 
         return $response;
     }
@@ -271,7 +272,7 @@ public function createReport(\AmazonPHP\SellingPartner\Model\Reports\CreateRepor
      *
      * @return RequestInterface
      */
-    public function createReportRequest(\AmazonPHP\SellingPartner\Model\Reports\CreateReportSpecification $body) : RequestInterface
+    public function createReportRequest(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Reports\CreateReportSpecification $body) : RequestInterface
     {
         // verify the required parameter 'body' is set
         if ($body === null || (\is_array($body) && \count($body) === 0)) {
@@ -292,28 +293,34 @@ public function createReportRequest(\AmazonPHP\SellingPartner\Model\Reports\Crea
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
         if (isset($body)) {
-            if ($headers['Content-Type'] === 'application/json') {
+            if ($headers['Content-Type'] === ['application/json']) {
                 $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($body), JSON_THROW_ON_ERROR);
             } else {
                 $httpBody = $body;
             }
 
-            $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString($httpBody));
+            $request = $request->withBody($this->httpFactory->createStreamFromString($httpBody));
         } elseif (\count($formParams) > 0) {
             if ($multipart) {
                 $multipartContents = [];
@@ -329,33 +336,23 @@ public function createReportRequest(\AmazonPHP\SellingPartner\Model\Reports\Crea
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
@@ -366,9 +363,9 @@ public function createReportRequest(\AmazonPHP\SellingPartner\Model\Reports\Crea
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function createReportSchedule(\AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleSpecification $body) : \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleResponse
+    public function createReportSchedule(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleSpecification $body) : \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleResponse
     {
-        [$response] = $this->createReportScheduleWithHttpInfo($body);
+        [$response] = $this->createReportScheduleWithHttpInfo($accessToken, $region, $body);
 
         return $response;
     }
@@ -382,7 +379,7 @@ public function createReportSchedule(\AmazonPHP\SellingPartner\Model\Reports\Cre
      *
      * @return RequestInterface
      */
-    public function createReportScheduleRequest(\AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleSpecification $body) : RequestInterface
+    public function createReportScheduleRequest(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleSpecification $body) : RequestInterface
     {
         // verify the required parameter 'body' is set
         if ($body === null || (\is_array($body) && \count($body) === 0)) {
@@ -403,28 +400,34 @@ public function createReportScheduleRequest(\AmazonPHP\SellingPartner\Model\Repo
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
         if (isset($body)) {
-            if ($headers['Content-Type'] === 'application/json') {
+            if ($headers['Content-Type'] === ['application/json']) {
                 $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($body), JSON_THROW_ON_ERROR);
             } else {
                 $httpBody = $body;
             }
 
-            $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString($httpBody));
+            $request = $request->withBody($this->httpFactory->createStreamFromString($httpBody));
         } elseif (\count($formParams) > 0) {
             if ($multipart) {
                 $multipartContents = [];
@@ -440,46 +443,36 @@ public function createReportScheduleRequest(\AmazonPHP\SellingPartner\Model\Repo
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getReport.
      *
-     * @param string $reportId The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_id The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getReport(string $reportId) : \AmazonPHP\SellingPartner\Model\Reports\GetReportResponse
+    public function getReport(AccessToken $accessToken, string $region, string $report_id) : \AmazonPHP\SellingPartner\Model\Reports\GetReportResponse
     {
-        [$response] = $this->getReportWithHttpInfo($reportId);
+        [$response] = $this->getReportWithHttpInfo($accessToken, $region, $report_id);
 
         return $response;
     }
@@ -487,18 +480,18 @@ public function getReport(string $reportId) : \AmazonPHP\SellingPartner\Model\Re
     /**
      * Create request for operation 'getReport'.
      *
-     * @param string $reportId The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_id The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getReportRequest(string $reportId) : RequestInterface
+    public function getReportRequest(AccessToken $accessToken, string $region, string $report_id) : RequestInterface
     {
-        // verify the required parameter 'reportId' is set
-        if ($reportId === null || (\is_array($reportId) && \count($reportId) === 0)) {
+        // verify the required parameter 'report_id' is set
+        if ($report_id === null || (\is_array($report_id) && \count($report_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $reportId when calling getReport'
+                'Missing the required parameter $report_id when calling getReport'
             );
         }
 
@@ -514,26 +507,32 @@ public function getReportRequest(string $reportId) : RequestInterface
         }
 
         // path params
-        if ($reportId !== null) {
+        if ($report_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'reportId' . '}',
-                ObjectSerializer::toPathValue($reportId),
+                ObjectSerializer::toPathValue($report_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -552,46 +551,36 @@ public function getReportRequest(string $reportId) : RequestInterface
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getReportDocument.
      *
-     * @param string $reportDocumentId The identifier for the report document. (required)
+     * @param string $report_document_id The identifier for the report document. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getReportDocument(string $reportDocumentId) : \AmazonPHP\SellingPartner\Model\Reports\GetReportDocumentResponse
+    public function getReportDocument(AccessToken $accessToken, string $region, string $report_document_id) : \AmazonPHP\SellingPartner\Model\Reports\GetReportDocumentResponse
     {
-        [$response] = $this->getReportDocumentWithHttpInfo($reportDocumentId);
+        [$response] = $this->getReportDocumentWithHttpInfo($accessToken, $region, $report_document_id);
 
         return $response;
     }
@@ -599,18 +588,18 @@ public function getReportDocument(string $reportDocumentId) : \AmazonPHP\Selling
     /**
      * Create request for operation 'getReportDocument'.
      *
-     * @param string $reportDocumentId The identifier for the report document. (required)
+     * @param string $report_document_id The identifier for the report document. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getReportDocumentRequest(string $reportDocumentId) : RequestInterface
+    public function getReportDocumentRequest(AccessToken $accessToken, string $region, string $report_document_id) : RequestInterface
     {
-        // verify the required parameter 'reportDocumentId' is set
-        if ($reportDocumentId === null || (\is_array($reportDocumentId) && \count($reportDocumentId) === 0)) {
+        // verify the required parameter 'report_document_id' is set
+        if ($report_document_id === null || (\is_array($report_document_id) && \count($report_document_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $reportDocumentId when calling getReportDocument'
+                'Missing the required parameter $report_document_id when calling getReportDocument'
             );
         }
 
@@ -626,26 +615,32 @@ public function getReportDocumentRequest(string $reportDocumentId) : RequestInte
         }
 
         // path params
-        if ($reportDocumentId !== null) {
+        if ($report_document_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'reportDocumentId' . '}',
-                ObjectSerializer::toPathValue($reportDocumentId),
+                ObjectSerializer::toPathValue($report_document_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -664,46 +659,36 @@ public function getReportDocumentRequest(string $reportDocumentId) : RequestInte
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getReportSchedule.
      *
-     * @param string $reportScheduleId The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_schedule_id The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getReportSchedule(string $reportScheduleId) : \AmazonPHP\SellingPartner\Model\Reports\GetReportScheduleResponse
+    public function getReportSchedule(AccessToken $accessToken, string $region, string $report_schedule_id) : \AmazonPHP\SellingPartner\Model\Reports\GetReportScheduleResponse
     {
-        [$response] = $this->getReportScheduleWithHttpInfo($reportScheduleId);
+        [$response] = $this->getReportScheduleWithHttpInfo($accessToken, $region, $report_schedule_id);
 
         return $response;
     }
@@ -711,18 +696,18 @@ public function getReportSchedule(string $reportScheduleId) : \AmazonPHP\Selling
     /**
      * Create request for operation 'getReportSchedule'.
      *
-     * @param string $reportScheduleId The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_schedule_id The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getReportScheduleRequest(string $reportScheduleId) : RequestInterface
+    public function getReportScheduleRequest(AccessToken $accessToken, string $region, string $report_schedule_id) : RequestInterface
     {
-        // verify the required parameter 'reportScheduleId' is set
-        if ($reportScheduleId === null || (\is_array($reportScheduleId) && \count($reportScheduleId) === 0)) {
+        // verify the required parameter 'report_schedule_id' is set
+        if ($report_schedule_id === null || (\is_array($report_schedule_id) && \count($report_schedule_id) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $reportScheduleId when calling getReportSchedule'
+                'Missing the required parameter $report_schedule_id when calling getReportSchedule'
             );
         }
 
@@ -738,26 +723,32 @@ public function getReportScheduleRequest(string $reportScheduleId) : RequestInte
         }
 
         // path params
-        if ($reportScheduleId !== null) {
+        if ($report_schedule_id !== null) {
             $resourcePath = \str_replace(
                 '{' . 'reportScheduleId' . '}',
-                ObjectSerializer::toPathValue($reportScheduleId),
+                ObjectSerializer::toPathValue($report_schedule_id),
                 $resourcePath
             );
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -776,46 +767,36 @@ public function getReportScheduleRequest(string $reportScheduleId) : RequestInte
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getReportSchedules.
      *
-     * @param array<array-key, string> $reportTypes A list of report types used to filter report schedules. (required)
+     * @param array<array-key, string> $report_types A list of report types used to filter report schedules. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getReportSchedules(array $reportTypes) : \AmazonPHP\SellingPartner\Model\Reports\GetReportSchedulesResponse
+    public function getReportSchedules(AccessToken $accessToken, string $region, array $report_types) : \AmazonPHP\SellingPartner\Model\Reports\GetReportSchedulesResponse
     {
-        [$response] = $this->getReportSchedulesWithHttpInfo($reportTypes);
+        [$response] = $this->getReportSchedulesWithHttpInfo($accessToken, $region, $report_types);
 
         return $response;
     }
@@ -823,27 +804,27 @@ public function getReportSchedules(array $reportTypes) : \AmazonPHP\SellingPartn
     /**
      * Create request for operation 'getReportSchedules'.
      *
-     * @param array<array-key, string> $reportTypes A list of report types used to filter report schedules. (required)
+     * @param array<array-key, string> $report_types A list of report types used to filter report schedules. (required)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getReportSchedulesRequest(array $reportTypes) : RequestInterface
+    public function getReportSchedulesRequest(AccessToken $accessToken, string $region, array $report_types) : RequestInterface
     {
-        // verify the required parameter 'reportTypes' is set
-        if ($reportTypes === null || (\is_array($reportTypes) && \count($reportTypes) === 0)) {
+        // verify the required parameter 'report_types' is set
+        if ($report_types === null || (\is_array($report_types) && \count($report_types) === 0)) {
             throw new InvalidArgumentException(
-                'Missing the required parameter $reportTypes when calling getReportSchedules'
+                'Missing the required parameter $report_types when calling getReportSchedules'
             );
         }
 
-        if (\count($reportTypes) > 10) {
-            throw new InvalidArgumentException('invalid value for "$reportTypes" when calling ReportsApi.getReportSchedules, number of items must be less than or equal to 10.');
+        if (\count($report_types) > 10) {
+            throw new InvalidArgumentException('invalid value for "$report_types" when calling ReportsApi.getReportSchedules, number of items must be less than or equal to 10.');
         }
 
-        if (\count($reportTypes) < 1) {
-            throw new InvalidArgumentException('invalid value for "$reportTypes" when calling ReportsApi.getReportSchedules, number of items must be greater than or equal to 1.');
+        if (\count($report_types) < 1) {
+            throw new InvalidArgumentException('invalid value for "$report_types" when calling ReportsApi.getReportSchedules, number of items must be greater than or equal to 1.');
         }
 
         $resourcePath = '/reports/2020-09-04/schedules';
@@ -854,12 +835,12 @@ public function getReportSchedulesRequest(array $reportTypes) : RequestInterface
         $query = '';
 
         // query params
-        if (\is_array($reportTypes)) {
-            $reportTypes = ObjectSerializer::serializeCollection($reportTypes, 'form', true);
+        if (\is_array($report_types)) {
+            $report_types = ObjectSerializer::serializeCollection($report_types, 'form', true);
         }
 
-        if ($reportTypes !== null) {
-            $queryParams['reportTypes'] = $reportTypes;
+        if ($report_types !== null) {
+            $queryParams['reportTypes'] = $report_types;
         }
 
         if (\count($queryParams)) {
@@ -867,17 +848,23 @@ public function getReportSchedulesRequest(array $reportTypes) : RequestInterface
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -896,52 +883,42 @@ public function getReportSchedulesRequest(array $reportTypes) : RequestInterface
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation getReports.
      *
-     * @param array<array-key, string>|null $reportTypes A list of report types used to filter reports. When reportTypes is provided, the other filter parameters (processingStatuses, marketplaceIds, createdSince, createdUntil) and pageSize may also be provided. Either reportTypes or nextToken is required. (optional)
-     * @param array<array-key, string>|null $processingStatuses A list of processing statuses used to filter reports. (optional)
-     * @param array<array-key, string>|null $marketplaceIds A list of marketplace identifiers used to filter reports. The reports returned will match at least one of the marketplaces that you specify. (optional)
-     * @param int $pageSize The maximum number of reports to return in a single call. (optional, default to 10)
-     * @param \DateTime|null $createdSince The earliest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is 90 days ago. Reports are retained for a maximum of 90 days. (optional)
-     * @param \DateTime|null $createdUntil The latest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is now. (optional)
-     * @param null|string $nextToken A string token returned in the response to your previous request. nextToken is returned when the number of results exceeds the specified pageSize value. To get the next page of results, call the getReports operation and include this token as the only parameter. Specifying nextToken with any other parameters will cause the request to fail. (optional)
+     * @param array<array-key, string>|null $report_types A list of report types used to filter reports. When reportTypes is provided, the other filter parameters (processingStatuses, marketplaceIds, createdSince, createdUntil) and pageSize may also be provided. Either reportTypes or nextToken is required. (optional)
+     * @param array<array-key, string>|null $processing_statuses A list of processing statuses used to filter reports. (optional)
+     * @param array<array-key, string>|null $marketplace_ids A list of marketplace identifiers used to filter reports. The reports returned will match at least one of the marketplaces that you specify. (optional)
+     * @param int $page_size The maximum number of reports to return in a single call. (optional, default to 10)
+     * @param null|\DateTime $created_since The earliest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is 90 days ago. Reports are retained for a maximum of 90 days. (optional)
+     * @param null|\DateTime $created_until The latest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is now. (optional)
+     * @param null|string $next_token A string token returned in the response to your previous request. nextToken is returned when the number of results exceeds the specified pageSize value. To get the next page of results, call the getReports operation and include this token as the only parameter. Specifying nextToken with any other parameters will cause the request to fail. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function getReports(array $reportTypes = null, array $processingStatuses = null, array $marketplaceIds = null, int $pageSize = 10, \DateTime $createdSince = null, \DateTime $createdUntil = null, string $nextToken = null) : \AmazonPHP\SellingPartner\Model\Reports\GetReportsResponse
+    public function getReports(AccessToken $accessToken, string $region, array $report_types = null, array $processing_statuses = null, array $marketplace_ids = null, int $page_size = 10, \DateTime $created_since = null, \DateTime $created_until = null, string $next_token = null) : \AmazonPHP\SellingPartner\Model\Reports\GetReportsResponse
     {
-        [$response] = $this->getReportsWithHttpInfo($reportTypes, $processingStatuses, $marketplaceIds, $pageSize, $createdSince, $createdUntil, $nextToken);
+        [$response] = $this->getReportsWithHttpInfo($accessToken, $region, $report_types, $processing_statuses, $marketplace_ids, $page_size, $created_since, $created_until, $next_token);
 
         return $response;
     }
@@ -949,46 +926,46 @@ public function getReports(array $reportTypes = null, array $processingStatuses
     /**
      * Create request for operation 'getReports'.
      *
-     * @param array<array-key, string>|null $reportTypes A list of report types used to filter reports. When reportTypes is provided, the other filter parameters (processingStatuses, marketplaceIds, createdSince, createdUntil) and pageSize may also be provided. Either reportTypes or nextToken is required. (optional)
-     * @param array<array-key, string>|null $processingStatuses A list of processing statuses used to filter reports. (optional)
-     * @param array<array-key, string>|null $marketplaceIds A list of marketplace identifiers used to filter reports. The reports returned will match at least one of the marketplaces that you specify. (optional)
-     * @param int $pageSize The maximum number of reports to return in a single call. (optional, default to 10)
-     * @param \DateTime|null $createdSince The earliest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is 90 days ago. Reports are retained for a maximum of 90 days. (optional)
-     * @param \DateTime|null $createdUntil The latest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is now. (optional)
-     * @param null|string $nextToken A string token returned in the response to your previous request. nextToken is returned when the number of results exceeds the specified pageSize value. To get the next page of results, call the getReports operation and include this token as the only parameter. Specifying nextToken with any other parameters will cause the request to fail. (optional)
+     * @param array<array-key, string>|null $report_types A list of report types used to filter reports. When reportTypes is provided, the other filter parameters (processingStatuses, marketplaceIds, createdSince, createdUntil) and pageSize may also be provided. Either reportTypes or nextToken is required. (optional)
+     * @param array<array-key, string>|null $processing_statuses A list of processing statuses used to filter reports. (optional)
+     * @param array<array-key, string>|null $marketplace_ids A list of marketplace identifiers used to filter reports. The reports returned will match at least one of the marketplaces that you specify. (optional)
+     * @param int $page_size The maximum number of reports to return in a single call. (optional, default to 10)
+     * @param null|\DateTime $created_since The earliest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is 90 days ago. Reports are retained for a maximum of 90 days. (optional)
+     * @param null|\DateTime $created_until The latest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is now. (optional)
+     * @param null|string $next_token A string token returned in the response to your previous request. nextToken is returned when the number of results exceeds the specified pageSize value. To get the next page of results, call the getReports operation and include this token as the only parameter. Specifying nextToken with any other parameters will cause the request to fail. (optional)
      *
      * @throws InvalidArgumentException
      *
      * @return RequestInterface
      */
-    public function getReportsRequest(array $reportTypes = null, array $processingStatuses = null, array $marketplaceIds = null, int $pageSize = 10, \DateTime $createdSince = null, \DateTime $createdUntil = null, string $nextToken = null) : RequestInterface
+    public function getReportsRequest(AccessToken $accessToken, string $region, array $report_types = null, array $processing_statuses = null, array $marketplace_ids = null, int $page_size = 10, \DateTime $created_since = null, \DateTime $created_until = null, string $next_token = null) : RequestInterface
     {
-        if ($reportTypes !== null && \count($reportTypes) > 10) {
-            throw new InvalidArgumentException('invalid value for "$reportTypes" when calling ReportsApi.getReports, number of items must be less than or equal to 10.');
+        if ($report_types !== null && \count($report_types) > 10) {
+            throw new InvalidArgumentException('invalid value for "$report_types" when calling ReportsApi.getReports, number of items must be less than or equal to 10.');
         }
 
-        if ($reportTypes !== null && \count($reportTypes) < 1) {
-            throw new InvalidArgumentException('invalid value for "$reportTypes" when calling ReportsApi.getReports, number of items must be greater than or equal to 1.');
+        if ($report_types !== null && \count($report_types) < 1) {
+            throw new InvalidArgumentException('invalid value for "$report_types" when calling ReportsApi.getReports, number of items must be greater than or equal to 1.');
         }
 
-        if ($processingStatuses !== null && \count($processingStatuses) < 1) {
-            throw new InvalidArgumentException('invalid value for "$processingStatuses" when calling ReportsApi.getReports, number of items must be greater than or equal to 1.');
+        if ($processing_statuses !== null && \count($processing_statuses) < 1) {
+            throw new InvalidArgumentException('invalid value for "$processing_statuses" when calling ReportsApi.getReports, number of items must be greater than or equal to 1.');
         }
 
-        if ($marketplaceIds !== null && \count($marketplaceIds) > 10) {
-            throw new InvalidArgumentException('invalid value for "$marketplaceIds" when calling ReportsApi.getReports, number of items must be less than or equal to 10.');
+        if ($marketplace_ids !== null && \count($marketplace_ids) > 10) {
+            throw new InvalidArgumentException('invalid value for "$marketplace_ids" when calling ReportsApi.getReports, number of items must be less than or equal to 10.');
         }
 
-        if ($marketplaceIds !== null && \count($marketplaceIds) < 1) {
-            throw new InvalidArgumentException('invalid value for "$marketplaceIds" when calling ReportsApi.getReports, number of items must be greater than or equal to 1.');
+        if ($marketplace_ids !== null && \count($marketplace_ids) < 1) {
+            throw new InvalidArgumentException('invalid value for "$marketplace_ids" when calling ReportsApi.getReports, number of items must be greater than or equal to 1.');
         }
 
-        if ($pageSize !== null && $pageSize > 100) {
-            throw new InvalidArgumentException('invalid value for "$pageSize" when calling ReportsApi.getReports, must be smaller than or equal to 100.');
+        if ($page_size !== null && $page_size > 100) {
+            throw new InvalidArgumentException('invalid value for "$page_size" when calling ReportsApi.getReports, must be smaller than or equal to 100.');
         }
 
-        if ($pageSize !== null && $pageSize < 1) {
-            throw new InvalidArgumentException('invalid value for "$pageSize" when calling ReportsApi.getReports, must be bigger than or equal to 1.');
+        if ($page_size !== null && $page_size < 1) {
+            throw new InvalidArgumentException('invalid value for "$page_size" when calling ReportsApi.getReports, must be bigger than or equal to 1.');
         }
 
         $resourcePath = '/reports/2020-09-04/reports';
@@ -999,60 +976,60 @@ public function getReportsRequest(array $reportTypes = null, array $processingSt
         $query = '';
 
         // query params
-        if (\is_array($reportTypes)) {
-            $reportTypes = ObjectSerializer::serializeCollection($reportTypes, 'form', true);
+        if (\is_array($report_types)) {
+            $report_types = ObjectSerializer::serializeCollection($report_types, 'form', true);
         }
 
-        if ($reportTypes !== null) {
-            $queryParams['reportTypes'] = $reportTypes;
+        if ($report_types !== null) {
+            $queryParams['reportTypes'] = $report_types;
         }
         // query params
-        if (\is_array($processingStatuses)) {
-            $processingStatuses = ObjectSerializer::serializeCollection($processingStatuses, 'form', true);
+        if (\is_array($processing_statuses)) {
+            $processing_statuses = ObjectSerializer::serializeCollection($processing_statuses, 'form', true);
         }
 
-        if ($processingStatuses !== null) {
-            $queryParams['processingStatuses'] = $processingStatuses;
+        if ($processing_statuses !== null) {
+            $queryParams['processingStatuses'] = $processing_statuses;
         }
         // query params
-        if (\is_array($marketplaceIds)) {
-            $marketplaceIds = ObjectSerializer::serializeCollection($marketplaceIds, 'form', true);
+        if (\is_array($marketplace_ids)) {
+            $marketplace_ids = ObjectSerializer::serializeCollection($marketplace_ids, 'form', true);
         }
 
-        if ($marketplaceIds !== null) {
-            $queryParams['marketplaceIds'] = $marketplaceIds;
+        if ($marketplace_ids !== null) {
+            $queryParams['marketplaceIds'] = $marketplace_ids;
         }
         // query params
-        if (\is_array($pageSize)) {
-            $pageSize = ObjectSerializer::serializeCollection($pageSize, '', true);
+        if (\is_array($page_size)) {
+            $page_size = ObjectSerializer::serializeCollection($page_size, '', true);
         }
 
-        if ($pageSize !== null) {
-            $queryParams['pageSize'] = $pageSize;
+        if ($page_size !== null) {
+            $queryParams['pageSize'] = $page_size;
         }
         // query params
-        if (\is_array($createdSince)) {
-            $createdSince = ObjectSerializer::serializeCollection($createdSince, '', true);
+        if (\is_array($created_since)) {
+            $created_since = ObjectSerializer::serializeCollection($created_since, '', true);
         }
 
-        if ($createdSince !== null) {
-            $queryParams['createdSince'] = $createdSince;
+        if ($created_since !== null) {
+            $queryParams['createdSince'] = $created_since;
         }
         // query params
-        if (\is_array($createdUntil)) {
-            $createdUntil = ObjectSerializer::serializeCollection($createdUntil, '', true);
+        if (\is_array($created_until)) {
+            $created_until = ObjectSerializer::serializeCollection($created_until, '', true);
         }
 
-        if ($createdUntil !== null) {
-            $queryParams['createdUntil'] = $createdUntil;
+        if ($created_until !== null) {
+            $queryParams['createdUntil'] = $created_until;
         }
         // query params
-        if (\is_array($nextToken)) {
-            $nextToken = ObjectSerializer::serializeCollection($nextToken, '', true);
+        if (\is_array($next_token)) {
+            $next_token = ObjectSerializer::serializeCollection($next_token, '', true);
         }
 
-        if ($nextToken !== null) {
-            $queryParams['nextToken'] = $nextToken;
+        if ($next_token !== null) {
+            $queryParams['nextToken'] = $next_token;
         }
 
         if (\count($queryParams)) {
@@ -1060,17 +1037,23 @@ public function getReportsRequest(array $reportTypes = null, array $processingSt
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
@@ -1089,52 +1072,42 @@ public function getReportsRequest(array $reportTypes = null, array $processingSt
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
      * Operation cancelReportWithHttpInfo.
      *
-     * @param string $reportId The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_id The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\CancelReportResponse>
      */
-    private function cancelReportWithHttpInfo(string $reportId) : array
+    private function cancelReportWithHttpInfo(AccessToken $accessToken, string $region, string $report_id) : array
     {
-        $request = $this->cancelReportRequest($reportId);
+        $request = $this->cancelReportRequest($accessToken, $region, $report_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1172,7 +1145,12 @@ private function cancelReportWithHttpInfo(string $reportId) : array
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\CancelReportResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\CancelReportResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1182,7 +1160,12 @@ private function cancelReportWithHttpInfo(string $reportId) : array
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1198,6 +1181,7 @@ private function cancelReportWithHttpInfo(string $reportId) : array
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\CancelReportResponse::class,
                         $e->getResponseHeaders()
@@ -1214,20 +1198,20 @@ private function cancelReportWithHttpInfo(string $reportId) : array
     /**
      * Operation cancelReportScheduleWithHttpInfo.
      *
-     * @param string $reportScheduleId The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_schedule_id The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\CancelReportScheduleResponse>
      */
-    private function cancelReportScheduleWithHttpInfo(string $reportScheduleId) : array
+    private function cancelReportScheduleWithHttpInfo(AccessToken $accessToken, string $region, string $report_schedule_id) : array
     {
-        $request = $this->cancelReportScheduleRequest($reportScheduleId);
+        $request = $this->cancelReportScheduleRequest($accessToken, $region, $report_schedule_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1265,7 +1249,12 @@ private function cancelReportScheduleWithHttpInfo(string $reportScheduleId) : ar
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\CancelReportScheduleResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\CancelReportScheduleResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1275,7 +1264,12 @@ private function cancelReportScheduleWithHttpInfo(string $reportScheduleId) : ar
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1291,6 +1285,7 @@ private function cancelReportScheduleWithHttpInfo(string $reportScheduleId) : ar
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\CancelReportScheduleResponse::class,
                         $e->getResponseHeaders()
@@ -1314,13 +1309,13 @@ private function cancelReportScheduleWithHttpInfo(string $reportScheduleId) : ar
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\CreateReportResponse>
      */
-    private function createReportWithHttpInfo(\AmazonPHP\SellingPartner\Model\Reports\CreateReportSpecification $body) : array
+    private function createReportWithHttpInfo(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Reports\CreateReportSpecification $body) : array
     {
-        $request = $this->createReportRequest($body);
+        $request = $this->createReportRequest($accessToken, $region, $body);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1358,7 +1353,12 @@ private function createReportWithHttpInfo(\AmazonPHP\SellingPartner\Model\Report
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\CreateReportResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\CreateReportResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1368,7 +1368,12 @@ private function createReportWithHttpInfo(\AmazonPHP\SellingPartner\Model\Report
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1384,6 +1389,7 @@ private function createReportWithHttpInfo(\AmazonPHP\SellingPartner\Model\Report
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\CreateReportResponse::class,
                         $e->getResponseHeaders()
@@ -1407,13 +1413,13 @@ private function createReportWithHttpInfo(\AmazonPHP\SellingPartner\Model\Report
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleResponse>
      */
-    private function createReportScheduleWithHttpInfo(\AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleSpecification $body) : array
+    private function createReportScheduleWithHttpInfo(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleSpecification $body) : array
     {
-        $request = $this->createReportScheduleRequest($body);
+        $request = $this->createReportScheduleRequest($accessToken, $region, $body);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1451,7 +1457,12 @@ private function createReportScheduleWithHttpInfo(\AmazonPHP\SellingPartner\Mode
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1461,7 +1472,12 @@ private function createReportScheduleWithHttpInfo(\AmazonPHP\SellingPartner\Mode
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1477,6 +1493,7 @@ private function createReportScheduleWithHttpInfo(\AmazonPHP\SellingPartner\Mode
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\CreateReportScheduleResponse::class,
                         $e->getResponseHeaders()
@@ -1493,20 +1510,20 @@ private function createReportScheduleWithHttpInfo(\AmazonPHP\SellingPartner\Mode
     /**
      * Operation getReportWithHttpInfo.
      *
-     * @param string $reportId The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_id The identifier for the report. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\GetReportResponse>
      */
-    private function getReportWithHttpInfo(string $reportId) : array
+    private function getReportWithHttpInfo(AccessToken $accessToken, string $region, string $report_id) : array
     {
-        $request = $this->getReportRequest($reportId);
+        $request = $this->getReportRequest($accessToken, $region, $report_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1544,7 +1561,12 @@ private function getReportWithHttpInfo(string $reportId) : array
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\GetReportResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\GetReportResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1554,7 +1576,12 @@ private function getReportWithHttpInfo(string $reportId) : array
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1570,6 +1597,7 @@ private function getReportWithHttpInfo(string $reportId) : array
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\GetReportResponse::class,
                         $e->getResponseHeaders()
@@ -1586,20 +1614,20 @@ private function getReportWithHttpInfo(string $reportId) : array
     /**
      * Operation getReportDocumentWithHttpInfo.
      *
-     * @param string $reportDocumentId The identifier for the report document. (required)
+     * @param string $report_document_id The identifier for the report document. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\GetReportDocumentResponse>
      */
-    private function getReportDocumentWithHttpInfo(string $reportDocumentId) : array
+    private function getReportDocumentWithHttpInfo(AccessToken $accessToken, string $region, string $report_document_id) : array
     {
-        $request = $this->getReportDocumentRequest($reportDocumentId);
+        $request = $this->getReportDocumentRequest($accessToken, $region, $report_document_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1637,7 +1665,12 @@ private function getReportDocumentWithHttpInfo(string $reportDocumentId) : array
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\GetReportDocumentResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\GetReportDocumentResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1647,7 +1680,12 @@ private function getReportDocumentWithHttpInfo(string $reportDocumentId) : array
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1663,6 +1701,7 @@ private function getReportDocumentWithHttpInfo(string $reportDocumentId) : array
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\GetReportDocumentResponse::class,
                         $e->getResponseHeaders()
@@ -1679,20 +1718,20 @@ private function getReportDocumentWithHttpInfo(string $reportDocumentId) : array
     /**
      * Operation getReportScheduleWithHttpInfo.
      *
-     * @param string $reportScheduleId The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
+     * @param string $report_schedule_id The identifier for the report schedule. This identifier is unique only in combination with a seller ID. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\GetReportScheduleResponse>
      */
-    private function getReportScheduleWithHttpInfo(string $reportScheduleId) : array
+    private function getReportScheduleWithHttpInfo(AccessToken $accessToken, string $region, string $report_schedule_id) : array
     {
-        $request = $this->getReportScheduleRequest($reportScheduleId);
+        $request = $this->getReportScheduleRequest($accessToken, $region, $report_schedule_id);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1730,7 +1769,12 @@ private function getReportScheduleWithHttpInfo(string $reportScheduleId) : array
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\GetReportScheduleResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\GetReportScheduleResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1740,7 +1784,12 @@ private function getReportScheduleWithHttpInfo(string $reportScheduleId) : array
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1756,6 +1805,7 @@ private function getReportScheduleWithHttpInfo(string $reportScheduleId) : array
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\GetReportScheduleResponse::class,
                         $e->getResponseHeaders()
@@ -1772,20 +1822,20 @@ private function getReportScheduleWithHttpInfo(string $reportScheduleId) : array
     /**
      * Operation getReportSchedulesWithHttpInfo.
      *
-     * @param array<array-key, string> $reportTypes A list of report types used to filter report schedules. (required)
+     * @param array<array-key, string> $report_types A list of report types used to filter report schedules. (required)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\GetReportSchedulesResponse>
      */
-    private function getReportSchedulesWithHttpInfo(array $reportTypes) : array
+    private function getReportSchedulesWithHttpInfo(AccessToken $accessToken, string $region, array $report_types) : array
     {
-        $request = $this->getReportSchedulesRequest($reportTypes);
+        $request = $this->getReportSchedulesRequest($accessToken, $region, $report_types);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1823,7 +1873,12 @@ private function getReportSchedulesWithHttpInfo(array $reportTypes) : array
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\GetReportSchedulesResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\GetReportSchedulesResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1833,7 +1888,12 @@ private function getReportSchedulesWithHttpInfo(array $reportTypes) : array
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1849,6 +1909,7 @@ private function getReportSchedulesWithHttpInfo(array $reportTypes) : array
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\GetReportSchedulesResponse::class,
                         $e->getResponseHeaders()
@@ -1865,26 +1926,26 @@ private function getReportSchedulesWithHttpInfo(array $reportTypes) : array
     /**
      * Operation getReportsWithHttpInfo.
      *
-     * @param array<array-key, string>|null $reportTypes A list of report types used to filter reports. When reportTypes is provided, the other filter parameters (processingStatuses, marketplaceIds, createdSince, createdUntil) and pageSize may also be provided. Either reportTypes or nextToken is required. (optional)
-     * @param array<array-key, string>|null $processingStatuses A list of processing statuses used to filter reports. (optional)
-     * @param array<array-key, string>|null $marketplaceIds A list of marketplace identifiers used to filter reports. The reports returned will match at least one of the marketplaces that you specify. (optional)
-     * @param int $pageSize The maximum number of reports to return in a single call. (optional, default to 10)
-     * @param \DateTime|null $createdSince The earliest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is 90 days ago. Reports are retained for a maximum of 90 days. (optional)
-     * @param \DateTime|null $createdUntil The latest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is now. (optional)
-     * @param null|string $nextToken A string token returned in the response to your previous request. nextToken is returned when the number of results exceeds the specified pageSize value. To get the next page of results, call the getReports operation and include this token as the only parameter. Specifying nextToken with any other parameters will cause the request to fail. (optional)
+     * @param array<array-key, string>|null $report_types A list of report types used to filter reports. When reportTypes is provided, the other filter parameters (processingStatuses, marketplaceIds, createdSince, createdUntil) and pageSize may also be provided. Either reportTypes or nextToken is required. (optional)
+     * @param array<array-key, string>|null $processing_statuses A list of processing statuses used to filter reports. (optional)
+     * @param array<array-key, string>|null $marketplace_ids A list of marketplace identifiers used to filter reports. The reports returned will match at least one of the marketplaces that you specify. (optional)
+     * @param int $page_size The maximum number of reports to return in a single call. (optional, default to 10)
+     * @param null|\DateTime $created_since The earliest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is 90 days ago. Reports are retained for a maximum of 90 days. (optional)
+     * @param null|\DateTime $created_until The latest report creation date and time for reports to include in the response, in ISO 8601 date time format. The default is now. (optional)
+     * @param null|string $next_token A string token returned in the response to your previous request. nextToken is returned when the number of results exceeds the specified pageSize value. To get the next page of results, call the getReports operation and include this token as the only parameter. Specifying nextToken with any other parameters will cause the request to fail. (optional)
      *
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Reports\GetReportsResponse>
      */
-    private function getReportsWithHttpInfo(array $reportTypes = null, array $processingStatuses = null, array $marketplaceIds = null, int $pageSize = 10, \DateTime $createdSince = null, \DateTime $createdUntil = null, string $nextToken = null) : array
+    private function getReportsWithHttpInfo(AccessToken $accessToken, string $region, array $report_types = null, array $processing_statuses = null, array $marketplace_ids = null, int $page_size = 10, \DateTime $created_since = null, \DateTime $created_until = null, string $next_token = null) : array
     {
-        $request = $this->getReportsRequest($reportTypes, $processingStatuses, $marketplaceIds, $pageSize, $createdSince, $createdUntil, $nextToken);
+        $request = $this->getReportsRequest($accessToken, $region, $report_types, $processing_statuses, $marketplace_ids, $page_size, $created_since, $created_until, $next_token);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -1922,7 +1983,12 @@ private function getReportsWithHttpInfo(array $reportTypes = null, array $proces
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Reports\GetReportsResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Reports\GetReportsResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -1932,7 +1998,12 @@ private function getReportsWithHttpInfo(array $reportTypes = null, array $proces
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -1948,6 +2019,7 @@ private function getReportsWithHttpInfo(array $reportTypes = null, array $proces
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Reports\GetReportsResponse::class,
                         $e->getResponseHeaders()
diff --git a/src/AmazonPHP/SellingPartner/Api/TokensSDK.php b/src/AmazonPHP/SellingPartner/Api/TokensSDK.php
index 6fc6505ff..f1199512c 100644
--- a/src/AmazonPHP/SellingPartner/Api/TokensSDK.php
+++ b/src/AmazonPHP/SellingPartner/Api/TokensSDK.php
@@ -2,12 +2,15 @@
 
 namespace AmazonPHP\SellingPartner\Api;
 
+use AmazonPHP\SellingPartner\AccessToken;
+use AmazonPHP\SellingPartner\Configuration;
 use AmazonPHP\SellingPartner\Exception\ApiException;
 use AmazonPHP\SellingPartner\Exception\InvalidArgumentException;
+use AmazonPHP\SellingPartner\HttpFactory;
 use AmazonPHP\SellingPartner\HttpSignatureHeaders;
-use AmazonPHP\SellingPartner\OAuth;
 use AmazonPHP\SellingPartner\ObjectSerializer;
 use Psr\Http\Client\ClientExceptionInterface;
+use Psr\Http\Client\ClientInterface;
 use Psr\Http\Message\RequestInterface;
 
 /**
@@ -16,11 +19,17 @@
  */
 final class TokensSDK
 {
-    private OAuth $oauth;
+    private ClientInterface $client;
 
-    public function __construct(OAuth $authentication)
+    private HttpFactory $httpFactory;
+
+    private Configuration $configuration;
+
+    public function __construct(ClientInterface $client, HttpFactory $requestFactory, Configuration $configuration)
     {
-        $this->oauth = $authentication;
+        $this->client = $client;
+        $this->httpFactory = $requestFactory;
+        $this->configuration = $configuration;
     }
 
     /**
@@ -31,9 +40,9 @@ public function __construct(OAuth $authentication)
      * @throws ApiException on non-2xx response
      * @throws InvalidArgumentException
      */
-    public function createRestrictedDataToken(\AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenRequest $body) : \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenResponse
+    public function createRestrictedDataToken(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenRequest $body) : \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenResponse
     {
-        [$response] = $this->createRestrictedDataTokenWithHttpInfo($body);
+        [$response] = $this->createRestrictedDataTokenWithHttpInfo($accessToken, $region, $body);
 
         return $response;
     }
@@ -47,7 +56,7 @@ public function createRestrictedDataToken(\AmazonPHP\SellingPartner\Model\Tokens
      *
      * @return RequestInterface
      */
-    public function createRestrictedDataTokenRequest(\AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenRequest $body) : RequestInterface
+    public function createRestrictedDataTokenRequest(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenRequest $body) : RequestInterface
     {
         // verify the required parameter 'body' is set
         if ($body === null || (\is_array($body) && \count($body) === 0)) {
@@ -68,28 +77,34 @@ public function createRestrictedDataTokenRequest(\AmazonPHP\SellingPartner\Model
         }
 
         if ($multipart) {
-            $headers = ['Accept' => ['application/json']];
+            $headers = [
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
+            ];
         } else {
             $headers = [
-                'Content-Type' => ['application/json'],
-                'Accept' => ['application/json'],
+                'content-type' => ['application/json'],
+                'accept' => ['application/json'],
+                'host' => [$this->configuration->apiHost($region)],
+                'user-agent' => [$this->configuration->userAgent()],
             ];
         }
 
-        $request = $this->oauth->requestFactory()->createRequest(
-            $method = 'GET',
-            $host = $this->oauth->configuration()->apiURL() . $resourcePath . '?' . $query
+        $request = $this->httpFactory->createRequest(
+            'GET',
+            $this->configuration->apiURL($region) . $resourcePath . '?' . $query
         );
 
         // for model (json/xml)
         if (isset($body)) {
-            if ($headers['Content-Type'] === 'application/json') {
+            if ($headers['Content-Type'] === ['application/json']) {
                 $httpBody = \json_encode(ObjectSerializer::sanitizeForSerialization($body), JSON_THROW_ON_ERROR);
             } else {
                 $httpBody = $body;
             }
 
-            $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString($httpBody));
+            $request = $request->withBody($this->httpFactory->createStreamFromString($httpBody));
         } elseif (\count($formParams) > 0) {
             if ($multipart) {
                 $multipartContents = [];
@@ -105,33 +120,23 @@ public function createRestrictedDataTokenRequest(\AmazonPHP\SellingPartner\Model
                     }
                 }
                 $request = $request->withParsedBody($multipartContents);
-            } elseif ($headers['Content-Type'] === 'application/json') {
-                $request = $request->withBody($this->oauth->requestFactory()->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
+            } elseif ($headers['Content-Type'] === ['application/json']) {
+                $request = $request->withBody($this->httpFactory->createStreamFromString(\json_encode($formParams, JSON_THROW_ON_ERROR)));
             } else {
                 $request = $request->withParsedBody($formParams);
             }
         }
 
-        $defaultHeaders = HttpSignatureHeaders::forIAMUser(
-            $this->oauth->configuration(),
-            $method,
-            $this->oauth->accessToken(),
-            $resourcePath,
-            $query,
-            (string) $request->getBody()
-        );
-
-        $headers = \array_merge(
-            $defaultHeaders,
-            $headerParams,
-            $headers
-        );
-
-        foreach ($headers as $name => $header) {
+        foreach (\array_merge($headerParams, $headers) as $name => $header) {
             $request = $request->withHeader($name, $header);
         }
 
-        return $request;
+        return HttpSignatureHeaders::forIAMUser(
+            $this->configuration,
+            $accessToken,
+            $region,
+            $request
+        );
     }
 
     /**
@@ -144,13 +149,13 @@ public function createRestrictedDataTokenRequest(\AmazonPHP\SellingPartner\Model
      *
      * @return array<array-key, \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenResponse>
      */
-    private function createRestrictedDataTokenWithHttpInfo(\AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenRequest $body) : array
+    private function createRestrictedDataTokenWithHttpInfo(AccessToken $accessToken, string $region, \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenRequest $body) : array
     {
-        $request = $this->createRestrictedDataTokenRequest($body);
+        $request = $this->createRestrictedDataTokenRequest($accessToken, $region, $body);
 
         try {
             try {
-                $response = $this->oauth->client()->sendRequest($request);
+                $response = $this->client->sendRequest($request);
             } catch (ClientExceptionInterface $e) {
                 throw new ApiException(
                     "[{$e->getCode()}] {$e->getMessage()}",
@@ -180,7 +185,12 @@ private function createRestrictedDataTokenWithHttpInfo(\AmazonPHP\SellingPartner
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenResponse::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenResponse::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -195,7 +205,12 @@ private function createRestrictedDataTokenWithHttpInfo(\AmazonPHP\SellingPartner
                     $content = (string) $response->getBody()->getContents();
 
                     return [
-                        ObjectSerializer::deserialize($content, \AmazonPHP\SellingPartner\Model\Tokens\ErrorList::class, []),
+                        ObjectSerializer::deserialize(
+                            $this->configuration,
+                            $content,
+                            \AmazonPHP\SellingPartner\Model\Tokens\ErrorList::class,
+                            []
+                        ),
                         $response->getStatusCode(),
                         $response->getHeaders(),
                     ];
@@ -205,7 +220,12 @@ private function createRestrictedDataTokenWithHttpInfo(\AmazonPHP\SellingPartner
             $content = (string) $response->getBody()->getContents();
 
             return [
-                ObjectSerializer::deserialize($content, $returnType, []),
+                ObjectSerializer::deserialize(
+                    $this->configuration,
+                    $content,
+                    $returnType,
+                    []
+                ),
                 $response->getStatusCode(),
                 $response->getHeaders(),
             ];
@@ -213,6 +233,7 @@ private function createRestrictedDataTokenWithHttpInfo(\AmazonPHP\SellingPartner
             switch ($e->getCode()) {
                 case 200:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Tokens\CreateRestrictedDataTokenResponse::class,
                         $e->getResponseHeaders()
@@ -229,6 +250,7 @@ private function createRestrictedDataTokenWithHttpInfo(\AmazonPHP\SellingPartner
                 case 500:
                 case 503:
                     $data = ObjectSerializer::deserialize(
+                        $this->configuration,
                         $e->getResponseBody(),
                         \AmazonPHP\SellingPartner\Model\Tokens\ErrorList::class,
                         $e->getResponseHeaders()
diff --git a/src/AmazonPHP/SellingPartner/Configuration.php b/src/AmazonPHP/SellingPartner/Configuration.php
index ce92792e3..e71b2ced0 100644
--- a/src/AmazonPHP/SellingPartner/Configuration.php
+++ b/src/AmazonPHP/SellingPartner/Configuration.php
@@ -8,11 +8,9 @@
 
 final class Configuration
 {
-    private string $clientId;
+    private string $lwaClientID;
 
-    private string $clientSecret;
-
-    private string $region;
+    private string $lwaClientSecret;
 
     private string $accessKey;
 
@@ -20,53 +18,55 @@ final class Configuration
 
     private string $userAgent;
 
-    private function __construct(string $clientId, string $clientSecret, string $region, string $accessKey, string $secretKey)
-    {
-        if (!Regions::isValid($region)) {
-            throw new InvalidArgumentException("Invalid region {$region}");
-        }
+    private string $tmpFolderPath;
 
-        $this->clientId = $clientId;
-        $this->clientSecret = $clientSecret;
-        $this->region = $region;
+    private function __construct(string $lwaClientID, string $lwaClientSecret, string $accessKey, string $secretKey)
+    {
+        $this->lwaClientID = $lwaClientID;
+        $this->lwaClientSecret = $lwaClientSecret;
         $this->accessKey = $accessKey;
         $this->secretKey = $secretKey;
-        $this->userAgent = 'norberttech/sp-api-php';
+        // https://github.com/amzn/selling-partner-api-docs/blob/main/guides/en-US/developer-guide/SellingPartnerApiDeveloperGuide.md#include-a-user-agent-header-in-all-requests
+        $this->userAgent = 'Library amazon-php/sp-api-php (language=PHP ' . \phpversion() . '; Platform=' . \php_uname('s') . ' ' . \php_uname('r') . ' ' . \php_uname('m') . ')';
+        $this->tmpFolderPath = \sys_get_temp_dir();
     }
 
-    public static function forIAMUser(string $clientId, string $clientSecret, string $region, string $accessKey, string $secretKey) : self
+    public static function forIAMUser(string $clientId, string $clientSecret, string $accessKey, string $secretKey) : self
     {
-        return new self($clientId, $clientSecret, $region, $accessKey, $secretKey);
+        return new self($clientId, $clientSecret, $accessKey, $secretKey);
     }
 
-    public static function forIAMRole(string $clientId, string $clientSecret, string $region, string $accessKey, string $secretKey, string $roleARN) : void
+    public static function forIAMRole(string $clientId, string $clientSecret, string $accessKey, string $secretKey, string $roleARN) : void
     {
         throw new \RuntimeException('IAM Role authentication is not supported yet');
     }
 
-    public function clientId() : string
+    public function lwaClientID() : string
     {
-        return $this->clientId;
+        return $this->lwaClientID;
     }
 
-    public function clientSecret() : string
+    public function lwaClientSecret() : string
     {
-        return $this->clientSecret;
+        return $this->lwaClientSecret;
     }
 
-    public function region() : string
+    public function apiURL(string $awsRegion) : string
     {
-        return $this->region;
-    }
+        if (!Regions::isValid($awsRegion)) {
+            throw new InvalidArgumentException("Invalid region {$awsRegion}");
+        }
 
-    public function apiURL() : string
-    {
-        return 'https://' . $this->apiHost();
+        return 'https://' . $this->apiHost($awsRegion);
     }
 
-    public function apiHost() : string
+    public function apiHost(string $awsRegion) : string
     {
-        switch ($this->region) {
+        if (!Regions::isValid($awsRegion)) {
+            throw new InvalidArgumentException("Invalid region {$awsRegion}");
+        }
+
+        switch ($awsRegion) {
             case Regions::EUROPE:
                 return 'sellingpartnerapi-eu.amazon.com';
             case Regions::FAR_EAST:
@@ -100,4 +100,19 @@ public function setUserAgent(string $userAgent) : self
 
         return $this;
     }
+
+    /**
+     * SDK's that are receiving files will use this path to write the file there.
+     */
+    public function setTmpFolderPath(string $path) : self
+    {
+        $this->tmpFolderPath = $path;
+
+        return $this;
+    }
+
+    public function tmpFolderPath() : string
+    {
+        return $this->tmpFolderPath;
+    }
 }
diff --git a/src/AmazonPHP/SellingPartner/HttpSignatureHeaders.php b/src/AmazonPHP/SellingPartner/HttpSignatureHeaders.php
index b3894bd63..4ff6830c6 100644
--- a/src/AmazonPHP/SellingPartner/HttpSignatureHeaders.php
+++ b/src/AmazonPHP/SellingPartner/HttpSignatureHeaders.php
@@ -4,123 +4,134 @@
 
 namespace AmazonPHP\SellingPartner;
 
+use Psr\Http\Message\RequestInterface;
+
 final class HttpSignatureHeaders
 {
-    /**
-     * @return array{host: string, user-agent: string, x-amz-access-token: string, x-amz-date: string, Authorization: string}
-     */
+    private static array $cache = [];
+
     public static function forIAMUser(
         Configuration $config,
-        string $method,
-        ?AccessToken $accessToken,
-        $uri = '',
-        $queryString = '',
-        $data = []
-    ) : array {
-        return self::calculateSignatureForService(
-            $config->apiHost(),
-            $method,
-            $uri,
-            $queryString,
-            $data,
-            'execute-api',
-            $config->accessKey(),
-            $config->secretKey(),
-            $config->region(),
-            $accessToken->token(),
-            null,
-            $config->userAgent()
-        );
-    }
-
-    /**
-     * @source https://github.com/clousale/amazon-sp-api-php
-     *
-     * @return array<string, mixed>
-     */
-    private static function calculateSignatureForService(
-        string $host,
-        string $method,
-        $uri,
-        $queryString,
-        $data,
-        string $service,
-        string $accessKey,
-        string $secretKey,
+        AccessToken $accessToken,
         string $region,
-        $accessToken,
-        $securityToken,
-        $userAgent
-    ) : array {
-        $terminationString = 'aws4_request';
+        RequestInterface $request
+    ) : RequestInterface {
         $algorithm = 'AWS4-HMAC-SHA256';
         $amzdate = \gmdate('Ymd\THis\Z');
-        $date = \substr($amzdate, 0, 8);
+        $shortDate = \substr($amzdate, 0, 8);
+        $service = 'execute-api';
 
-        // Prepare payload
-        if (\is_array($data)) {
-            $param = \json_encode($data, JSON_THROW_ON_ERROR);
+        // Hashed payload
+        $hashedPayload = \hash('sha256', (string) $request->getBody());
 
-            if ('[]' == $param) {
-                $requestPayload = '';
-            } else {
-                $requestPayload = $param;
-            }
-        } else {
-            $requestPayload = $data;
-        }
+        // Check and attach access token to request header.
+        $allHeaders = \array_merge(
+            [
+                'x-amz-access-token' => [$accessToken->token()],
+                'x-amz-date' => [$amzdate],
+            ],
+            $request->getHeaders()
+        );
 
-        // Hashed payload
-        $hashedPayload = \hash('sha256', $requestPayload);
+        $canonicalHeadersStr = '';
 
-        //Compute Canonical Headers
-        $canonicalHeaders = [
-            'host' => $host,
-            'user-agent' => $userAgent,
+        $blacklistHeaders = [
+            'cache-control',
+            'content-type',
+            'content-length',
+            'expect',
+            'max-forwards',
+            'pragma',
+            'range',
+            'te',
+            'if-match',
+            'if-none-match',
+            'if-modified-since',
+            'if-unmodified-since',
+            'if-range',
+            'accept',
+            'authorization',
+            'proxy-authorization',
+            'from',
+            'referer',
+            'user-agent',
+            'x-amzn-trace-id',
+            'aws-sdk-invocation-id',
+            'aws-sdk-retry',
         ];
 
-        // Check and attach access token to request header.
-        if (null !== $accessToken) {
-            $canonicalHeaders['x-amz-access-token'] = $accessToken;
-        }
-        $canonicalHeaders['x-amz-date'] = $amzdate;
-        // Check and attach STS token to request header.
-        if (null !== $securityToken) {
-            $canonicalHeaders['x-amz-security-token'] = $securityToken;
-        }
+        \ksort($allHeaders);
+        $canonicalHeaders = [];
 
-        $canonicalHeadersStr = '';
+        foreach ($allHeaders as $headerName => $headerValue) {
+            if (\in_array(\strtolower($headerName), $blacklistHeaders, true)) {
+                continue;
+            }
+
+            $canonicalHeaders[$headerName] = $headerValue;
+
+            if (\count($headerValue) > 0) {
+                \sort($headerValue);
+            }
 
-        foreach ($canonicalHeaders as $h => $v) {
-            $canonicalHeadersStr .= $h . ':' . $v . "\n";
+            $canonicalHeadersStr .= $headerName . ':' . \implode(',', $headerValue) . "\n";
         }
+
         $signedHeadersStr = \implode(';', \array_keys($canonicalHeaders));
 
         //Prepare credentials scope
-        $credentialScope = $date . '/' . $region . '/' . $service . '/' . $terminationString;
+        $credentialScope = $shortDate . '/' . $region . '/' . $service . '/aws4_request';
+
+        \parse_str($request->getUri()->getQuery(), $queryElements);
+        \ksort($queryElements);
 
         //prepare canonical request
-        $canonicalRequest = $method . "\n" . $uri . "\n" . $queryString . "\n" . $canonicalHeadersStr . "\n" . $signedHeadersStr . "\n" . $hashedPayload;
+        $canonicalString = $request->getMethod()
+            . "\n" . $request->getUri()->getPath()
+            . "\n" . \http_build_query($queryElements)
+            . "\n" . $canonicalHeadersStr
+            . "\n" . $signedHeadersStr
+            . "\n" . $hashedPayload;
 
         //Prepare the string to sign
-        $stringToSign = $algorithm . "\n" . $amzdate . "\n" . $credentialScope . "\n" . \hash('sha256', $canonicalRequest);
+        $stringToSign = $algorithm . "\n"
+            . $amzdate . "\n"
+            . $credentialScope . "\n"
+            . \hash('sha256', $canonicalString);
+
+        $k = $shortDate . '_' . $region . '_' . $service . '_' . $config->secretKey();
 
-        //Start signing locker process
-        //Reference : https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
-        $kSecret = 'AWS4' . $secretKey;
-        $kDate = \hash_hmac('sha256', $date, $kSecret, true);
-        $kRegion = \hash_hmac('sha256', $region, $kDate, true);
-        $kService = \hash_hmac('sha256', $service, $kRegion, true);
-        $kSigning = \hash_hmac('sha256', $terminationString, $kService, true);
+        if (!isset(self::$cache[$k])) {
+            // Clear the cache when it reaches 50 entries
+            if (\count(self::$cache) > 50) {
+                self::$cache = [];
+            }
+
+            $dateKey = \hash_hmac(
+                'sha256',
+                $shortDate,
+                "AWS4{$config->secretKey()}",
+                true
+            );
+            $regionKey = \hash_hmac('sha256', $region, $dateKey, true);
+            $serviceKey = \hash_hmac('sha256', $service, $regionKey, true);
+            self::$cache[$k] = \hash_hmac(
+                'sha256',
+                'aws4_request',
+                $serviceKey,
+                true
+            );
+        }
 
         //Compute the signature
-        $signature = \trim(\hash_hmac('sha256', $stringToSign, $kSigning));
+        $signature = \hash_hmac('sha256', $stringToSign, self::$cache[$k]);
 
         //Finalize the authorization structure
-        $authorizationHeader = $algorithm . " Credential={$accessKey}/{$credentialScope}, SignedHeaders={$signedHeadersStr}, Signature={$signature}";
+        $authorizationHeader = $algorithm . " Credential={$config->accessKey()}/{$credentialScope}, SignedHeaders={$signedHeadersStr}, Signature={$signature}";
 
-        return \array_merge($canonicalHeaders, [
-            'Authorization' => $authorizationHeader,
-        ]);
+        return $request
+            ->withHeader('x-amz-date', $amzdate)
+            ->withHeader('x-amz-access-token', $accessToken->token())
+            ->withHeader('Authorization', $authorizationHeader);
     }
 }
diff --git a/src/AmazonPHP/SellingPartner/Marketplace.php b/src/AmazonPHP/SellingPartner/Marketplace.php
new file mode 100644
index 000000000..95ee7253f
--- /dev/null
+++ b/src/AmazonPHP/SellingPartner/Marketplace.php
@@ -0,0 +1,139 @@
+<?php
+
+declare(strict_types=1);
+
+namespace AmazonPHP\SellingPartner;
+
+final class Marketplace
+{
+    private string $name;
+
+    private string $id;
+
+    private string $countryCode;
+
+    private string $region;
+
+    private function __construct(string $name, string $id, string $countryCode, string $region)
+    {
+        $this->name = $name;
+        $this->id = $id;
+        $this->countryCode = $countryCode;
+        $this->region = $region;
+    }
+
+    public static function US() : self
+    {
+        return new self('United States of America', 'ATVPDKIKX0DER', 'US', Regions::NORTH_AMERICA);
+    }
+
+    public static function CA() : self
+    {
+        return new self('Canada', 'A2EUQ1WTGCTBG2', 'CA', Regions::NORTH_AMERICA);
+    }
+
+    public static function MX() : self
+    {
+        return new self('Mexico', 'A1AM78C64UM0Y8', 'MX', Regions::NORTH_AMERICA);
+    }
+
+    public static function BR() : self
+    {
+        return new self('Brazil', 'A2Q3Y263D00KWC', 'BR', Regions::NORTH_AMERICA);
+    }
+
+    public static function ES() : self
+    {
+        return new self('Spain', 'A1RKKUPIHCS9HS', 'ES', Regions::EUROPE);
+    }
+
+    public static function GB() : self
+    {
+        return new self('United Kingdom', 'A1F83G8C2ARO7P', 'GB', Regions::EUROPE);
+    }
+
+    public static function FR() : self
+    {
+        return new self('France', 'A13V1IB3VIYZZH', 'FR', Regions::EUROPE);
+    }
+
+    public static function NL() : self
+    {
+        return new self('Netherlands', 'A1805IZSGTT6HS', 'NL', Regions::EUROPE);
+    }
+
+    public static function DE() : self
+    {
+        return new self('Germany', 'A1PA6795UKMFR9', 'DE', Regions::EUROPE);
+    }
+
+    public static function IT() : self
+    {
+        return new self('Italy', 'APJ6JRA9NG5V4', 'IT', Regions::EUROPE);
+    }
+
+    public static function SE() : self
+    {
+        return new self('Sweden', 'A2NODRKZP88ZB9', 'SE', Regions::EUROPE);
+    }
+
+    public static function PL() : self
+    {
+        return new self('Poland', 'A1C3SOZRARQ6R3', 'PL', Regions::EUROPE);
+    }
+
+    public static function EG() : self
+    {
+        return new self('Egypt', 'ARBP9OOSHTCHU', 'EG', Regions::EUROPE);
+    }
+
+    public static function TR() : self
+    {
+        return new self('Turkey', 'A33AVAJ2PDY3EV', 'TR', Regions::EUROPE);
+    }
+
+    public static function AE() : self
+    {
+        return new self('United Arab Emirates', 'A2VIGQ35RCS4UG', 'AE', Regions::EUROPE);
+    }
+
+    public static function IN() : self
+    {
+        return new self('India', 'A21TJRUUN4KGV', 'IN', Regions::EUROPE);
+    }
+
+    public static function SG() : self
+    {
+        return new self('Singapore', 'A19VAU5U5O7RUS', 'SG', Regions::FAR_EAST);
+    }
+
+    public static function AU() : self
+    {
+        return new self('Australia', 'A39IBJ37TRP1C6', 'AU', Regions::FAR_EAST);
+    }
+
+    public static function JP() : self
+    {
+        return new self('Japan', 'A1VC38T7YXB528', 'JP', Regions::FAR_EAST);
+    }
+
+    public function name() : string
+    {
+        return $this->name;
+    }
+
+    public function id() : string
+    {
+        return $this->id;
+    }
+
+    public function countryCode() : string
+    {
+        return $this->countryCode;
+    }
+
+    public function region() : string
+    {
+        return $this->region;
+    }
+}
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/AplusPaginatedResponse.php b/src/AmazonPHP/SellingPartner/Model/APlus/AplusPaginatedResponse.php
index d9649e279..0308ba4e1 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/AplusPaginatedResponse.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/AplusPaginatedResponse.php
@@ -57,7 +57,7 @@ class AplusPaginatedResponse implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $openAPITypes = [
         'warnings' => '\AmazonPHP\SellingPartner\Model\APlus\Error[]',
-        'nextPageToken' => 'string',
+        'next_page_token' => 'string',
     ];
 
     /**
@@ -69,7 +69,7 @@ class AplusPaginatedResponse implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $openAPIFormats = [
         'warnings' => null,
-        'nextPageToken' => null,
+        'next_page_token' => null,
     ];
 
     /**
@@ -80,7 +80,7 @@ class AplusPaginatedResponse implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $attributeMap = [
         'warnings' => 'warnings',
-        'nextPageToken' => 'nextPageToken',
+        'next_page_token' => 'nextPageToken',
     ];
 
     /**
@@ -90,7 +90,7 @@ class AplusPaginatedResponse implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $setters = [
         'warnings' => 'setWarnings',
-        'nextPageToken' => 'setNextPageToken',
+        'next_page_token' => 'setNextPageToken',
     ];
 
     /**
@@ -100,7 +100,7 @@ class AplusPaginatedResponse implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $getters = [
         'warnings' => 'getWarnings',
-        'nextPageToken' => 'getNextPageToken',
+        'next_page_token' => 'getNextPageToken',
     ];
 
     /**
@@ -119,7 +119,7 @@ class AplusPaginatedResponse implements \ArrayAccess, \JsonSerializable, ModelIn
     public function __construct(array $data = null)
     {
         $this->container['warnings'] = $data['warnings'] ?? null;
-        $this->container['nextPageToken'] = $data['nextPageToken'] ?? null;
+        $this->container['next_page_token'] = $data['next_page_token'] ?? null;
     }
 
     /**
@@ -201,8 +201,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if (null !== $this->container['nextPageToken'] && (\mb_strlen($this->container['nextPageToken']) < 1)) {
-            $invalidProperties[] = "invalid value for 'nextPageToken', the character length must be bigger than or equal to 1.";
+        if (null !== $this->container['next_page_token'] && (\mb_strlen($this->container['next_page_token']) < 1)) {
+            $invalidProperties[] = "invalid value for 'next_page_token', the character length must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -242,25 +242,25 @@ public function setWarnings(?array $warnings) : self
     }
 
     /**
-     * Gets nextPageToken.
+     * Gets next_page_token.
      */
     public function getNextPageToken() : ?string
     {
-        return $this->container['nextPageToken'];
+        return $this->container['next_page_token'];
     }
 
     /**
-     * Sets nextPageToken.
+     * Sets next_page_token.
      *
-     * @param null|string $nextPageToken A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
+     * @param null|string $next_page_token A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
      */
-    public function setNextPageToken(?string $nextPageToken) : self
+    public function setNextPageToken(?string $next_page_token) : self
     {
-        if (null !== $nextPageToken && (\mb_strlen($nextPageToken) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $nextPageToken when calling AplusPaginatedResponse., must be bigger than or equal to 1.');
+        if (null !== $next_page_token && (\mb_strlen($next_page_token) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $next_page_token when calling AplusPaginatedResponse., must be bigger than or equal to 1.');
         }
 
-        $this->container['nextPageToken'] = $nextPageToken;
+        $this->container['next_page_token'] = $next_page_token;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/AplusPaginatedResponseAllOf.php b/src/AmazonPHP/SellingPartner/Model/APlus/AplusPaginatedResponseAllOf.php
index 3fb7dd949..bcb713517 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/AplusPaginatedResponseAllOf.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/AplusPaginatedResponseAllOf.php
@@ -56,7 +56,7 @@ class AplusPaginatedResponseAllOf implements \ArrayAccess, \JsonSerializable, Mo
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'nextPageToken' => 'string',
+        'next_page_token' => 'string',
     ];
 
     /**
@@ -67,7 +67,7 @@ class AplusPaginatedResponseAllOf implements \ArrayAccess, \JsonSerializable, Mo
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'nextPageToken' => null,
+        'next_page_token' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class AplusPaginatedResponseAllOf implements \ArrayAccess, \JsonSerializable, Mo
      * @var string[]
      */
     protected static array $attributeMap = [
-        'nextPageToken' => 'nextPageToken',
+        'next_page_token' => 'nextPageToken',
     ];
 
     /**
@@ -86,7 +86,7 @@ class AplusPaginatedResponseAllOf implements \ArrayAccess, \JsonSerializable, Mo
      * @var string[]
      */
     protected static array $setters = [
-        'nextPageToken' => 'setNextPageToken',
+        'next_page_token' => 'setNextPageToken',
     ];
 
     /**
@@ -95,7 +95,7 @@ class AplusPaginatedResponseAllOf implements \ArrayAccess, \JsonSerializable, Mo
      * @var string[]
      */
     protected static array $getters = [
-        'nextPageToken' => 'getNextPageToken',
+        'next_page_token' => 'getNextPageToken',
     ];
 
     /**
@@ -113,7 +113,7 @@ class AplusPaginatedResponseAllOf implements \ArrayAccess, \JsonSerializable, Mo
      */
     public function __construct(array $data = null)
     {
-        $this->container['nextPageToken'] = $data['nextPageToken'] ?? null;
+        $this->container['next_page_token'] = $data['next_page_token'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if (null !== $this->container['nextPageToken'] && (\mb_strlen($this->container['nextPageToken']) < 1)) {
-            $invalidProperties[] = "invalid value for 'nextPageToken', the character length must be bigger than or equal to 1.";
+        if (null !== $this->container['next_page_token'] && (\mb_strlen($this->container['next_page_token']) < 1)) {
+            $invalidProperties[] = "invalid value for 'next_page_token', the character length must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -214,25 +214,25 @@ public function valid() : bool
     }
 
     /**
-     * Gets nextPageToken.
+     * Gets next_page_token.
      */
     public function getNextPageToken() : ?string
     {
-        return $this->container['nextPageToken'];
+        return $this->container['next_page_token'];
     }
 
     /**
-     * Sets nextPageToken.
+     * Sets next_page_token.
      *
-     * @param null|string $nextPageToken A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
+     * @param null|string $next_page_token A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
      */
-    public function setNextPageToken(?string $nextPageToken) : self
+    public function setNextPageToken(?string $next_page_token) : self
     {
-        if (null !== $nextPageToken && (\mb_strlen($nextPageToken) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $nextPageToken when calling AplusPaginatedResponseAllOf., must be bigger than or equal to 1.');
+        if (null !== $next_page_token && (\mb_strlen($next_page_token) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $next_page_token when calling AplusPaginatedResponseAllOf., must be bigger than or equal to 1.');
         }
 
-        $this->container['nextPageToken'] = $nextPageToken;
+        $this->container['next_page_token'] = $next_page_token;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/AsinMetadata.php b/src/AmazonPHP/SellingPartner/Model/APlus/AsinMetadata.php
index 6441864f6..a30924857 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/AsinMetadata.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/AsinMetadata.php
@@ -57,11 +57,11 @@ class AsinMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'asin' => 'string',
-        'badgeSet' => '\AmazonPHP\SellingPartner\Model\APlus\AsinBadge[]',
+        'badge_set' => '\AmazonPHP\SellingPartner\Model\APlus\AsinBadge[]',
         'parent' => 'string',
         'title' => 'string',
-        'imageUrl' => 'string',
-        'contentReferenceKeySet' => 'string[]',
+        'image_url' => 'string',
+        'content_reference_key_set' => 'string[]',
     ];
 
     /**
@@ -73,11 +73,11 @@ class AsinMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'asin' => null,
-        'badgeSet' => null,
+        'badge_set' => null,
         'parent' => null,
         'title' => null,
-        'imageUrl' => null,
-        'contentReferenceKeySet' => null,
+        'image_url' => null,
+        'content_reference_key_set' => null,
     ];
 
     /**
@@ -88,11 +88,11 @@ class AsinMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'asin' => 'asin',
-        'badgeSet' => 'badgeSet',
+        'badge_set' => 'badgeSet',
         'parent' => 'parent',
         'title' => 'title',
-        'imageUrl' => 'imageUrl',
-        'contentReferenceKeySet' => 'contentReferenceKeySet',
+        'image_url' => 'imageUrl',
+        'content_reference_key_set' => 'contentReferenceKeySet',
     ];
 
     /**
@@ -102,11 +102,11 @@ class AsinMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'asin' => 'setAsin',
-        'badgeSet' => 'setBadgeSet',
+        'badge_set' => 'setBadgeSet',
         'parent' => 'setParent',
         'title' => 'setTitle',
-        'imageUrl' => 'setImageUrl',
-        'contentReferenceKeySet' => 'setContentReferenceKeySet',
+        'image_url' => 'setImageUrl',
+        'content_reference_key_set' => 'setContentReferenceKeySet',
     ];
 
     /**
@@ -116,11 +116,11 @@ class AsinMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'asin' => 'getAsin',
-        'badgeSet' => 'getBadgeSet',
+        'badge_set' => 'getBadgeSet',
         'parent' => 'getParent',
         'title' => 'getTitle',
-        'imageUrl' => 'getImageUrl',
-        'contentReferenceKeySet' => 'getContentReferenceKeySet',
+        'image_url' => 'getImageUrl',
+        'content_reference_key_set' => 'getContentReferenceKeySet',
     ];
 
     /**
@@ -139,11 +139,11 @@ class AsinMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['asin'] = $data['asin'] ?? null;
-        $this->container['badgeSet'] = $data['badgeSet'] ?? null;
+        $this->container['badge_set'] = $data['badge_set'] ?? null;
         $this->container['parent'] = $data['parent'] ?? null;
         $this->container['title'] = $data['title'] ?? null;
-        $this->container['imageUrl'] = $data['imageUrl'] ?? null;
-        $this->container['contentReferenceKeySet'] = $data['contentReferenceKeySet'] ?? null;
+        $this->container['image_url'] = $data['image_url'] ?? null;
+        $this->container['content_reference_key_set'] = $data['content_reference_key_set'] ?? null;
     }
 
     /**
@@ -241,8 +241,8 @@ public function listInvalidProperties() : array
             $invalidProperties[] = "invalid value for 'title', the character length must be bigger than or equal to 1.";
         }
 
-        if (null !== $this->container['imageUrl'] && (\mb_strlen($this->container['imageUrl']) < 1)) {
-            $invalidProperties[] = "invalid value for 'imageUrl', the character length must be bigger than or equal to 1.";
+        if (null !== $this->container['image_url'] && (\mb_strlen($this->container['image_url']) < 1)) {
+            $invalidProperties[] = "invalid value for 'image_url', the character length must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -284,23 +284,23 @@ public function setAsin(string $asin) : self
     }
 
     /**
-     * Gets badgeSet.
+     * Gets badge_set.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\APlus\AsinBadge[]
      */
     public function getBadgeSet() : ?array
     {
-        return $this->container['badgeSet'];
+        return $this->container['badge_set'];
     }
 
     /**
-     * Sets badgeSet.
+     * Sets badge_set.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\AsinBadge[] $badgeSet the set of ASIN badges
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\AsinBadge[] $badge_set the set of ASIN badges
      */
-    public function setBadgeSet(?array $badgeSet) : self
+    public function setBadgeSet(?array $badge_set) : self
     {
-        $this->container['badgeSet'] = $badgeSet;
+        $this->container['badge_set'] = $badge_set;
 
         return $this;
     }
@@ -354,47 +354,47 @@ public function setTitle(?string $title) : self
     }
 
     /**
-     * Gets imageUrl.
+     * Gets image_url.
      */
     public function getImageUrl() : ?string
     {
-        return $this->container['imageUrl'];
+        return $this->container['image_url'];
     }
 
     /**
-     * Sets imageUrl.
+     * Sets image_url.
      *
-     * @param null|string $imageUrl the default image for the ASIN in the Amazon catalog
+     * @param null|string $image_url the default image for the ASIN in the Amazon catalog
      */
-    public function setImageUrl(?string $imageUrl) : self
+    public function setImageUrl(?string $image_url) : self
     {
-        if (null !== $imageUrl && (\mb_strlen($imageUrl) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $imageUrl when calling AsinMetadata., must be bigger than or equal to 1.');
+        if (null !== $image_url && (\mb_strlen($image_url) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $image_url when calling AsinMetadata., must be bigger than or equal to 1.');
         }
 
-        $this->container['imageUrl'] = $imageUrl;
+        $this->container['image_url'] = $image_url;
 
         return $this;
     }
 
     /**
-     * Gets contentReferenceKeySet.
+     * Gets content_reference_key_set.
      *
      * @return null|string[]
      */
     public function getContentReferenceKeySet() : ?array
     {
-        return $this->container['contentReferenceKeySet'];
+        return $this->container['content_reference_key_set'];
     }
 
     /**
-     * Sets contentReferenceKeySet.
+     * Sets content_reference_key_set.
      *
-     * @param null|string[] $contentReferenceKeySet a set of content reference keys
+     * @param null|string[] $content_reference_key_set a set of content reference keys
      */
-    public function setContentReferenceKeySet(?array $contentReferenceKeySet) : self
+    public function setContentReferenceKeySet(?array $content_reference_key_set) : self
     {
-        $this->container['contentReferenceKeySet'] = $contentReferenceKeySet;
+        $this->container['content_reference_key_set'] = $content_reference_key_set;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ContentDocument.php b/src/AmazonPHP/SellingPartner/Model/APlus/ContentDocument.php
index 6eccf2279..7d2bcb549 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ContentDocument.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ContentDocument.php
@@ -57,10 +57,10 @@ class ContentDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'name' => 'string',
-        'contentType' => '\AmazonPHP\SellingPartner\Model\APlus\ContentType',
-        'contentSubType' => 'string',
+        'content_type' => '\AmazonPHP\SellingPartner\Model\APlus\ContentType',
+        'content_sub_type' => 'string',
         'locale' => 'string',
-        'contentModuleList' => '\AmazonPHP\SellingPartner\Model\APlus\ContentModule[]',
+        'content_module_list' => '\AmazonPHP\SellingPartner\Model\APlus\ContentModule[]',
     ];
 
     /**
@@ -72,10 +72,10 @@ class ContentDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'name' => null,
-        'contentType' => null,
-        'contentSubType' => null,
+        'content_type' => null,
+        'content_sub_type' => null,
         'locale' => null,
-        'contentModuleList' => null,
+        'content_module_list' => null,
     ];
 
     /**
@@ -86,10 +86,10 @@ class ContentDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'name' => 'name',
-        'contentType' => 'contentType',
-        'contentSubType' => 'contentSubType',
+        'content_type' => 'contentType',
+        'content_sub_type' => 'contentSubType',
         'locale' => 'locale',
-        'contentModuleList' => 'contentModuleList',
+        'content_module_list' => 'contentModuleList',
     ];
 
     /**
@@ -99,10 +99,10 @@ class ContentDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'name' => 'setName',
-        'contentType' => 'setContentType',
-        'contentSubType' => 'setContentSubType',
+        'content_type' => 'setContentType',
+        'content_sub_type' => 'setContentSubType',
         'locale' => 'setLocale',
-        'contentModuleList' => 'setContentModuleList',
+        'content_module_list' => 'setContentModuleList',
     ];
 
     /**
@@ -112,10 +112,10 @@ class ContentDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'name' => 'getName',
-        'contentType' => 'getContentType',
-        'contentSubType' => 'getContentSubType',
+        'content_type' => 'getContentType',
+        'content_sub_type' => 'getContentSubType',
         'locale' => 'getLocale',
-        'contentModuleList' => 'getContentModuleList',
+        'content_module_list' => 'getContentModuleList',
     ];
 
     /**
@@ -134,10 +134,10 @@ class ContentDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['name'] = $data['name'] ?? null;
-        $this->container['contentType'] = $data['contentType'] ?? null;
-        $this->container['contentSubType'] = $data['contentSubType'] ?? null;
+        $this->container['content_type'] = $data['content_type'] ?? null;
+        $this->container['content_sub_type'] = $data['content_sub_type'] ?? null;
         $this->container['locale'] = $data['locale'] ?? null;
-        $this->container['contentModuleList'] = $data['contentModuleList'] ?? null;
+        $this->container['content_module_list'] = $data['content_module_list'] ?? null;
     }
 
     /**
@@ -231,12 +231,12 @@ public function listInvalidProperties() : array
             $invalidProperties[] = "invalid value for 'name', the character length must be bigger than or equal to 1.";
         }
 
-        if ($this->container['contentType'] === null) {
-            $invalidProperties[] = "'contentType' can't be null";
+        if ($this->container['content_type'] === null) {
+            $invalidProperties[] = "'content_type' can't be null";
         }
 
-        if (null !== $this->container['contentSubType'] && (\mb_strlen($this->container['contentSubType']) < 1)) {
-            $invalidProperties[] = "invalid value for 'contentSubType', the character length must be bigger than or equal to 1.";
+        if (null !== $this->container['content_sub_type'] && (\mb_strlen($this->container['content_sub_type']) < 1)) {
+            $invalidProperties[] = "invalid value for 'content_sub_type', the character length must be bigger than or equal to 1.";
         }
 
         if ($this->container['locale'] === null) {
@@ -247,16 +247,16 @@ public function listInvalidProperties() : array
             $invalidProperties[] = "invalid value for 'locale', the character length must be bigger than or equal to 5.";
         }
 
-        if ($this->container['contentModuleList'] === null) {
-            $invalidProperties[] = "'contentModuleList' can't be null";
+        if ($this->container['content_module_list'] === null) {
+            $invalidProperties[] = "'content_module_list' can't be null";
         }
 
-        if ((\count($this->container['contentModuleList']) > 100)) {
-            $invalidProperties[] = "invalid value for 'contentModuleList', number of items must be less than or equal to 100.";
+        if ((\count($this->container['content_module_list']) > 100)) {
+            $invalidProperties[] = "invalid value for 'content_module_list', number of items must be less than or equal to 100.";
         }
 
-        if ((\count($this->container['contentModuleList']) < 1)) {
-            $invalidProperties[] = "invalid value for 'contentModuleList', number of items must be greater than or equal to 1.";
+        if ((\count($this->container['content_module_list']) < 1)) {
+            $invalidProperties[] = "invalid value for 'content_module_list', number of items must be greater than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -302,45 +302,45 @@ public function setName(string $name) : self
     }
 
     /**
-     * Gets contentType.
+     * Gets content_type.
      */
     public function getContentType() : ContentType
     {
-        return $this->container['contentType'];
+        return $this->container['content_type'];
     }
 
     /**
-     * Sets contentType.
+     * Sets content_type.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentType $contentType contentType
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentType $content_type content_type
      */
-    public function setContentType(ContentType $contentType) : self
+    public function setContentType(ContentType $content_type) : self
     {
-        $this->container['contentType'] = $contentType;
+        $this->container['content_type'] = $content_type;
 
         return $this;
     }
 
     /**
-     * Gets contentSubType.
+     * Gets content_sub_type.
      */
     public function getContentSubType() : ?string
     {
-        return $this->container['contentSubType'];
+        return $this->container['content_sub_type'];
     }
 
     /**
-     * Sets contentSubType.
+     * Sets content_sub_type.
      *
-     * @param null|string $contentSubType The A+ Content document subtype. This represents a special-purpose type of an A+ Content document. Not every A+ Content document type will have a subtype, and subtypes may change at any time.
+     * @param null|string $content_sub_type The A+ Content document subtype. This represents a special-purpose type of an A+ Content document. Not every A+ Content document type will have a subtype, and subtypes may change at any time.
      */
-    public function setContentSubType(?string $contentSubType) : self
+    public function setContentSubType(?string $content_sub_type) : self
     {
-        if (null !== $contentSubType && (\mb_strlen($contentSubType) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $contentSubType when calling ContentDocument., must be bigger than or equal to 1.');
+        if (null !== $content_sub_type && (\mb_strlen($content_sub_type) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $content_sub_type when calling ContentDocument., must be bigger than or equal to 1.');
         }
 
-        $this->container['contentSubType'] = $contentSubType;
+        $this->container['content_sub_type'] = $content_sub_type;
 
         return $this;
     }
@@ -370,30 +370,30 @@ public function setLocale(string $locale) : self
     }
 
     /**
-     * Gets contentModuleList.
+     * Gets content_module_list.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\ContentModule[]
      */
     public function getContentModuleList() : array
     {
-        return $this->container['contentModuleList'];
+        return $this->container['content_module_list'];
     }
 
     /**
-     * Sets contentModuleList.
+     * Sets content_module_list.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentModule[] $contentModuleList a list of A+ Content modules
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentModule[] $content_module_list a list of A+ Content modules
      */
-    public function setContentModuleList(array $contentModuleList) : self
+    public function setContentModuleList(array $content_module_list) : self
     {
-        if ((\count($contentModuleList) > 100)) {
-            throw new \InvalidArgumentException('invalid value for $contentModuleList when calling ContentDocument., number of items must be less than or equal to 100.');
+        if ((\count($content_module_list) > 100)) {
+            throw new \InvalidArgumentException('invalid value for $content_module_list when calling ContentDocument., number of items must be less than or equal to 100.');
         }
 
-        if ((\count($contentModuleList) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $contentModuleList when calling ContentDocument., number of items must be greater than or equal to 1.');
+        if ((\count($content_module_list) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $content_module_list when calling ContentDocument., number of items must be greater than or equal to 1.');
         }
-        $this->container['contentModuleList'] = $contentModuleList;
+        $this->container['content_module_list'] = $content_module_list;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ContentMetadata.php b/src/AmazonPHP/SellingPartner/Model/APlus/ContentMetadata.php
index 122d1e1bf..0a8843a71 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ContentMetadata.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ContentMetadata.php
@@ -57,10 +57,10 @@ class ContentMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'name' => 'string',
-        'marketplaceId' => 'string',
+        'marketplace_id' => 'string',
         'status' => '\AmazonPHP\SellingPartner\Model\APlus\ContentStatus',
-        'badgeSet' => '\AmazonPHP\SellingPartner\Model\APlus\ContentBadge[]',
-        'updateTime' => '\DateTime',
+        'badge_set' => '\AmazonPHP\SellingPartner\Model\APlus\ContentBadge[]',
+        'update_time' => '\DateTime',
     ];
 
     /**
@@ -72,10 +72,10 @@ class ContentMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'name' => null,
-        'marketplaceId' => null,
+        'marketplace_id' => null,
         'status' => null,
-        'badgeSet' => null,
-        'updateTime' => 'date-time',
+        'badge_set' => null,
+        'update_time' => 'date-time',
     ];
 
     /**
@@ -86,10 +86,10 @@ class ContentMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'name' => 'name',
-        'marketplaceId' => 'marketplaceId',
+        'marketplace_id' => 'marketplaceId',
         'status' => 'status',
-        'badgeSet' => 'badgeSet',
-        'updateTime' => 'updateTime',
+        'badge_set' => 'badgeSet',
+        'update_time' => 'updateTime',
     ];
 
     /**
@@ -99,10 +99,10 @@ class ContentMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'name' => 'setName',
-        'marketplaceId' => 'setMarketplaceId',
+        'marketplace_id' => 'setMarketplaceId',
         'status' => 'setStatus',
-        'badgeSet' => 'setBadgeSet',
-        'updateTime' => 'setUpdateTime',
+        'badge_set' => 'setBadgeSet',
+        'update_time' => 'setUpdateTime',
     ];
 
     /**
@@ -112,10 +112,10 @@ class ContentMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'name' => 'getName',
-        'marketplaceId' => 'getMarketplaceId',
+        'marketplace_id' => 'getMarketplaceId',
         'status' => 'getStatus',
-        'badgeSet' => 'getBadgeSet',
-        'updateTime' => 'getUpdateTime',
+        'badge_set' => 'getBadgeSet',
+        'update_time' => 'getUpdateTime',
     ];
 
     /**
@@ -134,10 +134,10 @@ class ContentMetadata implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['name'] = $data['name'] ?? null;
-        $this->container['marketplaceId'] = $data['marketplaceId'] ?? null;
+        $this->container['marketplace_id'] = $data['marketplace_id'] ?? null;
         $this->container['status'] = $data['status'] ?? null;
-        $this->container['badgeSet'] = $data['badgeSet'] ?? null;
-        $this->container['updateTime'] = $data['updateTime'] ?? null;
+        $this->container['badge_set'] = $data['badge_set'] ?? null;
+        $this->container['update_time'] = $data['update_time'] ?? null;
     }
 
     /**
@@ -231,24 +231,24 @@ public function listInvalidProperties() : array
             $invalidProperties[] = "invalid value for 'name', the character length must be bigger than or equal to 1.";
         }
 
-        if ($this->container['marketplaceId'] === null) {
-            $invalidProperties[] = "'marketplaceId' can't be null";
+        if ($this->container['marketplace_id'] === null) {
+            $invalidProperties[] = "'marketplace_id' can't be null";
         }
 
-        if ((\mb_strlen($this->container['marketplaceId']) < 1)) {
-            $invalidProperties[] = "invalid value for 'marketplaceId', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['marketplace_id']) < 1)) {
+            $invalidProperties[] = "invalid value for 'marketplace_id', the character length must be bigger than or equal to 1.";
         }
 
         if ($this->container['status'] === null) {
             $invalidProperties[] = "'status' can't be null";
         }
 
-        if ($this->container['badgeSet'] === null) {
-            $invalidProperties[] = "'badgeSet' can't be null";
+        if ($this->container['badge_set'] === null) {
+            $invalidProperties[] = "'badge_set' can't be null";
         }
 
-        if ($this->container['updateTime'] === null) {
-            $invalidProperties[] = "'updateTime' can't be null";
+        if ($this->container['update_time'] === null) {
+            $invalidProperties[] = "'update_time' can't be null";
         }
 
         return $invalidProperties;
@@ -294,25 +294,25 @@ public function setName(string $name) : self
     }
 
     /**
-     * Gets marketplaceId.
+     * Gets marketplace_id.
      */
     public function getMarketplaceId() : string
     {
-        return $this->container['marketplaceId'];
+        return $this->container['marketplace_id'];
     }
 
     /**
-     * Sets marketplaceId.
+     * Sets marketplace_id.
      *
-     * @param string $marketplaceId the identifier for the marketplace where the A+ Content is published
+     * @param string $marketplace_id the identifier for the marketplace where the A+ Content is published
      */
-    public function setMarketplaceId(string $marketplaceId) : self
+    public function setMarketplaceId(string $marketplace_id) : self
     {
-        if ((\mb_strlen($marketplaceId) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $marketplaceId when calling ContentMetadata., must be bigger than or equal to 1.');
+        if ((\mb_strlen($marketplace_id) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $marketplace_id when calling ContentMetadata., must be bigger than or equal to 1.');
         }
 
-        $this->container['marketplaceId'] = $marketplaceId;
+        $this->container['marketplace_id'] = $marketplace_id;
 
         return $this;
     }
@@ -338,43 +338,43 @@ public function setStatus(ContentStatus $status) : self
     }
 
     /**
-     * Gets badgeSet.
+     * Gets badge_set.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\ContentBadge[]
      */
     public function getBadgeSet() : array
     {
-        return $this->container['badgeSet'];
+        return $this->container['badge_set'];
     }
 
     /**
-     * Sets badgeSet.
+     * Sets badge_set.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentBadge[] $badgeSet the set of content badges
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentBadge[] $badge_set the set of content badges
      */
-    public function setBadgeSet(array $badgeSet) : self
+    public function setBadgeSet(array $badge_set) : self
     {
-        $this->container['badgeSet'] = $badgeSet;
+        $this->container['badge_set'] = $badge_set;
 
         return $this;
     }
 
     /**
-     * Gets updateTime.
+     * Gets update_time.
      */
     public function getUpdateTime() : \DateTime
     {
-        return $this->container['updateTime'];
+        return $this->container['update_time'];
     }
 
     /**
-     * Sets updateTime.
+     * Sets update_time.
      *
-     * @param \DateTime $updateTime the approximate age of the A+ Content document and metadata
+     * @param \DateTime $update_time the approximate age of the A+ Content document and metadata
      */
-    public function setUpdateTime(\DateTime $updateTime) : self
+    public function setUpdateTime(\DateTime $update_time) : self
     {
-        $this->container['updateTime'] = $updateTime;
+        $this->container['update_time'] = $update_time;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ContentMetadataRecord.php b/src/AmazonPHP/SellingPartner/Model/APlus/ContentMetadataRecord.php
index 8d348a744..159af932b 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ContentMetadataRecord.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ContentMetadataRecord.php
@@ -56,8 +56,8 @@ class ContentMetadataRecord implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'contentReferenceKey' => 'string',
-        'contentMetadata' => '\AmazonPHP\SellingPartner\Model\APlus\ContentMetadata',
+        'content_reference_key' => 'string',
+        'content_metadata' => '\AmazonPHP\SellingPartner\Model\APlus\ContentMetadata',
     ];
 
     /**
@@ -68,8 +68,8 @@ class ContentMetadataRecord implements \ArrayAccess, \JsonSerializable, ModelInt
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'contentReferenceKey' => null,
-        'contentMetadata' => null,
+        'content_reference_key' => null,
+        'content_metadata' => null,
     ];
 
     /**
@@ -79,8 +79,8 @@ class ContentMetadataRecord implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $attributeMap = [
-        'contentReferenceKey' => 'contentReferenceKey',
-        'contentMetadata' => 'contentMetadata',
+        'content_reference_key' => 'contentReferenceKey',
+        'content_metadata' => 'contentMetadata',
     ];
 
     /**
@@ -89,8 +89,8 @@ class ContentMetadataRecord implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $setters = [
-        'contentReferenceKey' => 'setContentReferenceKey',
-        'contentMetadata' => 'setContentMetadata',
+        'content_reference_key' => 'setContentReferenceKey',
+        'content_metadata' => 'setContentMetadata',
     ];
 
     /**
@@ -99,8 +99,8 @@ class ContentMetadataRecord implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $getters = [
-        'contentReferenceKey' => 'getContentReferenceKey',
-        'contentMetadata' => 'getContentMetadata',
+        'content_reference_key' => 'getContentReferenceKey',
+        'content_metadata' => 'getContentMetadata',
     ];
 
     /**
@@ -118,8 +118,8 @@ class ContentMetadataRecord implements \ArrayAccess, \JsonSerializable, ModelInt
      */
     public function __construct(array $data = null)
     {
-        $this->container['contentReferenceKey'] = $data['contentReferenceKey'] ?? null;
-        $this->container['contentMetadata'] = $data['contentMetadata'] ?? null;
+        $this->container['content_reference_key'] = $data['content_reference_key'] ?? null;
+        $this->container['content_metadata'] = $data['content_metadata'] ?? null;
     }
 
     /**
@@ -201,16 +201,16 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentReferenceKey'] === null) {
-            $invalidProperties[] = "'contentReferenceKey' can't be null";
+        if ($this->container['content_reference_key'] === null) {
+            $invalidProperties[] = "'content_reference_key' can't be null";
         }
 
-        if ((\mb_strlen($this->container['contentReferenceKey']) < 1)) {
-            $invalidProperties[] = "invalid value for 'contentReferenceKey', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['content_reference_key']) < 1)) {
+            $invalidProperties[] = "invalid value for 'content_reference_key', the character length must be bigger than or equal to 1.";
         }
 
-        if ($this->container['contentMetadata'] === null) {
-            $invalidProperties[] = "'contentMetadata' can't be null";
+        if ($this->container['content_metadata'] === null) {
+            $invalidProperties[] = "'content_metadata' can't be null";
         }
 
         return $invalidProperties;
@@ -228,45 +228,45 @@ public function valid() : bool
     }
 
     /**
-     * Gets contentReferenceKey.
+     * Gets content_reference_key.
      */
     public function getContentReferenceKey() : string
     {
-        return $this->container['contentReferenceKey'];
+        return $this->container['content_reference_key'];
     }
 
     /**
-     * Sets contentReferenceKey.
+     * Sets content_reference_key.
      *
-     * @param string $contentReferenceKey A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
+     * @param string $content_reference_key A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
      */
-    public function setContentReferenceKey(string $contentReferenceKey) : self
+    public function setContentReferenceKey(string $content_reference_key) : self
     {
-        if ((\mb_strlen($contentReferenceKey) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $contentReferenceKey when calling ContentMetadataRecord., must be bigger than or equal to 1.');
+        if ((\mb_strlen($content_reference_key) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $content_reference_key when calling ContentMetadataRecord., must be bigger than or equal to 1.');
         }
 
-        $this->container['contentReferenceKey'] = $contentReferenceKey;
+        $this->container['content_reference_key'] = $content_reference_key;
 
         return $this;
     }
 
     /**
-     * Gets contentMetadata.
+     * Gets content_metadata.
      */
     public function getContentMetadata() : ContentMetadata
     {
-        return $this->container['contentMetadata'];
+        return $this->container['content_metadata'];
     }
 
     /**
-     * Sets contentMetadata.
+     * Sets content_metadata.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentMetadata $contentMetadata contentMetadata
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentMetadata $content_metadata content_metadata
      */
-    public function setContentMetadata(ContentMetadata $contentMetadata) : self
+    public function setContentMetadata(ContentMetadata $content_metadata) : self
     {
-        $this->container['contentMetadata'] = $contentMetadata;
+        $this->container['content_metadata'] = $content_metadata;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ContentModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/ContentModule.php
index 4a18bb1f3..8fcd3ad43 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ContentModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ContentModule.php
@@ -56,22 +56,22 @@ class ContentModule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'contentModuleType' => '\AmazonPHP\SellingPartner\Model\APlus\ContentModuleType',
-        'standardCompanyLogo' => '\AmazonPHP\SellingPartner\Model\APlus\StandardCompanyLogoModule',
-        'standardComparisonTable' => '\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonTableModule',
-        'standardFourImageText' => '\AmazonPHP\SellingPartner\Model\APlus\StandardFourImageTextModule',
-        'standardFourImageTextQuadrant' => '\AmazonPHP\SellingPartner\Model\APlus\StandardFourImageTextQuadrantModule',
-        'standardHeaderImageText' => '\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderImageTextModule',
-        'standardImageSidebar' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageSidebarModule',
-        'standardImageTextOverlay' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextOverlayModule',
-        'standardMultipleImageText' => '\AmazonPHP\SellingPartner\Model\APlus\StandardMultipleImageTextModule',
-        'standardProductDescription' => '\AmazonPHP\SellingPartner\Model\APlus\StandardProductDescriptionModule',
-        'standardSingleImageHighlights' => '\AmazonPHP\SellingPartner\Model\APlus\StandardSingleImageHighlightsModule',
-        'standardSingleImageSpecsDetail' => '\AmazonPHP\SellingPartner\Model\APlus\StandardSingleImageSpecsDetailModule',
-        'standardSingleSideImage' => '\AmazonPHP\SellingPartner\Model\APlus\StandardSingleSideImageModule',
-        'standardTechSpecs' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTechSpecsModule',
-        'standardText' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextModule',
-        'standardThreeImageText' => '\AmazonPHP\SellingPartner\Model\APlus\StandardThreeImageTextModule',
+        'content_module_type' => '\AmazonPHP\SellingPartner\Model\APlus\ContentModuleType',
+        'standard_company_logo' => '\AmazonPHP\SellingPartner\Model\APlus\StandardCompanyLogoModule',
+        'standard_comparison_table' => '\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonTableModule',
+        'standard_four_image_text' => '\AmazonPHP\SellingPartner\Model\APlus\StandardFourImageTextModule',
+        'standard_four_image_text_quadrant' => '\AmazonPHP\SellingPartner\Model\APlus\StandardFourImageTextQuadrantModule',
+        'standard_header_image_text' => '\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderImageTextModule',
+        'standard_image_sidebar' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageSidebarModule',
+        'standard_image_text_overlay' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextOverlayModule',
+        'standard_multiple_image_text' => '\AmazonPHP\SellingPartner\Model\APlus\StandardMultipleImageTextModule',
+        'standard_product_description' => '\AmazonPHP\SellingPartner\Model\APlus\StandardProductDescriptionModule',
+        'standard_single_image_highlights' => '\AmazonPHP\SellingPartner\Model\APlus\StandardSingleImageHighlightsModule',
+        'standard_single_image_specs_detail' => '\AmazonPHP\SellingPartner\Model\APlus\StandardSingleImageSpecsDetailModule',
+        'standard_single_side_image' => '\AmazonPHP\SellingPartner\Model\APlus\StandardSingleSideImageModule',
+        'standard_tech_specs' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTechSpecsModule',
+        'standard_text' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextModule',
+        'standard_three_image_text' => '\AmazonPHP\SellingPartner\Model\APlus\StandardThreeImageTextModule',
     ];
 
     /**
@@ -82,22 +82,22 @@ class ContentModule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'contentModuleType' => null,
-        'standardCompanyLogo' => null,
-        'standardComparisonTable' => null,
-        'standardFourImageText' => null,
-        'standardFourImageTextQuadrant' => null,
-        'standardHeaderImageText' => null,
-        'standardImageSidebar' => null,
-        'standardImageTextOverlay' => null,
-        'standardMultipleImageText' => null,
-        'standardProductDescription' => null,
-        'standardSingleImageHighlights' => null,
-        'standardSingleImageSpecsDetail' => null,
-        'standardSingleSideImage' => null,
-        'standardTechSpecs' => null,
-        'standardText' => null,
-        'standardThreeImageText' => null,
+        'content_module_type' => null,
+        'standard_company_logo' => null,
+        'standard_comparison_table' => null,
+        'standard_four_image_text' => null,
+        'standard_four_image_text_quadrant' => null,
+        'standard_header_image_text' => null,
+        'standard_image_sidebar' => null,
+        'standard_image_text_overlay' => null,
+        'standard_multiple_image_text' => null,
+        'standard_product_description' => null,
+        'standard_single_image_highlights' => null,
+        'standard_single_image_specs_detail' => null,
+        'standard_single_side_image' => null,
+        'standard_tech_specs' => null,
+        'standard_text' => null,
+        'standard_three_image_text' => null,
     ];
 
     /**
@@ -107,22 +107,22 @@ class ContentModule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'contentModuleType' => 'contentModuleType',
-        'standardCompanyLogo' => 'standardCompanyLogo',
-        'standardComparisonTable' => 'standardComparisonTable',
-        'standardFourImageText' => 'standardFourImageText',
-        'standardFourImageTextQuadrant' => 'standardFourImageTextQuadrant',
-        'standardHeaderImageText' => 'standardHeaderImageText',
-        'standardImageSidebar' => 'standardImageSidebar',
-        'standardImageTextOverlay' => 'standardImageTextOverlay',
-        'standardMultipleImageText' => 'standardMultipleImageText',
-        'standardProductDescription' => 'standardProductDescription',
-        'standardSingleImageHighlights' => 'standardSingleImageHighlights',
-        'standardSingleImageSpecsDetail' => 'standardSingleImageSpecsDetail',
-        'standardSingleSideImage' => 'standardSingleSideImage',
-        'standardTechSpecs' => 'standardTechSpecs',
-        'standardText' => 'standardText',
-        'standardThreeImageText' => 'standardThreeImageText',
+        'content_module_type' => 'contentModuleType',
+        'standard_company_logo' => 'standardCompanyLogo',
+        'standard_comparison_table' => 'standardComparisonTable',
+        'standard_four_image_text' => 'standardFourImageText',
+        'standard_four_image_text_quadrant' => 'standardFourImageTextQuadrant',
+        'standard_header_image_text' => 'standardHeaderImageText',
+        'standard_image_sidebar' => 'standardImageSidebar',
+        'standard_image_text_overlay' => 'standardImageTextOverlay',
+        'standard_multiple_image_text' => 'standardMultipleImageText',
+        'standard_product_description' => 'standardProductDescription',
+        'standard_single_image_highlights' => 'standardSingleImageHighlights',
+        'standard_single_image_specs_detail' => 'standardSingleImageSpecsDetail',
+        'standard_single_side_image' => 'standardSingleSideImage',
+        'standard_tech_specs' => 'standardTechSpecs',
+        'standard_text' => 'standardText',
+        'standard_three_image_text' => 'standardThreeImageText',
     ];
 
     /**
@@ -131,22 +131,22 @@ class ContentModule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'contentModuleType' => 'setContentModuleType',
-        'standardCompanyLogo' => 'setStandardCompanyLogo',
-        'standardComparisonTable' => 'setStandardComparisonTable',
-        'standardFourImageText' => 'setStandardFourImageText',
-        'standardFourImageTextQuadrant' => 'setStandardFourImageTextQuadrant',
-        'standardHeaderImageText' => 'setStandardHeaderImageText',
-        'standardImageSidebar' => 'setStandardImageSidebar',
-        'standardImageTextOverlay' => 'setStandardImageTextOverlay',
-        'standardMultipleImageText' => 'setStandardMultipleImageText',
-        'standardProductDescription' => 'setStandardProductDescription',
-        'standardSingleImageHighlights' => 'setStandardSingleImageHighlights',
-        'standardSingleImageSpecsDetail' => 'setStandardSingleImageSpecsDetail',
-        'standardSingleSideImage' => 'setStandardSingleSideImage',
-        'standardTechSpecs' => 'setStandardTechSpecs',
-        'standardText' => 'setStandardText',
-        'standardThreeImageText' => 'setStandardThreeImageText',
+        'content_module_type' => 'setContentModuleType',
+        'standard_company_logo' => 'setStandardCompanyLogo',
+        'standard_comparison_table' => 'setStandardComparisonTable',
+        'standard_four_image_text' => 'setStandardFourImageText',
+        'standard_four_image_text_quadrant' => 'setStandardFourImageTextQuadrant',
+        'standard_header_image_text' => 'setStandardHeaderImageText',
+        'standard_image_sidebar' => 'setStandardImageSidebar',
+        'standard_image_text_overlay' => 'setStandardImageTextOverlay',
+        'standard_multiple_image_text' => 'setStandardMultipleImageText',
+        'standard_product_description' => 'setStandardProductDescription',
+        'standard_single_image_highlights' => 'setStandardSingleImageHighlights',
+        'standard_single_image_specs_detail' => 'setStandardSingleImageSpecsDetail',
+        'standard_single_side_image' => 'setStandardSingleSideImage',
+        'standard_tech_specs' => 'setStandardTechSpecs',
+        'standard_text' => 'setStandardText',
+        'standard_three_image_text' => 'setStandardThreeImageText',
     ];
 
     /**
@@ -155,22 +155,22 @@ class ContentModule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'contentModuleType' => 'getContentModuleType',
-        'standardCompanyLogo' => 'getStandardCompanyLogo',
-        'standardComparisonTable' => 'getStandardComparisonTable',
-        'standardFourImageText' => 'getStandardFourImageText',
-        'standardFourImageTextQuadrant' => 'getStandardFourImageTextQuadrant',
-        'standardHeaderImageText' => 'getStandardHeaderImageText',
-        'standardImageSidebar' => 'getStandardImageSidebar',
-        'standardImageTextOverlay' => 'getStandardImageTextOverlay',
-        'standardMultipleImageText' => 'getStandardMultipleImageText',
-        'standardProductDescription' => 'getStandardProductDescription',
-        'standardSingleImageHighlights' => 'getStandardSingleImageHighlights',
-        'standardSingleImageSpecsDetail' => 'getStandardSingleImageSpecsDetail',
-        'standardSingleSideImage' => 'getStandardSingleSideImage',
-        'standardTechSpecs' => 'getStandardTechSpecs',
-        'standardText' => 'getStandardText',
-        'standardThreeImageText' => 'getStandardThreeImageText',
+        'content_module_type' => 'getContentModuleType',
+        'standard_company_logo' => 'getStandardCompanyLogo',
+        'standard_comparison_table' => 'getStandardComparisonTable',
+        'standard_four_image_text' => 'getStandardFourImageText',
+        'standard_four_image_text_quadrant' => 'getStandardFourImageTextQuadrant',
+        'standard_header_image_text' => 'getStandardHeaderImageText',
+        'standard_image_sidebar' => 'getStandardImageSidebar',
+        'standard_image_text_overlay' => 'getStandardImageTextOverlay',
+        'standard_multiple_image_text' => 'getStandardMultipleImageText',
+        'standard_product_description' => 'getStandardProductDescription',
+        'standard_single_image_highlights' => 'getStandardSingleImageHighlights',
+        'standard_single_image_specs_detail' => 'getStandardSingleImageSpecsDetail',
+        'standard_single_side_image' => 'getStandardSingleSideImage',
+        'standard_tech_specs' => 'getStandardTechSpecs',
+        'standard_text' => 'getStandardText',
+        'standard_three_image_text' => 'getStandardThreeImageText',
     ];
 
     /**
@@ -188,22 +188,22 @@ class ContentModule implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['contentModuleType'] = $data['contentModuleType'] ?? null;
-        $this->container['standardCompanyLogo'] = $data['standardCompanyLogo'] ?? null;
-        $this->container['standardComparisonTable'] = $data['standardComparisonTable'] ?? null;
-        $this->container['standardFourImageText'] = $data['standardFourImageText'] ?? null;
-        $this->container['standardFourImageTextQuadrant'] = $data['standardFourImageTextQuadrant'] ?? null;
-        $this->container['standardHeaderImageText'] = $data['standardHeaderImageText'] ?? null;
-        $this->container['standardImageSidebar'] = $data['standardImageSidebar'] ?? null;
-        $this->container['standardImageTextOverlay'] = $data['standardImageTextOverlay'] ?? null;
-        $this->container['standardMultipleImageText'] = $data['standardMultipleImageText'] ?? null;
-        $this->container['standardProductDescription'] = $data['standardProductDescription'] ?? null;
-        $this->container['standardSingleImageHighlights'] = $data['standardSingleImageHighlights'] ?? null;
-        $this->container['standardSingleImageSpecsDetail'] = $data['standardSingleImageSpecsDetail'] ?? null;
-        $this->container['standardSingleSideImage'] = $data['standardSingleSideImage'] ?? null;
-        $this->container['standardTechSpecs'] = $data['standardTechSpecs'] ?? null;
-        $this->container['standardText'] = $data['standardText'] ?? null;
-        $this->container['standardThreeImageText'] = $data['standardThreeImageText'] ?? null;
+        $this->container['content_module_type'] = $data['content_module_type'] ?? null;
+        $this->container['standard_company_logo'] = $data['standard_company_logo'] ?? null;
+        $this->container['standard_comparison_table'] = $data['standard_comparison_table'] ?? null;
+        $this->container['standard_four_image_text'] = $data['standard_four_image_text'] ?? null;
+        $this->container['standard_four_image_text_quadrant'] = $data['standard_four_image_text_quadrant'] ?? null;
+        $this->container['standard_header_image_text'] = $data['standard_header_image_text'] ?? null;
+        $this->container['standard_image_sidebar'] = $data['standard_image_sidebar'] ?? null;
+        $this->container['standard_image_text_overlay'] = $data['standard_image_text_overlay'] ?? null;
+        $this->container['standard_multiple_image_text'] = $data['standard_multiple_image_text'] ?? null;
+        $this->container['standard_product_description'] = $data['standard_product_description'] ?? null;
+        $this->container['standard_single_image_highlights'] = $data['standard_single_image_highlights'] ?? null;
+        $this->container['standard_single_image_specs_detail'] = $data['standard_single_image_specs_detail'] ?? null;
+        $this->container['standard_single_side_image'] = $data['standard_single_side_image'] ?? null;
+        $this->container['standard_tech_specs'] = $data['standard_tech_specs'] ?? null;
+        $this->container['standard_text'] = $data['standard_text'] ?? null;
+        $this->container['standard_three_image_text'] = $data['standard_three_image_text'] ?? null;
     }
 
     /**
@@ -285,8 +285,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentModuleType'] === null) {
-            $invalidProperties[] = "'contentModuleType' can't be null";
+        if ($this->container['content_module_type'] === null) {
+            $invalidProperties[] = "'content_module_type' can't be null";
         }
 
         return $invalidProperties;
@@ -304,321 +304,321 @@ public function valid() : bool
     }
 
     /**
-     * Gets contentModuleType.
+     * Gets content_module_type.
      */
     public function getContentModuleType() : ContentModuleType
     {
-        return $this->container['contentModuleType'];
+        return $this->container['content_module_type'];
     }
 
     /**
-     * Sets contentModuleType.
+     * Sets content_module_type.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentModuleType $contentModuleType contentModuleType
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentModuleType $content_module_type content_module_type
      */
-    public function setContentModuleType(ContentModuleType $contentModuleType) : self
+    public function setContentModuleType(ContentModuleType $content_module_type) : self
     {
-        $this->container['contentModuleType'] = $contentModuleType;
+        $this->container['content_module_type'] = $content_module_type;
 
         return $this;
     }
 
     /**
-     * Gets standardCompanyLogo.
+     * Gets standard_company_logo.
      */
     public function getStandardCompanyLogo() : ?StandardCompanyLogoModule
     {
-        return $this->container['standardCompanyLogo'];
+        return $this->container['standard_company_logo'];
     }
 
     /**
-     * Sets standardCompanyLogo.
+     * Sets standard_company_logo.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardCompanyLogoModule $standardCompanyLogo standardCompanyLogo
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardCompanyLogoModule $standard_company_logo standard_company_logo
      */
-    public function setStandardCompanyLogo(?StandardCompanyLogoModule $standardCompanyLogo) : self
+    public function setStandardCompanyLogo(?StandardCompanyLogoModule $standard_company_logo) : self
     {
-        $this->container['standardCompanyLogo'] = $standardCompanyLogo;
+        $this->container['standard_company_logo'] = $standard_company_logo;
 
         return $this;
     }
 
     /**
-     * Gets standardComparisonTable.
+     * Gets standard_comparison_table.
      */
     public function getStandardComparisonTable() : ?StandardComparisonTableModule
     {
-        return $this->container['standardComparisonTable'];
+        return $this->container['standard_comparison_table'];
     }
 
     /**
-     * Sets standardComparisonTable.
+     * Sets standard_comparison_table.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonTableModule $standardComparisonTable standardComparisonTable
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonTableModule $standard_comparison_table standard_comparison_table
      */
-    public function setStandardComparisonTable(?StandardComparisonTableModule $standardComparisonTable) : self
+    public function setStandardComparisonTable(?StandardComparisonTableModule $standard_comparison_table) : self
     {
-        $this->container['standardComparisonTable'] = $standardComparisonTable;
+        $this->container['standard_comparison_table'] = $standard_comparison_table;
 
         return $this;
     }
 
     /**
-     * Gets standardFourImageText.
+     * Gets standard_four_image_text.
      */
     public function getStandardFourImageText() : ?StandardFourImageTextModule
     {
-        return $this->container['standardFourImageText'];
+        return $this->container['standard_four_image_text'];
     }
 
     /**
-     * Sets standardFourImageText.
+     * Sets standard_four_image_text.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardFourImageTextModule $standardFourImageText standardFourImageText
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardFourImageTextModule $standard_four_image_text standard_four_image_text
      */
-    public function setStandardFourImageText(?StandardFourImageTextModule $standardFourImageText) : self
+    public function setStandardFourImageText(?StandardFourImageTextModule $standard_four_image_text) : self
     {
-        $this->container['standardFourImageText'] = $standardFourImageText;
+        $this->container['standard_four_image_text'] = $standard_four_image_text;
 
         return $this;
     }
 
     /**
-     * Gets standardFourImageTextQuadrant.
+     * Gets standard_four_image_text_quadrant.
      */
     public function getStandardFourImageTextQuadrant() : ?StandardFourImageTextQuadrantModule
     {
-        return $this->container['standardFourImageTextQuadrant'];
+        return $this->container['standard_four_image_text_quadrant'];
     }
 
     /**
-     * Sets standardFourImageTextQuadrant.
+     * Sets standard_four_image_text_quadrant.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardFourImageTextQuadrantModule $standardFourImageTextQuadrant standardFourImageTextQuadrant
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardFourImageTextQuadrantModule $standard_four_image_text_quadrant standard_four_image_text_quadrant
      */
-    public function setStandardFourImageTextQuadrant(?StandardFourImageTextQuadrantModule $standardFourImageTextQuadrant) : self
+    public function setStandardFourImageTextQuadrant(?StandardFourImageTextQuadrantModule $standard_four_image_text_quadrant) : self
     {
-        $this->container['standardFourImageTextQuadrant'] = $standardFourImageTextQuadrant;
+        $this->container['standard_four_image_text_quadrant'] = $standard_four_image_text_quadrant;
 
         return $this;
     }
 
     /**
-     * Gets standardHeaderImageText.
+     * Gets standard_header_image_text.
      */
     public function getStandardHeaderImageText() : ?StandardHeaderImageTextModule
     {
-        return $this->container['standardHeaderImageText'];
+        return $this->container['standard_header_image_text'];
     }
 
     /**
-     * Sets standardHeaderImageText.
+     * Sets standard_header_image_text.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderImageTextModule $standardHeaderImageText standardHeaderImageText
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderImageTextModule $standard_header_image_text standard_header_image_text
      */
-    public function setStandardHeaderImageText(?StandardHeaderImageTextModule $standardHeaderImageText) : self
+    public function setStandardHeaderImageText(?StandardHeaderImageTextModule $standard_header_image_text) : self
     {
-        $this->container['standardHeaderImageText'] = $standardHeaderImageText;
+        $this->container['standard_header_image_text'] = $standard_header_image_text;
 
         return $this;
     }
 
     /**
-     * Gets standardImageSidebar.
+     * Gets standard_image_sidebar.
      */
     public function getStandardImageSidebar() : ?StandardImageSidebarModule
     {
-        return $this->container['standardImageSidebar'];
+        return $this->container['standard_image_sidebar'];
     }
 
     /**
-     * Sets standardImageSidebar.
+     * Sets standard_image_sidebar.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardImageSidebarModule $standardImageSidebar standardImageSidebar
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardImageSidebarModule $standard_image_sidebar standard_image_sidebar
      */
-    public function setStandardImageSidebar(?StandardImageSidebarModule $standardImageSidebar) : self
+    public function setStandardImageSidebar(?StandardImageSidebarModule $standard_image_sidebar) : self
     {
-        $this->container['standardImageSidebar'] = $standardImageSidebar;
+        $this->container['standard_image_sidebar'] = $standard_image_sidebar;
 
         return $this;
     }
 
     /**
-     * Gets standardImageTextOverlay.
+     * Gets standard_image_text_overlay.
      */
     public function getStandardImageTextOverlay() : ?StandardImageTextOverlayModule
     {
-        return $this->container['standardImageTextOverlay'];
+        return $this->container['standard_image_text_overlay'];
     }
 
     /**
-     * Sets standardImageTextOverlay.
+     * Sets standard_image_text_overlay.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextOverlayModule $standardImageTextOverlay standardImageTextOverlay
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextOverlayModule $standard_image_text_overlay standard_image_text_overlay
      */
-    public function setStandardImageTextOverlay(?StandardImageTextOverlayModule $standardImageTextOverlay) : self
+    public function setStandardImageTextOverlay(?StandardImageTextOverlayModule $standard_image_text_overlay) : self
     {
-        $this->container['standardImageTextOverlay'] = $standardImageTextOverlay;
+        $this->container['standard_image_text_overlay'] = $standard_image_text_overlay;
 
         return $this;
     }
 
     /**
-     * Gets standardMultipleImageText.
+     * Gets standard_multiple_image_text.
      */
     public function getStandardMultipleImageText() : ?StandardMultipleImageTextModule
     {
-        return $this->container['standardMultipleImageText'];
+        return $this->container['standard_multiple_image_text'];
     }
 
     /**
-     * Sets standardMultipleImageText.
+     * Sets standard_multiple_image_text.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardMultipleImageTextModule $standardMultipleImageText standardMultipleImageText
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardMultipleImageTextModule $standard_multiple_image_text standard_multiple_image_text
      */
-    public function setStandardMultipleImageText(?StandardMultipleImageTextModule $standardMultipleImageText) : self
+    public function setStandardMultipleImageText(?StandardMultipleImageTextModule $standard_multiple_image_text) : self
     {
-        $this->container['standardMultipleImageText'] = $standardMultipleImageText;
+        $this->container['standard_multiple_image_text'] = $standard_multiple_image_text;
 
         return $this;
     }
 
     /**
-     * Gets standardProductDescription.
+     * Gets standard_product_description.
      */
     public function getStandardProductDescription() : ?StandardProductDescriptionModule
     {
-        return $this->container['standardProductDescription'];
+        return $this->container['standard_product_description'];
     }
 
     /**
-     * Sets standardProductDescription.
+     * Sets standard_product_description.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardProductDescriptionModule $standardProductDescription standardProductDescription
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardProductDescriptionModule $standard_product_description standard_product_description
      */
-    public function setStandardProductDescription(?StandardProductDescriptionModule $standardProductDescription) : self
+    public function setStandardProductDescription(?StandardProductDescriptionModule $standard_product_description) : self
     {
-        $this->container['standardProductDescription'] = $standardProductDescription;
+        $this->container['standard_product_description'] = $standard_product_description;
 
         return $this;
     }
 
     /**
-     * Gets standardSingleImageHighlights.
+     * Gets standard_single_image_highlights.
      */
     public function getStandardSingleImageHighlights() : ?StandardSingleImageHighlightsModule
     {
-        return $this->container['standardSingleImageHighlights'];
+        return $this->container['standard_single_image_highlights'];
     }
 
     /**
-     * Sets standardSingleImageHighlights.
+     * Sets standard_single_image_highlights.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardSingleImageHighlightsModule $standardSingleImageHighlights standardSingleImageHighlights
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardSingleImageHighlightsModule $standard_single_image_highlights standard_single_image_highlights
      */
-    public function setStandardSingleImageHighlights(?StandardSingleImageHighlightsModule $standardSingleImageHighlights) : self
+    public function setStandardSingleImageHighlights(?StandardSingleImageHighlightsModule $standard_single_image_highlights) : self
     {
-        $this->container['standardSingleImageHighlights'] = $standardSingleImageHighlights;
+        $this->container['standard_single_image_highlights'] = $standard_single_image_highlights;
 
         return $this;
     }
 
     /**
-     * Gets standardSingleImageSpecsDetail.
+     * Gets standard_single_image_specs_detail.
      */
     public function getStandardSingleImageSpecsDetail() : ?StandardSingleImageSpecsDetailModule
     {
-        return $this->container['standardSingleImageSpecsDetail'];
+        return $this->container['standard_single_image_specs_detail'];
     }
 
     /**
-     * Sets standardSingleImageSpecsDetail.
+     * Sets standard_single_image_specs_detail.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardSingleImageSpecsDetailModule $standardSingleImageSpecsDetail standardSingleImageSpecsDetail
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardSingleImageSpecsDetailModule $standard_single_image_specs_detail standard_single_image_specs_detail
      */
-    public function setStandardSingleImageSpecsDetail(?StandardSingleImageSpecsDetailModule $standardSingleImageSpecsDetail) : self
+    public function setStandardSingleImageSpecsDetail(?StandardSingleImageSpecsDetailModule $standard_single_image_specs_detail) : self
     {
-        $this->container['standardSingleImageSpecsDetail'] = $standardSingleImageSpecsDetail;
+        $this->container['standard_single_image_specs_detail'] = $standard_single_image_specs_detail;
 
         return $this;
     }
 
     /**
-     * Gets standardSingleSideImage.
+     * Gets standard_single_side_image.
      */
     public function getStandardSingleSideImage() : ?StandardSingleSideImageModule
     {
-        return $this->container['standardSingleSideImage'];
+        return $this->container['standard_single_side_image'];
     }
 
     /**
-     * Sets standardSingleSideImage.
+     * Sets standard_single_side_image.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardSingleSideImageModule $standardSingleSideImage standardSingleSideImage
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardSingleSideImageModule $standard_single_side_image standard_single_side_image
      */
-    public function setStandardSingleSideImage(?StandardSingleSideImageModule $standardSingleSideImage) : self
+    public function setStandardSingleSideImage(?StandardSingleSideImageModule $standard_single_side_image) : self
     {
-        $this->container['standardSingleSideImage'] = $standardSingleSideImage;
+        $this->container['standard_single_side_image'] = $standard_single_side_image;
 
         return $this;
     }
 
     /**
-     * Gets standardTechSpecs.
+     * Gets standard_tech_specs.
      */
     public function getStandardTechSpecs() : ?StandardTechSpecsModule
     {
-        return $this->container['standardTechSpecs'];
+        return $this->container['standard_tech_specs'];
     }
 
     /**
-     * Sets standardTechSpecs.
+     * Sets standard_tech_specs.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTechSpecsModule $standardTechSpecs standardTechSpecs
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTechSpecsModule $standard_tech_specs standard_tech_specs
      */
-    public function setStandardTechSpecs(?StandardTechSpecsModule $standardTechSpecs) : self
+    public function setStandardTechSpecs(?StandardTechSpecsModule $standard_tech_specs) : self
     {
-        $this->container['standardTechSpecs'] = $standardTechSpecs;
+        $this->container['standard_tech_specs'] = $standard_tech_specs;
 
         return $this;
     }
 
     /**
-     * Gets standardText.
+     * Gets standard_text.
      */
     public function getStandardText() : ?StandardTextModule
     {
-        return $this->container['standardText'];
+        return $this->container['standard_text'];
     }
 
     /**
-     * Sets standardText.
+     * Sets standard_text.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextModule $standardText standardText
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextModule $standard_text standard_text
      */
-    public function setStandardText(?StandardTextModule $standardText) : self
+    public function setStandardText(?StandardTextModule $standard_text) : self
     {
-        $this->container['standardText'] = $standardText;
+        $this->container['standard_text'] = $standard_text;
 
         return $this;
     }
 
     /**
-     * Gets standardThreeImageText.
+     * Gets standard_three_image_text.
      */
     public function getStandardThreeImageText() : ?StandardThreeImageTextModule
     {
-        return $this->container['standardThreeImageText'];
+        return $this->container['standard_three_image_text'];
     }
 
     /**
-     * Sets standardThreeImageText.
+     * Sets standard_three_image_text.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardThreeImageTextModule $standardThreeImageText standardThreeImageText
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardThreeImageTextModule $standard_three_image_text standard_three_image_text
      */
-    public function setStandardThreeImageText(?StandardThreeImageTextModule $standardThreeImageText) : self
+    public function setStandardThreeImageText(?StandardThreeImageTextModule $standard_three_image_text) : self
     {
-        $this->container['standardThreeImageText'] = $standardThreeImageText;
+        $this->container['standard_three_image_text'] = $standard_three_image_text;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ContentRecord.php b/src/AmazonPHP/SellingPartner/Model/APlus/ContentRecord.php
index 36d7cce10..f18e082db 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ContentRecord.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ContentRecord.php
@@ -56,9 +56,9 @@ class ContentRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'contentReferenceKey' => 'string',
-        'contentMetadata' => '\AmazonPHP\SellingPartner\Model\APlus\ContentMetadata',
-        'contentDocument' => '\AmazonPHP\SellingPartner\Model\APlus\ContentDocument',
+        'content_reference_key' => 'string',
+        'content_metadata' => '\AmazonPHP\SellingPartner\Model\APlus\ContentMetadata',
+        'content_document' => '\AmazonPHP\SellingPartner\Model\APlus\ContentDocument',
     ];
 
     /**
@@ -69,9 +69,9 @@ class ContentRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'contentReferenceKey' => null,
-        'contentMetadata' => null,
-        'contentDocument' => null,
+        'content_reference_key' => null,
+        'content_metadata' => null,
+        'content_document' => null,
     ];
 
     /**
@@ -81,9 +81,9 @@ class ContentRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'contentReferenceKey' => 'contentReferenceKey',
-        'contentMetadata' => 'contentMetadata',
-        'contentDocument' => 'contentDocument',
+        'content_reference_key' => 'contentReferenceKey',
+        'content_metadata' => 'contentMetadata',
+        'content_document' => 'contentDocument',
     ];
 
     /**
@@ -92,9 +92,9 @@ class ContentRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'contentReferenceKey' => 'setContentReferenceKey',
-        'contentMetadata' => 'setContentMetadata',
-        'contentDocument' => 'setContentDocument',
+        'content_reference_key' => 'setContentReferenceKey',
+        'content_metadata' => 'setContentMetadata',
+        'content_document' => 'setContentDocument',
     ];
 
     /**
@@ -103,9 +103,9 @@ class ContentRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'contentReferenceKey' => 'getContentReferenceKey',
-        'contentMetadata' => 'getContentMetadata',
-        'contentDocument' => 'getContentDocument',
+        'content_reference_key' => 'getContentReferenceKey',
+        'content_metadata' => 'getContentMetadata',
+        'content_document' => 'getContentDocument',
     ];
 
     /**
@@ -123,9 +123,9 @@ class ContentRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['contentReferenceKey'] = $data['contentReferenceKey'] ?? null;
-        $this->container['contentMetadata'] = $data['contentMetadata'] ?? null;
-        $this->container['contentDocument'] = $data['contentDocument'] ?? null;
+        $this->container['content_reference_key'] = $data['content_reference_key'] ?? null;
+        $this->container['content_metadata'] = $data['content_metadata'] ?? null;
+        $this->container['content_document'] = $data['content_document'] ?? null;
     }
 
     /**
@@ -207,12 +207,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentReferenceKey'] === null) {
-            $invalidProperties[] = "'contentReferenceKey' can't be null";
+        if ($this->container['content_reference_key'] === null) {
+            $invalidProperties[] = "'content_reference_key' can't be null";
         }
 
-        if ((\mb_strlen($this->container['contentReferenceKey']) < 1)) {
-            $invalidProperties[] = "invalid value for 'contentReferenceKey', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['content_reference_key']) < 1)) {
+            $invalidProperties[] = "invalid value for 'content_reference_key', the character length must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -230,65 +230,65 @@ public function valid() : bool
     }
 
     /**
-     * Gets contentReferenceKey.
+     * Gets content_reference_key.
      */
     public function getContentReferenceKey() : string
     {
-        return $this->container['contentReferenceKey'];
+        return $this->container['content_reference_key'];
     }
 
     /**
-     * Sets contentReferenceKey.
+     * Sets content_reference_key.
      *
-     * @param string $contentReferenceKey A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
+     * @param string $content_reference_key A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
      */
-    public function setContentReferenceKey(string $contentReferenceKey) : self
+    public function setContentReferenceKey(string $content_reference_key) : self
     {
-        if ((\mb_strlen($contentReferenceKey) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $contentReferenceKey when calling ContentRecord., must be bigger than or equal to 1.');
+        if ((\mb_strlen($content_reference_key) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $content_reference_key when calling ContentRecord., must be bigger than or equal to 1.');
         }
 
-        $this->container['contentReferenceKey'] = $contentReferenceKey;
+        $this->container['content_reference_key'] = $content_reference_key;
 
         return $this;
     }
 
     /**
-     * Gets contentMetadata.
+     * Gets content_metadata.
      */
     public function getContentMetadata() : ?ContentMetadata
     {
-        return $this->container['contentMetadata'];
+        return $this->container['content_metadata'];
     }
 
     /**
-     * Sets contentMetadata.
+     * Sets content_metadata.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\ContentMetadata $contentMetadata contentMetadata
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\ContentMetadata $content_metadata content_metadata
      */
-    public function setContentMetadata(?ContentMetadata $contentMetadata) : self
+    public function setContentMetadata(?ContentMetadata $content_metadata) : self
     {
-        $this->container['contentMetadata'] = $contentMetadata;
+        $this->container['content_metadata'] = $content_metadata;
 
         return $this;
     }
 
     /**
-     * Gets contentDocument.
+     * Gets content_document.
      */
     public function getContentDocument() : ?ContentDocument
     {
-        return $this->container['contentDocument'];
+        return $this->container['content_document'];
     }
 
     /**
-     * Sets contentDocument.
+     * Sets content_document.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\ContentDocument $contentDocument contentDocument
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\ContentDocument $content_document content_document
      */
-    public function setContentDocument(?ContentDocument $contentDocument) : self
+    public function setContentDocument(?ContentDocument $content_document) : self
     {
-        $this->container['contentDocument'] = $contentDocument;
+        $this->container['content_document'] = $content_document;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/GetContentDocumentResponse.php b/src/AmazonPHP/SellingPartner/Model/APlus/GetContentDocumentResponse.php
index cfe15bc2d..ccf437dc8 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/GetContentDocumentResponse.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/GetContentDocumentResponse.php
@@ -57,7 +57,7 @@ class GetContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $openAPITypes = [
         'warnings' => '\AmazonPHP\SellingPartner\Model\APlus\Error[]',
-        'contentRecord' => '\AmazonPHP\SellingPartner\Model\APlus\ContentRecord',
+        'content_record' => '\AmazonPHP\SellingPartner\Model\APlus\ContentRecord',
     ];
 
     /**
@@ -69,7 +69,7 @@ class GetContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $openAPIFormats = [
         'warnings' => null,
-        'contentRecord' => null,
+        'content_record' => null,
     ];
 
     /**
@@ -80,7 +80,7 @@ class GetContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $attributeMap = [
         'warnings' => 'warnings',
-        'contentRecord' => 'contentRecord',
+        'content_record' => 'contentRecord',
     ];
 
     /**
@@ -90,7 +90,7 @@ class GetContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $setters = [
         'warnings' => 'setWarnings',
-        'contentRecord' => 'setContentRecord',
+        'content_record' => 'setContentRecord',
     ];
 
     /**
@@ -100,7 +100,7 @@ class GetContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $getters = [
         'warnings' => 'getWarnings',
-        'contentRecord' => 'getContentRecord',
+        'content_record' => 'getContentRecord',
     ];
 
     /**
@@ -119,7 +119,7 @@ class GetContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mod
     public function __construct(array $data = null)
     {
         $this->container['warnings'] = $data['warnings'] ?? null;
-        $this->container['contentRecord'] = $data['contentRecord'] ?? null;
+        $this->container['content_record'] = $data['content_record'] ?? null;
     }
 
     /**
@@ -201,8 +201,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentRecord'] === null) {
-            $invalidProperties[] = "'contentRecord' can't be null";
+        if ($this->container['content_record'] === null) {
+            $invalidProperties[] = "'content_record' can't be null";
         }
 
         return $invalidProperties;
@@ -242,21 +242,21 @@ public function setWarnings(?array $warnings) : self
     }
 
     /**
-     * Gets contentRecord.
+     * Gets content_record.
      */
     public function getContentRecord() : ContentRecord
     {
-        return $this->container['contentRecord'];
+        return $this->container['content_record'];
     }
 
     /**
-     * Sets contentRecord.
+     * Sets content_record.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentRecord $contentRecord contentRecord
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentRecord $content_record content_record
      */
-    public function setContentRecord(ContentRecord $contentRecord) : self
+    public function setContentRecord(ContentRecord $content_record) : self
     {
-        $this->container['contentRecord'] = $contentRecord;
+        $this->container['content_record'] = $content_record;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/GetContentDocumentResponseAllOf.php b/src/AmazonPHP/SellingPartner/Model/APlus/GetContentDocumentResponseAllOf.php
index 703780511..1b8398dac 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/GetContentDocumentResponseAllOf.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/GetContentDocumentResponseAllOf.php
@@ -56,7 +56,7 @@ class GetContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializable
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'contentRecord' => '\AmazonPHP\SellingPartner\Model\APlus\ContentRecord',
+        'content_record' => '\AmazonPHP\SellingPartner\Model\APlus\ContentRecord',
     ];
 
     /**
@@ -67,7 +67,7 @@ class GetContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializable
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'contentRecord' => null,
+        'content_record' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class GetContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializable
      * @var string[]
      */
     protected static array $attributeMap = [
-        'contentRecord' => 'contentRecord',
+        'content_record' => 'contentRecord',
     ];
 
     /**
@@ -86,7 +86,7 @@ class GetContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializable
      * @var string[]
      */
     protected static array $setters = [
-        'contentRecord' => 'setContentRecord',
+        'content_record' => 'setContentRecord',
     ];
 
     /**
@@ -95,7 +95,7 @@ class GetContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializable
      * @var string[]
      */
     protected static array $getters = [
-        'contentRecord' => 'getContentRecord',
+        'content_record' => 'getContentRecord',
     ];
 
     /**
@@ -113,7 +113,7 @@ class GetContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializable
      */
     public function __construct(array $data = null)
     {
-        $this->container['contentRecord'] = $data['contentRecord'] ?? null;
+        $this->container['content_record'] = $data['content_record'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentRecord'] === null) {
-            $invalidProperties[] = "'contentRecord' can't be null";
+        if ($this->container['content_record'] === null) {
+            $invalidProperties[] = "'content_record' can't be null";
         }
 
         return $invalidProperties;
@@ -214,21 +214,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets contentRecord.
+     * Gets content_record.
      */
     public function getContentRecord() : ContentRecord
     {
-        return $this->container['contentRecord'];
+        return $this->container['content_record'];
     }
 
     /**
-     * Sets contentRecord.
+     * Sets content_record.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentRecord $contentRecord contentRecord
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentRecord $content_record content_record
      */
-    public function setContentRecord(ContentRecord $contentRecord) : self
+    public function setContentRecord(ContentRecord $content_record) : self
     {
-        $this->container['contentRecord'] = $contentRecord;
+        $this->container['content_record'] = $content_record;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ImageComponent.php b/src/AmazonPHP/SellingPartner/Model/APlus/ImageComponent.php
index b80fe2caf..268723755 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ImageComponent.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ImageComponent.php
@@ -56,9 +56,9 @@ class ImageComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'uploadDestinationId' => 'string',
-        'imageCropSpecification' => '\AmazonPHP\SellingPartner\Model\APlus\ImageCropSpecification',
-        'altText' => 'string',
+        'upload_destination_id' => 'string',
+        'image_crop_specification' => '\AmazonPHP\SellingPartner\Model\APlus\ImageCropSpecification',
+        'alt_text' => 'string',
     ];
 
     /**
@@ -69,9 +69,9 @@ class ImageComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'uploadDestinationId' => null,
-        'imageCropSpecification' => null,
-        'altText' => null,
+        'upload_destination_id' => null,
+        'image_crop_specification' => null,
+        'alt_text' => null,
     ];
 
     /**
@@ -81,9 +81,9 @@ class ImageComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'uploadDestinationId' => 'uploadDestinationId',
-        'imageCropSpecification' => 'imageCropSpecification',
-        'altText' => 'altText',
+        'upload_destination_id' => 'uploadDestinationId',
+        'image_crop_specification' => 'imageCropSpecification',
+        'alt_text' => 'altText',
     ];
 
     /**
@@ -92,9 +92,9 @@ class ImageComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'uploadDestinationId' => 'setUploadDestinationId',
-        'imageCropSpecification' => 'setImageCropSpecification',
-        'altText' => 'setAltText',
+        'upload_destination_id' => 'setUploadDestinationId',
+        'image_crop_specification' => 'setImageCropSpecification',
+        'alt_text' => 'setAltText',
     ];
 
     /**
@@ -103,9 +103,9 @@ class ImageComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'uploadDestinationId' => 'getUploadDestinationId',
-        'imageCropSpecification' => 'getImageCropSpecification',
-        'altText' => 'getAltText',
+        'upload_destination_id' => 'getUploadDestinationId',
+        'image_crop_specification' => 'getImageCropSpecification',
+        'alt_text' => 'getAltText',
     ];
 
     /**
@@ -123,9 +123,9 @@ class ImageComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['uploadDestinationId'] = $data['uploadDestinationId'] ?? null;
-        $this->container['imageCropSpecification'] = $data['imageCropSpecification'] ?? null;
-        $this->container['altText'] = $data['altText'] ?? null;
+        $this->container['upload_destination_id'] = $data['upload_destination_id'] ?? null;
+        $this->container['image_crop_specification'] = $data['image_crop_specification'] ?? null;
+        $this->container['alt_text'] = $data['alt_text'] ?? null;
     }
 
     /**
@@ -207,28 +207,28 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['uploadDestinationId'] === null) {
-            $invalidProperties[] = "'uploadDestinationId' can't be null";
+        if ($this->container['upload_destination_id'] === null) {
+            $invalidProperties[] = "'upload_destination_id' can't be null";
         }
 
-        if ((\mb_strlen($this->container['uploadDestinationId']) < 1)) {
-            $invalidProperties[] = "invalid value for 'uploadDestinationId', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['upload_destination_id']) < 1)) {
+            $invalidProperties[] = "invalid value for 'upload_destination_id', the character length must be bigger than or equal to 1.";
         }
 
-        if ($this->container['imageCropSpecification'] === null) {
-            $invalidProperties[] = "'imageCropSpecification' can't be null";
+        if ($this->container['image_crop_specification'] === null) {
+            $invalidProperties[] = "'image_crop_specification' can't be null";
         }
 
-        if ($this->container['altText'] === null) {
-            $invalidProperties[] = "'altText' can't be null";
+        if ($this->container['alt_text'] === null) {
+            $invalidProperties[] = "'alt_text' can't be null";
         }
 
-        if ((\mb_strlen($this->container['altText']) > 100)) {
-            $invalidProperties[] = "invalid value for 'altText', the character length must be smaller than or equal to 100.";
+        if ((\mb_strlen($this->container['alt_text']) > 100)) {
+            $invalidProperties[] = "invalid value for 'alt_text', the character length must be smaller than or equal to 100.";
         }
 
-        if ((\mb_strlen($this->container['altText']) < 1)) {
-            $invalidProperties[] = "invalid value for 'altText', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['alt_text']) < 1)) {
+            $invalidProperties[] = "invalid value for 'alt_text', the character length must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -246,73 +246,73 @@ public function valid() : bool
     }
 
     /**
-     * Gets uploadDestinationId.
+     * Gets upload_destination_id.
      */
     public function getUploadDestinationId() : string
     {
-        return $this->container['uploadDestinationId'];
+        return $this->container['upload_destination_id'];
     }
 
     /**
-     * Sets uploadDestinationId.
+     * Sets upload_destination_id.
      *
-     * @param string $uploadDestinationId this identifier is provided by the Selling Partner API for Uploads
+     * @param string $upload_destination_id this identifier is provided by the Selling Partner API for Uploads
      */
-    public function setUploadDestinationId(string $uploadDestinationId) : self
+    public function setUploadDestinationId(string $upload_destination_id) : self
     {
-        if ((\mb_strlen($uploadDestinationId) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $uploadDestinationId when calling ImageComponent., must be bigger than or equal to 1.');
+        if ((\mb_strlen($upload_destination_id) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $upload_destination_id when calling ImageComponent., must be bigger than or equal to 1.');
         }
 
-        $this->container['uploadDestinationId'] = $uploadDestinationId;
+        $this->container['upload_destination_id'] = $upload_destination_id;
 
         return $this;
     }
 
     /**
-     * Gets imageCropSpecification.
+     * Gets image_crop_specification.
      */
     public function getImageCropSpecification() : ImageCropSpecification
     {
-        return $this->container['imageCropSpecification'];
+        return $this->container['image_crop_specification'];
     }
 
     /**
-     * Sets imageCropSpecification.
+     * Sets image_crop_specification.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ImageCropSpecification $imageCropSpecification imageCropSpecification
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ImageCropSpecification $image_crop_specification image_crop_specification
      */
-    public function setImageCropSpecification(ImageCropSpecification $imageCropSpecification) : self
+    public function setImageCropSpecification(ImageCropSpecification $image_crop_specification) : self
     {
-        $this->container['imageCropSpecification'] = $imageCropSpecification;
+        $this->container['image_crop_specification'] = $image_crop_specification;
 
         return $this;
     }
 
     /**
-     * Gets altText.
+     * Gets alt_text.
      */
     public function getAltText() : string
     {
-        return $this->container['altText'];
+        return $this->container['alt_text'];
     }
 
     /**
-     * Sets altText.
+     * Sets alt_text.
      *
-     * @param string $altText the alternative text for the image
+     * @param string $alt_text the alternative text for the image
      */
-    public function setAltText(string $altText) : self
+    public function setAltText(string $alt_text) : self
     {
-        if ((\mb_strlen($altText) > 100)) {
-            throw new \InvalidArgumentException('invalid length for $altText when calling ImageComponent., must be smaller than or equal to 100.');
+        if ((\mb_strlen($alt_text) > 100)) {
+            throw new \InvalidArgumentException('invalid length for $alt_text when calling ImageComponent., must be smaller than or equal to 100.');
         }
 
-        if ((\mb_strlen($altText) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $altText when calling ImageComponent., must be bigger than or equal to 1.');
+        if ((\mb_strlen($alt_text) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $alt_text when calling ImageComponent., must be bigger than or equal to 1.');
         }
 
-        $this->container['altText'] = $altText;
+        $this->container['alt_text'] = $alt_text;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ListContentDocumentAsinRelationsResponse.php b/src/AmazonPHP/SellingPartner/Model/APlus/ListContentDocumentAsinRelationsResponse.php
index 74ebf5f53..784d7a022 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ListContentDocumentAsinRelationsResponse.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ListContentDocumentAsinRelationsResponse.php
@@ -57,8 +57,8 @@ class ListContentDocumentAsinRelationsResponse implements \ArrayAccess, \JsonSer
      */
     protected static array $openAPITypes = [
         'warnings' => '\AmazonPHP\SellingPartner\Model\APlus\Error[]',
-        'nextPageToken' => 'string',
-        'asinMetadataSet' => '\AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[]',
+        'next_page_token' => 'string',
+        'asin_metadata_set' => '\AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[]',
     ];
 
     /**
@@ -70,8 +70,8 @@ class ListContentDocumentAsinRelationsResponse implements \ArrayAccess, \JsonSer
      */
     protected static array $openAPIFormats = [
         'warnings' => null,
-        'nextPageToken' => null,
-        'asinMetadataSet' => null,
+        'next_page_token' => null,
+        'asin_metadata_set' => null,
     ];
 
     /**
@@ -82,8 +82,8 @@ class ListContentDocumentAsinRelationsResponse implements \ArrayAccess, \JsonSer
      */
     protected static array $attributeMap = [
         'warnings' => 'warnings',
-        'nextPageToken' => 'nextPageToken',
-        'asinMetadataSet' => 'asinMetadataSet',
+        'next_page_token' => 'nextPageToken',
+        'asin_metadata_set' => 'asinMetadataSet',
     ];
 
     /**
@@ -93,8 +93,8 @@ class ListContentDocumentAsinRelationsResponse implements \ArrayAccess, \JsonSer
      */
     protected static array $setters = [
         'warnings' => 'setWarnings',
-        'nextPageToken' => 'setNextPageToken',
-        'asinMetadataSet' => 'setAsinMetadataSet',
+        'next_page_token' => 'setNextPageToken',
+        'asin_metadata_set' => 'setAsinMetadataSet',
     ];
 
     /**
@@ -104,8 +104,8 @@ class ListContentDocumentAsinRelationsResponse implements \ArrayAccess, \JsonSer
      */
     protected static array $getters = [
         'warnings' => 'getWarnings',
-        'nextPageToken' => 'getNextPageToken',
-        'asinMetadataSet' => 'getAsinMetadataSet',
+        'next_page_token' => 'getNextPageToken',
+        'asin_metadata_set' => 'getAsinMetadataSet',
     ];
 
     /**
@@ -124,8 +124,8 @@ class ListContentDocumentAsinRelationsResponse implements \ArrayAccess, \JsonSer
     public function __construct(array $data = null)
     {
         $this->container['warnings'] = $data['warnings'] ?? null;
-        $this->container['nextPageToken'] = $data['nextPageToken'] ?? null;
-        $this->container['asinMetadataSet'] = $data['asinMetadataSet'] ?? null;
+        $this->container['next_page_token'] = $data['next_page_token'] ?? null;
+        $this->container['asin_metadata_set'] = $data['asin_metadata_set'] ?? null;
     }
 
     /**
@@ -207,12 +207,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if (null !== $this->container['nextPageToken'] && (\mb_strlen($this->container['nextPageToken']) < 1)) {
-            $invalidProperties[] = "invalid value for 'nextPageToken', the character length must be bigger than or equal to 1.";
+        if (null !== $this->container['next_page_token'] && (\mb_strlen($this->container['next_page_token']) < 1)) {
+            $invalidProperties[] = "invalid value for 'next_page_token', the character length must be bigger than or equal to 1.";
         }
 
-        if ($this->container['asinMetadataSet'] === null) {
-            $invalidProperties[] = "'asinMetadataSet' can't be null";
+        if ($this->container['asin_metadata_set'] === null) {
+            $invalidProperties[] = "'asin_metadata_set' can't be null";
         }
 
         return $invalidProperties;
@@ -252,47 +252,47 @@ public function setWarnings(?array $warnings) : self
     }
 
     /**
-     * Gets nextPageToken.
+     * Gets next_page_token.
      */
     public function getNextPageToken() : ?string
     {
-        return $this->container['nextPageToken'];
+        return $this->container['next_page_token'];
     }
 
     /**
-     * Sets nextPageToken.
+     * Sets next_page_token.
      *
-     * @param null|string $nextPageToken A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
+     * @param null|string $next_page_token A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
      */
-    public function setNextPageToken(?string $nextPageToken) : self
+    public function setNextPageToken(?string $next_page_token) : self
     {
-        if (null !== $nextPageToken && (\mb_strlen($nextPageToken) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $nextPageToken when calling ListContentDocumentAsinRelationsResponse., must be bigger than or equal to 1.');
+        if (null !== $next_page_token && (\mb_strlen($next_page_token) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $next_page_token when calling ListContentDocumentAsinRelationsResponse., must be bigger than or equal to 1.');
         }
 
-        $this->container['nextPageToken'] = $nextPageToken;
+        $this->container['next_page_token'] = $next_page_token;
 
         return $this;
     }
 
     /**
-     * Gets asinMetadataSet.
+     * Gets asin_metadata_set.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[]
      */
     public function getAsinMetadataSet() : array
     {
-        return $this->container['asinMetadataSet'];
+        return $this->container['asin_metadata_set'];
     }
 
     /**
-     * Sets asinMetadataSet.
+     * Sets asin_metadata_set.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[] $asinMetadataSet the set of ASIN metadata
+     * @param \AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[] $asin_metadata_set the set of ASIN metadata
      */
-    public function setAsinMetadataSet(array $asinMetadataSet) : self
+    public function setAsinMetadataSet(array $asin_metadata_set) : self
     {
-        $this->container['asinMetadataSet'] = $asinMetadataSet;
+        $this->container['asin_metadata_set'] = $asin_metadata_set;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ListContentDocumentAsinRelationsResponseAllOf.php b/src/AmazonPHP/SellingPartner/Model/APlus/ListContentDocumentAsinRelationsResponseAllOf.php
index 54a66e44b..284ce37ab 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ListContentDocumentAsinRelationsResponseAllOf.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ListContentDocumentAsinRelationsResponseAllOf.php
@@ -56,7 +56,7 @@ class ListContentDocumentAsinRelationsResponseAllOf implements \ArrayAccess, \Js
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'asinMetadataSet' => '\AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[]',
+        'asin_metadata_set' => '\AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[]',
     ];
 
     /**
@@ -67,7 +67,7 @@ class ListContentDocumentAsinRelationsResponseAllOf implements \ArrayAccess, \Js
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'asinMetadataSet' => null,
+        'asin_metadata_set' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class ListContentDocumentAsinRelationsResponseAllOf implements \ArrayAccess, \Js
      * @var string[]
      */
     protected static array $attributeMap = [
-        'asinMetadataSet' => 'asinMetadataSet',
+        'asin_metadata_set' => 'asinMetadataSet',
     ];
 
     /**
@@ -86,7 +86,7 @@ class ListContentDocumentAsinRelationsResponseAllOf implements \ArrayAccess, \Js
      * @var string[]
      */
     protected static array $setters = [
-        'asinMetadataSet' => 'setAsinMetadataSet',
+        'asin_metadata_set' => 'setAsinMetadataSet',
     ];
 
     /**
@@ -95,7 +95,7 @@ class ListContentDocumentAsinRelationsResponseAllOf implements \ArrayAccess, \Js
      * @var string[]
      */
     protected static array $getters = [
-        'asinMetadataSet' => 'getAsinMetadataSet',
+        'asin_metadata_set' => 'getAsinMetadataSet',
     ];
 
     /**
@@ -113,7 +113,7 @@ class ListContentDocumentAsinRelationsResponseAllOf implements \ArrayAccess, \Js
      */
     public function __construct(array $data = null)
     {
-        $this->container['asinMetadataSet'] = $data['asinMetadataSet'] ?? null;
+        $this->container['asin_metadata_set'] = $data['asin_metadata_set'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['asinMetadataSet'] === null) {
-            $invalidProperties[] = "'asinMetadataSet' can't be null";
+        if ($this->container['asin_metadata_set'] === null) {
+            $invalidProperties[] = "'asin_metadata_set' can't be null";
         }
 
         return $invalidProperties;
@@ -214,23 +214,23 @@ public function valid() : bool
     }
 
     /**
-     * Gets asinMetadataSet.
+     * Gets asin_metadata_set.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[]
      */
     public function getAsinMetadataSet() : array
     {
-        return $this->container['asinMetadataSet'];
+        return $this->container['asin_metadata_set'];
     }
 
     /**
-     * Sets asinMetadataSet.
+     * Sets asin_metadata_set.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[] $asinMetadataSet the set of ASIN metadata
+     * @param \AmazonPHP\SellingPartner\Model\APlus\AsinMetadata[] $asin_metadata_set the set of ASIN metadata
      */
-    public function setAsinMetadataSet(array $asinMetadataSet) : self
+    public function setAsinMetadataSet(array $asin_metadata_set) : self
     {
-        $this->container['asinMetadataSet'] = $asinMetadataSet;
+        $this->container['asin_metadata_set'] = $asin_metadata_set;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/ParagraphComponent.php b/src/AmazonPHP/SellingPartner/Model/APlus/ParagraphComponent.php
index 8b789f11b..72629e124 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/ParagraphComponent.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/ParagraphComponent.php
@@ -56,7 +56,7 @@ class ParagraphComponent implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'textList' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent[]',
+        'text_list' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent[]',
     ];
 
     /**
@@ -67,7 +67,7 @@ class ParagraphComponent implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'textList' => null,
+        'text_list' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class ParagraphComponent implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $attributeMap = [
-        'textList' => 'textList',
+        'text_list' => 'textList',
     ];
 
     /**
@@ -86,7 +86,7 @@ class ParagraphComponent implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $setters = [
-        'textList' => 'setTextList',
+        'text_list' => 'setTextList',
     ];
 
     /**
@@ -95,7 +95,7 @@ class ParagraphComponent implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $getters = [
-        'textList' => 'getTextList',
+        'text_list' => 'getTextList',
     ];
 
     /**
@@ -113,7 +113,7 @@ class ParagraphComponent implements \ArrayAccess, \JsonSerializable, ModelInterf
      */
     public function __construct(array $data = null)
     {
-        $this->container['textList'] = $data['textList'] ?? null;
+        $this->container['text_list'] = $data['text_list'] ?? null;
     }
 
     /**
@@ -195,16 +195,16 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['textList'] === null) {
-            $invalidProperties[] = "'textList' can't be null";
+        if ($this->container['text_list'] === null) {
+            $invalidProperties[] = "'text_list' can't be null";
         }
 
-        if ((\count($this->container['textList']) > 100)) {
-            $invalidProperties[] = "invalid value for 'textList', number of items must be less than or equal to 100.";
+        if ((\count($this->container['text_list']) > 100)) {
+            $invalidProperties[] = "invalid value for 'text_list', number of items must be less than or equal to 100.";
         }
 
-        if ((\count($this->container['textList']) < 1)) {
-            $invalidProperties[] = "invalid value for 'textList', number of items must be greater than or equal to 1.";
+        if ((\count($this->container['text_list']) < 1)) {
+            $invalidProperties[] = "invalid value for 'text_list', number of items must be greater than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -222,30 +222,30 @@ public function valid() : bool
     }
 
     /**
-     * Gets textList.
+     * Gets text_list.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\TextComponent[]
      */
     public function getTextList() : array
     {
-        return $this->container['textList'];
+        return $this->container['text_list'];
     }
 
     /**
-     * Sets textList.
+     * Sets text_list.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\TextComponent[] $textList textList
+     * @param \AmazonPHP\SellingPartner\Model\APlus\TextComponent[] $text_list text_list
      */
-    public function setTextList(array $textList) : self
+    public function setTextList(array $text_list) : self
     {
-        if ((\count($textList) > 100)) {
-            throw new \InvalidArgumentException('invalid value for $textList when calling ParagraphComponent., number of items must be less than or equal to 100.');
+        if ((\count($text_list) > 100)) {
+            throw new \InvalidArgumentException('invalid value for $text_list when calling ParagraphComponent., number of items must be less than or equal to 100.');
         }
 
-        if ((\count($textList) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $textList when calling ParagraphComponent., number of items must be greater than or equal to 1.');
+        if ((\count($text_list) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $text_list when calling ParagraphComponent., number of items must be greater than or equal to 1.');
         }
-        $this->container['textList'] = $textList;
+        $this->container['text_list'] = $text_list;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentAsinRelationsRequest.php b/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentAsinRelationsRequest.php
index 3d45f520d..41999bf69 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentAsinRelationsRequest.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentAsinRelationsRequest.php
@@ -56,7 +56,7 @@ class PostContentDocumentAsinRelationsRequest implements \ArrayAccess, \JsonSeri
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'asinSet' => 'string[]',
+        'asin_set' => 'string[]',
     ];
 
     /**
@@ -67,7 +67,7 @@ class PostContentDocumentAsinRelationsRequest implements \ArrayAccess, \JsonSeri
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'asinSet' => null,
+        'asin_set' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class PostContentDocumentAsinRelationsRequest implements \ArrayAccess, \JsonSeri
      * @var string[]
      */
     protected static array $attributeMap = [
-        'asinSet' => 'asinSet',
+        'asin_set' => 'asinSet',
     ];
 
     /**
@@ -86,7 +86,7 @@ class PostContentDocumentAsinRelationsRequest implements \ArrayAccess, \JsonSeri
      * @var string[]
      */
     protected static array $setters = [
-        'asinSet' => 'setAsinSet',
+        'asin_set' => 'setAsinSet',
     ];
 
     /**
@@ -95,7 +95,7 @@ class PostContentDocumentAsinRelationsRequest implements \ArrayAccess, \JsonSeri
      * @var string[]
      */
     protected static array $getters = [
-        'asinSet' => 'getAsinSet',
+        'asin_set' => 'getAsinSet',
     ];
 
     /**
@@ -113,7 +113,7 @@ class PostContentDocumentAsinRelationsRequest implements \ArrayAccess, \JsonSeri
      */
     public function __construct(array $data = null)
     {
-        $this->container['asinSet'] = $data['asinSet'] ?? null;
+        $this->container['asin_set'] = $data['asin_set'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['asinSet'] === null) {
-            $invalidProperties[] = "'asinSet' can't be null";
+        if ($this->container['asin_set'] === null) {
+            $invalidProperties[] = "'asin_set' can't be null";
         }
 
         return $invalidProperties;
@@ -214,23 +214,23 @@ public function valid() : bool
     }
 
     /**
-     * Gets asinSet.
+     * Gets asin_set.
      *
      * @return string[]
      */
     public function getAsinSet() : array
     {
-        return $this->container['asinSet'];
+        return $this->container['asin_set'];
     }
 
     /**
-     * Sets asinSet.
+     * Sets asin_set.
      *
-     * @param string[] $asinSet the set of ASINs
+     * @param string[] $asin_set the set of ASINs
      */
-    public function setAsinSet(array $asinSet) : self
+    public function setAsinSet(array $asin_set) : self
     {
-        $this->container['asinSet'] = $asinSet;
+        $this->container['asin_set'] = $asin_set;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentRequest.php b/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentRequest.php
index 44d4a2679..bc5c2b6a0 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentRequest.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentRequest.php
@@ -56,7 +56,7 @@ class PostContentDocumentRequest implements \ArrayAccess, \JsonSerializable, Mod
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'contentDocument' => '\AmazonPHP\SellingPartner\Model\APlus\ContentDocument',
+        'content_document' => '\AmazonPHP\SellingPartner\Model\APlus\ContentDocument',
     ];
 
     /**
@@ -67,7 +67,7 @@ class PostContentDocumentRequest implements \ArrayAccess, \JsonSerializable, Mod
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'contentDocument' => null,
+        'content_document' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class PostContentDocumentRequest implements \ArrayAccess, \JsonSerializable, Mod
      * @var string[]
      */
     protected static array $attributeMap = [
-        'contentDocument' => 'contentDocument',
+        'content_document' => 'contentDocument',
     ];
 
     /**
@@ -86,7 +86,7 @@ class PostContentDocumentRequest implements \ArrayAccess, \JsonSerializable, Mod
      * @var string[]
      */
     protected static array $setters = [
-        'contentDocument' => 'setContentDocument',
+        'content_document' => 'setContentDocument',
     ];
 
     /**
@@ -95,7 +95,7 @@ class PostContentDocumentRequest implements \ArrayAccess, \JsonSerializable, Mod
      * @var string[]
      */
     protected static array $getters = [
-        'contentDocument' => 'getContentDocument',
+        'content_document' => 'getContentDocument',
     ];
 
     /**
@@ -113,7 +113,7 @@ class PostContentDocumentRequest implements \ArrayAccess, \JsonSerializable, Mod
      */
     public function __construct(array $data = null)
     {
-        $this->container['contentDocument'] = $data['contentDocument'] ?? null;
+        $this->container['content_document'] = $data['content_document'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentDocument'] === null) {
-            $invalidProperties[] = "'contentDocument' can't be null";
+        if ($this->container['content_document'] === null) {
+            $invalidProperties[] = "'content_document' can't be null";
         }
 
         return $invalidProperties;
@@ -214,21 +214,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets contentDocument.
+     * Gets content_document.
      */
     public function getContentDocument() : ContentDocument
     {
-        return $this->container['contentDocument'];
+        return $this->container['content_document'];
     }
 
     /**
-     * Sets contentDocument.
+     * Sets content_document.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentDocument $contentDocument contentDocument
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentDocument $content_document content_document
      */
-    public function setContentDocument(ContentDocument $contentDocument) : self
+    public function setContentDocument(ContentDocument $content_document) : self
     {
-        $this->container['contentDocument'] = $contentDocument;
+        $this->container['content_document'] = $content_document;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentResponse.php b/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentResponse.php
index 77dc49beb..4ae461291 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentResponse.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentResponse.php
@@ -57,7 +57,7 @@ class PostContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $openAPITypes = [
         'warnings' => '\AmazonPHP\SellingPartner\Model\APlus\Error[]',
-        'contentReferenceKey' => 'string',
+        'content_reference_key' => 'string',
     ];
 
     /**
@@ -69,7 +69,7 @@ class PostContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $openAPIFormats = [
         'warnings' => null,
-        'contentReferenceKey' => null,
+        'content_reference_key' => null,
     ];
 
     /**
@@ -80,7 +80,7 @@ class PostContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $attributeMap = [
         'warnings' => 'warnings',
-        'contentReferenceKey' => 'contentReferenceKey',
+        'content_reference_key' => 'contentReferenceKey',
     ];
 
     /**
@@ -90,7 +90,7 @@ class PostContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $setters = [
         'warnings' => 'setWarnings',
-        'contentReferenceKey' => 'setContentReferenceKey',
+        'content_reference_key' => 'setContentReferenceKey',
     ];
 
     /**
@@ -100,7 +100,7 @@ class PostContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $getters = [
         'warnings' => 'getWarnings',
-        'contentReferenceKey' => 'getContentReferenceKey',
+        'content_reference_key' => 'getContentReferenceKey',
     ];
 
     /**
@@ -119,7 +119,7 @@ class PostContentDocumentResponse implements \ArrayAccess, \JsonSerializable, Mo
     public function __construct(array $data = null)
     {
         $this->container['warnings'] = $data['warnings'] ?? null;
-        $this->container['contentReferenceKey'] = $data['contentReferenceKey'] ?? null;
+        $this->container['content_reference_key'] = $data['content_reference_key'] ?? null;
     }
 
     /**
@@ -201,12 +201,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentReferenceKey'] === null) {
-            $invalidProperties[] = "'contentReferenceKey' can't be null";
+        if ($this->container['content_reference_key'] === null) {
+            $invalidProperties[] = "'content_reference_key' can't be null";
         }
 
-        if ((\mb_strlen($this->container['contentReferenceKey']) < 1)) {
-            $invalidProperties[] = "invalid value for 'contentReferenceKey', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['content_reference_key']) < 1)) {
+            $invalidProperties[] = "invalid value for 'content_reference_key', the character length must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -246,25 +246,25 @@ public function setWarnings(?array $warnings) : self
     }
 
     /**
-     * Gets contentReferenceKey.
+     * Gets content_reference_key.
      */
     public function getContentReferenceKey() : string
     {
-        return $this->container['contentReferenceKey'];
+        return $this->container['content_reference_key'];
     }
 
     /**
-     * Sets contentReferenceKey.
+     * Sets content_reference_key.
      *
-     * @param string $contentReferenceKey A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
+     * @param string $content_reference_key A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
      */
-    public function setContentReferenceKey(string $contentReferenceKey) : self
+    public function setContentReferenceKey(string $content_reference_key) : self
     {
-        if ((\mb_strlen($contentReferenceKey) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $contentReferenceKey when calling PostContentDocumentResponse., must be bigger than or equal to 1.');
+        if ((\mb_strlen($content_reference_key) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $content_reference_key when calling PostContentDocumentResponse., must be bigger than or equal to 1.');
         }
 
-        $this->container['contentReferenceKey'] = $contentReferenceKey;
+        $this->container['content_reference_key'] = $content_reference_key;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentResponseAllOf.php b/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentResponseAllOf.php
index 4233699ba..0da218aca 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentResponseAllOf.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/PostContentDocumentResponseAllOf.php
@@ -56,7 +56,7 @@ class PostContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializabl
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'contentReferenceKey' => 'string',
+        'content_reference_key' => 'string',
     ];
 
     /**
@@ -67,7 +67,7 @@ class PostContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializabl
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'contentReferenceKey' => null,
+        'content_reference_key' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class PostContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializabl
      * @var string[]
      */
     protected static array $attributeMap = [
-        'contentReferenceKey' => 'contentReferenceKey',
+        'content_reference_key' => 'contentReferenceKey',
     ];
 
     /**
@@ -86,7 +86,7 @@ class PostContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializabl
      * @var string[]
      */
     protected static array $setters = [
-        'contentReferenceKey' => 'setContentReferenceKey',
+        'content_reference_key' => 'setContentReferenceKey',
     ];
 
     /**
@@ -95,7 +95,7 @@ class PostContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializabl
      * @var string[]
      */
     protected static array $getters = [
-        'contentReferenceKey' => 'getContentReferenceKey',
+        'content_reference_key' => 'getContentReferenceKey',
     ];
 
     /**
@@ -113,7 +113,7 @@ class PostContentDocumentResponseAllOf implements \ArrayAccess, \JsonSerializabl
      */
     public function __construct(array $data = null)
     {
-        $this->container['contentReferenceKey'] = $data['contentReferenceKey'] ?? null;
+        $this->container['content_reference_key'] = $data['content_reference_key'] ?? null;
     }
 
     /**
@@ -195,12 +195,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentReferenceKey'] === null) {
-            $invalidProperties[] = "'contentReferenceKey' can't be null";
+        if ($this->container['content_reference_key'] === null) {
+            $invalidProperties[] = "'content_reference_key' can't be null";
         }
 
-        if ((\mb_strlen($this->container['contentReferenceKey']) < 1)) {
-            $invalidProperties[] = "invalid value for 'contentReferenceKey', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['content_reference_key']) < 1)) {
+            $invalidProperties[] = "invalid value for 'content_reference_key', the character length must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -218,25 +218,25 @@ public function valid() : bool
     }
 
     /**
-     * Gets contentReferenceKey.
+     * Gets content_reference_key.
      */
     public function getContentReferenceKey() : string
     {
-        return $this->container['contentReferenceKey'];
+        return $this->container['content_reference_key'];
     }
 
     /**
-     * Sets contentReferenceKey.
+     * Sets content_reference_key.
      *
-     * @param string $contentReferenceKey A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
+     * @param string $content_reference_key A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
      */
-    public function setContentReferenceKey(string $contentReferenceKey) : self
+    public function setContentReferenceKey(string $content_reference_key) : self
     {
-        if ((\mb_strlen($contentReferenceKey) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $contentReferenceKey when calling PostContentDocumentResponseAllOf., must be bigger than or equal to 1.');
+        if ((\mb_strlen($content_reference_key) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $content_reference_key when calling PostContentDocumentResponseAllOf., must be bigger than or equal to 1.');
         }
 
-        $this->container['contentReferenceKey'] = $contentReferenceKey;
+        $this->container['content_reference_key'] = $content_reference_key;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/PublishRecord.php b/src/AmazonPHP/SellingPartner/Model/APlus/PublishRecord.php
index 54b97cd10..412e70ecc 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/PublishRecord.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/PublishRecord.php
@@ -56,12 +56,12 @@ class PublishRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'marketplaceId' => 'string',
+        'marketplace_id' => 'string',
         'locale' => 'string',
         'asin' => 'string',
-        'contentType' => '\AmazonPHP\SellingPartner\Model\APlus\ContentType',
-        'contentSubType' => 'string',
-        'contentReferenceKey' => 'string',
+        'content_type' => '\AmazonPHP\SellingPartner\Model\APlus\ContentType',
+        'content_sub_type' => 'string',
+        'content_reference_key' => 'string',
     ];
 
     /**
@@ -72,12 +72,12 @@ class PublishRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'marketplaceId' => null,
+        'marketplace_id' => null,
         'locale' => null,
         'asin' => null,
-        'contentType' => null,
-        'contentSubType' => null,
-        'contentReferenceKey' => null,
+        'content_type' => null,
+        'content_sub_type' => null,
+        'content_reference_key' => null,
     ];
 
     /**
@@ -87,12 +87,12 @@ class PublishRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'marketplaceId' => 'marketplaceId',
+        'marketplace_id' => 'marketplaceId',
         'locale' => 'locale',
         'asin' => 'asin',
-        'contentType' => 'contentType',
-        'contentSubType' => 'contentSubType',
-        'contentReferenceKey' => 'contentReferenceKey',
+        'content_type' => 'contentType',
+        'content_sub_type' => 'contentSubType',
+        'content_reference_key' => 'contentReferenceKey',
     ];
 
     /**
@@ -101,12 +101,12 @@ class PublishRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'marketplaceId' => 'setMarketplaceId',
+        'marketplace_id' => 'setMarketplaceId',
         'locale' => 'setLocale',
         'asin' => 'setAsin',
-        'contentType' => 'setContentType',
-        'contentSubType' => 'setContentSubType',
-        'contentReferenceKey' => 'setContentReferenceKey',
+        'content_type' => 'setContentType',
+        'content_sub_type' => 'setContentSubType',
+        'content_reference_key' => 'setContentReferenceKey',
     ];
 
     /**
@@ -115,12 +115,12 @@ class PublishRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'marketplaceId' => 'getMarketplaceId',
+        'marketplace_id' => 'getMarketplaceId',
         'locale' => 'getLocale',
         'asin' => 'getAsin',
-        'contentType' => 'getContentType',
-        'contentSubType' => 'getContentSubType',
-        'contentReferenceKey' => 'getContentReferenceKey',
+        'content_type' => 'getContentType',
+        'content_sub_type' => 'getContentSubType',
+        'content_reference_key' => 'getContentReferenceKey',
     ];
 
     /**
@@ -138,12 +138,12 @@ class PublishRecord implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['marketplaceId'] = $data['marketplaceId'] ?? null;
+        $this->container['marketplace_id'] = $data['marketplace_id'] ?? null;
         $this->container['locale'] = $data['locale'] ?? null;
         $this->container['asin'] = $data['asin'] ?? null;
-        $this->container['contentType'] = $data['contentType'] ?? null;
-        $this->container['contentSubType'] = $data['contentSubType'] ?? null;
-        $this->container['contentReferenceKey'] = $data['contentReferenceKey'] ?? null;
+        $this->container['content_type'] = $data['content_type'] ?? null;
+        $this->container['content_sub_type'] = $data['content_sub_type'] ?? null;
+        $this->container['content_reference_key'] = $data['content_reference_key'] ?? null;
     }
 
     /**
@@ -225,12 +225,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['marketplaceId'] === null) {
-            $invalidProperties[] = "'marketplaceId' can't be null";
+        if ($this->container['marketplace_id'] === null) {
+            $invalidProperties[] = "'marketplace_id' can't be null";
         }
 
-        if ((\mb_strlen($this->container['marketplaceId']) < 1)) {
-            $invalidProperties[] = "invalid value for 'marketplaceId', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['marketplace_id']) < 1)) {
+            $invalidProperties[] = "invalid value for 'marketplace_id', the character length must be bigger than or equal to 1.";
         }
 
         if ($this->container['locale'] === null) {
@@ -249,20 +249,20 @@ public function listInvalidProperties() : array
             $invalidProperties[] = "invalid value for 'asin', the character length must be bigger than or equal to 10.";
         }
 
-        if ($this->container['contentType'] === null) {
-            $invalidProperties[] = "'contentType' can't be null";
+        if ($this->container['content_type'] === null) {
+            $invalidProperties[] = "'content_type' can't be null";
         }
 
-        if (null !== $this->container['contentSubType'] && (\mb_strlen($this->container['contentSubType']) < 1)) {
-            $invalidProperties[] = "invalid value for 'contentSubType', the character length must be bigger than or equal to 1.";
+        if (null !== $this->container['content_sub_type'] && (\mb_strlen($this->container['content_sub_type']) < 1)) {
+            $invalidProperties[] = "invalid value for 'content_sub_type', the character length must be bigger than or equal to 1.";
         }
 
-        if ($this->container['contentReferenceKey'] === null) {
-            $invalidProperties[] = "'contentReferenceKey' can't be null";
+        if ($this->container['content_reference_key'] === null) {
+            $invalidProperties[] = "'content_reference_key' can't be null";
         }
 
-        if ((\mb_strlen($this->container['contentReferenceKey']) < 1)) {
-            $invalidProperties[] = "invalid value for 'contentReferenceKey', the character length must be bigger than or equal to 1.";
+        if ((\mb_strlen($this->container['content_reference_key']) < 1)) {
+            $invalidProperties[] = "invalid value for 'content_reference_key', the character length must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -280,25 +280,25 @@ public function valid() : bool
     }
 
     /**
-     * Gets marketplaceId.
+     * Gets marketplace_id.
      */
     public function getMarketplaceId() : string
     {
-        return $this->container['marketplaceId'];
+        return $this->container['marketplace_id'];
     }
 
     /**
-     * Sets marketplaceId.
+     * Sets marketplace_id.
      *
-     * @param string $marketplaceId the identifier for the marketplace where the A+ Content is published
+     * @param string $marketplace_id the identifier for the marketplace where the A+ Content is published
      */
-    public function setMarketplaceId(string $marketplaceId) : self
+    public function setMarketplaceId(string $marketplace_id) : self
     {
-        if ((\mb_strlen($marketplaceId) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $marketplaceId when calling PublishRecord., must be bigger than or equal to 1.');
+        if ((\mb_strlen($marketplace_id) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $marketplace_id when calling PublishRecord., must be bigger than or equal to 1.');
         }
 
-        $this->container['marketplaceId'] = $marketplaceId;
+        $this->container['marketplace_id'] = $marketplace_id;
 
         return $this;
     }
@@ -352,69 +352,69 @@ public function setAsin(string $asin) : self
     }
 
     /**
-     * Gets contentType.
+     * Gets content_type.
      */
     public function getContentType() : ContentType
     {
-        return $this->container['contentType'];
+        return $this->container['content_type'];
     }
 
     /**
-     * Sets contentType.
+     * Sets content_type.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentType $contentType contentType
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentType $content_type content_type
      */
-    public function setContentType(ContentType $contentType) : self
+    public function setContentType(ContentType $content_type) : self
     {
-        $this->container['contentType'] = $contentType;
+        $this->container['content_type'] = $content_type;
 
         return $this;
     }
 
     /**
-     * Gets contentSubType.
+     * Gets content_sub_type.
      */
     public function getContentSubType() : ?string
     {
-        return $this->container['contentSubType'];
+        return $this->container['content_sub_type'];
     }
 
     /**
-     * Sets contentSubType.
+     * Sets content_sub_type.
      *
-     * @param null|string $contentSubType The A+ Content document subtype. This represents a special-purpose type of an A+ Content document. Not every A+ Content document type will have a subtype, and subtypes may change at any time.
+     * @param null|string $content_sub_type The A+ Content document subtype. This represents a special-purpose type of an A+ Content document. Not every A+ Content document type will have a subtype, and subtypes may change at any time.
      */
-    public function setContentSubType(?string $contentSubType) : self
+    public function setContentSubType(?string $content_sub_type) : self
     {
-        if (null !== $contentSubType && (\mb_strlen($contentSubType) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $contentSubType when calling PublishRecord., must be bigger than or equal to 1.');
+        if (null !== $content_sub_type && (\mb_strlen($content_sub_type) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $content_sub_type when calling PublishRecord., must be bigger than or equal to 1.');
         }
 
-        $this->container['contentSubType'] = $contentSubType;
+        $this->container['content_sub_type'] = $content_sub_type;
 
         return $this;
     }
 
     /**
-     * Gets contentReferenceKey.
+     * Gets content_reference_key.
      */
     public function getContentReferenceKey() : string
     {
-        return $this->container['contentReferenceKey'];
+        return $this->container['content_reference_key'];
     }
 
     /**
-     * Sets contentReferenceKey.
+     * Sets content_reference_key.
      *
-     * @param string $contentReferenceKey A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
+     * @param string $content_reference_key A unique reference key for the A+ Content document. A content reference key cannot form a permalink and may change in the future. A content reference key is not guaranteed to match any A+ content identifier.
      */
-    public function setContentReferenceKey(string $contentReferenceKey) : self
+    public function setContentReferenceKey(string $content_reference_key) : self
     {
-        if ((\mb_strlen($contentReferenceKey) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $contentReferenceKey when calling PublishRecord., must be bigger than or equal to 1.');
+        if ((\mb_strlen($content_reference_key) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $content_reference_key when calling PublishRecord., must be bigger than or equal to 1.');
         }
 
-        $this->container['contentReferenceKey'] = $contentReferenceKey;
+        $this->container['content_reference_key'] = $content_reference_key;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentDocumentsResponse.php b/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentDocumentsResponse.php
index c7a4ad0c2..9e5ed026e 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentDocumentsResponse.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentDocumentsResponse.php
@@ -57,8 +57,8 @@ class SearchContentDocumentsResponse implements \ArrayAccess, \JsonSerializable,
      */
     protected static array $openAPITypes = [
         'warnings' => '\AmazonPHP\SellingPartner\Model\APlus\Error[]',
-        'nextPageToken' => 'string',
-        'contentMetadataRecords' => '\AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[]',
+        'next_page_token' => 'string',
+        'content_metadata_records' => '\AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[]',
     ];
 
     /**
@@ -70,8 +70,8 @@ class SearchContentDocumentsResponse implements \ArrayAccess, \JsonSerializable,
      */
     protected static array $openAPIFormats = [
         'warnings' => null,
-        'nextPageToken' => null,
-        'contentMetadataRecords' => null,
+        'next_page_token' => null,
+        'content_metadata_records' => null,
     ];
 
     /**
@@ -82,8 +82,8 @@ class SearchContentDocumentsResponse implements \ArrayAccess, \JsonSerializable,
      */
     protected static array $attributeMap = [
         'warnings' => 'warnings',
-        'nextPageToken' => 'nextPageToken',
-        'contentMetadataRecords' => 'contentMetadataRecords',
+        'next_page_token' => 'nextPageToken',
+        'content_metadata_records' => 'contentMetadataRecords',
     ];
 
     /**
@@ -93,8 +93,8 @@ class SearchContentDocumentsResponse implements \ArrayAccess, \JsonSerializable,
      */
     protected static array $setters = [
         'warnings' => 'setWarnings',
-        'nextPageToken' => 'setNextPageToken',
-        'contentMetadataRecords' => 'setContentMetadataRecords',
+        'next_page_token' => 'setNextPageToken',
+        'content_metadata_records' => 'setContentMetadataRecords',
     ];
 
     /**
@@ -104,8 +104,8 @@ class SearchContentDocumentsResponse implements \ArrayAccess, \JsonSerializable,
      */
     protected static array $getters = [
         'warnings' => 'getWarnings',
-        'nextPageToken' => 'getNextPageToken',
-        'contentMetadataRecords' => 'getContentMetadataRecords',
+        'next_page_token' => 'getNextPageToken',
+        'content_metadata_records' => 'getContentMetadataRecords',
     ];
 
     /**
@@ -124,8 +124,8 @@ class SearchContentDocumentsResponse implements \ArrayAccess, \JsonSerializable,
     public function __construct(array $data = null)
     {
         $this->container['warnings'] = $data['warnings'] ?? null;
-        $this->container['nextPageToken'] = $data['nextPageToken'] ?? null;
-        $this->container['contentMetadataRecords'] = $data['contentMetadataRecords'] ?? null;
+        $this->container['next_page_token'] = $data['next_page_token'] ?? null;
+        $this->container['content_metadata_records'] = $data['content_metadata_records'] ?? null;
     }
 
     /**
@@ -207,12 +207,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if (null !== $this->container['nextPageToken'] && (\mb_strlen($this->container['nextPageToken']) < 1)) {
-            $invalidProperties[] = "invalid value for 'nextPageToken', the character length must be bigger than or equal to 1.";
+        if (null !== $this->container['next_page_token'] && (\mb_strlen($this->container['next_page_token']) < 1)) {
+            $invalidProperties[] = "invalid value for 'next_page_token', the character length must be bigger than or equal to 1.";
         }
 
-        if ($this->container['contentMetadataRecords'] === null) {
-            $invalidProperties[] = "'contentMetadataRecords' can't be null";
+        if ($this->container['content_metadata_records'] === null) {
+            $invalidProperties[] = "'content_metadata_records' can't be null";
         }
 
         return $invalidProperties;
@@ -252,47 +252,47 @@ public function setWarnings(?array $warnings) : self
     }
 
     /**
-     * Gets nextPageToken.
+     * Gets next_page_token.
      */
     public function getNextPageToken() : ?string
     {
-        return $this->container['nextPageToken'];
+        return $this->container['next_page_token'];
     }
 
     /**
-     * Sets nextPageToken.
+     * Sets next_page_token.
      *
-     * @param null|string $nextPageToken A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
+     * @param null|string $next_page_token A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
      */
-    public function setNextPageToken(?string $nextPageToken) : self
+    public function setNextPageToken(?string $next_page_token) : self
     {
-        if (null !== $nextPageToken && (\mb_strlen($nextPageToken) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $nextPageToken when calling SearchContentDocumentsResponse., must be bigger than or equal to 1.');
+        if (null !== $next_page_token && (\mb_strlen($next_page_token) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $next_page_token when calling SearchContentDocumentsResponse., must be bigger than or equal to 1.');
         }
 
-        $this->container['nextPageToken'] = $nextPageToken;
+        $this->container['next_page_token'] = $next_page_token;
 
         return $this;
     }
 
     /**
-     * Gets contentMetadataRecords.
+     * Gets content_metadata_records.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[]
      */
     public function getContentMetadataRecords() : array
     {
-        return $this->container['contentMetadataRecords'];
+        return $this->container['content_metadata_records'];
     }
 
     /**
-     * Sets contentMetadataRecords.
+     * Sets content_metadata_records.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[] $contentMetadataRecords a list of A+ Content metadata records
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[] $content_metadata_records a list of A+ Content metadata records
      */
-    public function setContentMetadataRecords(array $contentMetadataRecords) : self
+    public function setContentMetadataRecords(array $content_metadata_records) : self
     {
-        $this->container['contentMetadataRecords'] = $contentMetadataRecords;
+        $this->container['content_metadata_records'] = $content_metadata_records;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentDocumentsResponseAllOf.php b/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentDocumentsResponseAllOf.php
index 9a15153e4..be6a52649 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentDocumentsResponseAllOf.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentDocumentsResponseAllOf.php
@@ -56,7 +56,7 @@ class SearchContentDocumentsResponseAllOf implements \ArrayAccess, \JsonSerializ
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'contentMetadataRecords' => '\AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[]',
+        'content_metadata_records' => '\AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[]',
     ];
 
     /**
@@ -67,7 +67,7 @@ class SearchContentDocumentsResponseAllOf implements \ArrayAccess, \JsonSerializ
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'contentMetadataRecords' => null,
+        'content_metadata_records' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class SearchContentDocumentsResponseAllOf implements \ArrayAccess, \JsonSerializ
      * @var string[]
      */
     protected static array $attributeMap = [
-        'contentMetadataRecords' => 'contentMetadataRecords',
+        'content_metadata_records' => 'contentMetadataRecords',
     ];
 
     /**
@@ -86,7 +86,7 @@ class SearchContentDocumentsResponseAllOf implements \ArrayAccess, \JsonSerializ
      * @var string[]
      */
     protected static array $setters = [
-        'contentMetadataRecords' => 'setContentMetadataRecords',
+        'content_metadata_records' => 'setContentMetadataRecords',
     ];
 
     /**
@@ -95,7 +95,7 @@ class SearchContentDocumentsResponseAllOf implements \ArrayAccess, \JsonSerializ
      * @var string[]
      */
     protected static array $getters = [
-        'contentMetadataRecords' => 'getContentMetadataRecords',
+        'content_metadata_records' => 'getContentMetadataRecords',
     ];
 
     /**
@@ -113,7 +113,7 @@ class SearchContentDocumentsResponseAllOf implements \ArrayAccess, \JsonSerializ
      */
     public function __construct(array $data = null)
     {
-        $this->container['contentMetadataRecords'] = $data['contentMetadataRecords'] ?? null;
+        $this->container['content_metadata_records'] = $data['content_metadata_records'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['contentMetadataRecords'] === null) {
-            $invalidProperties[] = "'contentMetadataRecords' can't be null";
+        if ($this->container['content_metadata_records'] === null) {
+            $invalidProperties[] = "'content_metadata_records' can't be null";
         }
 
         return $invalidProperties;
@@ -214,23 +214,23 @@ public function valid() : bool
     }
 
     /**
-     * Gets contentMetadataRecords.
+     * Gets content_metadata_records.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[]
      */
     public function getContentMetadataRecords() : array
     {
-        return $this->container['contentMetadataRecords'];
+        return $this->container['content_metadata_records'];
     }
 
     /**
-     * Sets contentMetadataRecords.
+     * Sets content_metadata_records.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[] $contentMetadataRecords a list of A+ Content metadata records
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ContentMetadataRecord[] $content_metadata_records a list of A+ Content metadata records
      */
-    public function setContentMetadataRecords(array $contentMetadataRecords) : self
+    public function setContentMetadataRecords(array $content_metadata_records) : self
     {
-        $this->container['contentMetadataRecords'] = $contentMetadataRecords;
+        $this->container['content_metadata_records'] = $content_metadata_records;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentPublishRecordsResponse.php b/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentPublishRecordsResponse.php
index 1e9173284..6d32c6025 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentPublishRecordsResponse.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentPublishRecordsResponse.php
@@ -57,8 +57,8 @@ class SearchContentPublishRecordsResponse implements \ArrayAccess, \JsonSerializ
      */
     protected static array $openAPITypes = [
         'warnings' => '\AmazonPHP\SellingPartner\Model\APlus\Error[]',
-        'nextPageToken' => 'string',
-        'publishRecordList' => '\AmazonPHP\SellingPartner\Model\APlus\PublishRecord[]',
+        'next_page_token' => 'string',
+        'publish_record_list' => '\AmazonPHP\SellingPartner\Model\APlus\PublishRecord[]',
     ];
 
     /**
@@ -70,8 +70,8 @@ class SearchContentPublishRecordsResponse implements \ArrayAccess, \JsonSerializ
      */
     protected static array $openAPIFormats = [
         'warnings' => null,
-        'nextPageToken' => null,
-        'publishRecordList' => null,
+        'next_page_token' => null,
+        'publish_record_list' => null,
     ];
 
     /**
@@ -82,8 +82,8 @@ class SearchContentPublishRecordsResponse implements \ArrayAccess, \JsonSerializ
      */
     protected static array $attributeMap = [
         'warnings' => 'warnings',
-        'nextPageToken' => 'nextPageToken',
-        'publishRecordList' => 'publishRecordList',
+        'next_page_token' => 'nextPageToken',
+        'publish_record_list' => 'publishRecordList',
     ];
 
     /**
@@ -93,8 +93,8 @@ class SearchContentPublishRecordsResponse implements \ArrayAccess, \JsonSerializ
      */
     protected static array $setters = [
         'warnings' => 'setWarnings',
-        'nextPageToken' => 'setNextPageToken',
-        'publishRecordList' => 'setPublishRecordList',
+        'next_page_token' => 'setNextPageToken',
+        'publish_record_list' => 'setPublishRecordList',
     ];
 
     /**
@@ -104,8 +104,8 @@ class SearchContentPublishRecordsResponse implements \ArrayAccess, \JsonSerializ
      */
     protected static array $getters = [
         'warnings' => 'getWarnings',
-        'nextPageToken' => 'getNextPageToken',
-        'publishRecordList' => 'getPublishRecordList',
+        'next_page_token' => 'getNextPageToken',
+        'publish_record_list' => 'getPublishRecordList',
     ];
 
     /**
@@ -124,8 +124,8 @@ class SearchContentPublishRecordsResponse implements \ArrayAccess, \JsonSerializ
     public function __construct(array $data = null)
     {
         $this->container['warnings'] = $data['warnings'] ?? null;
-        $this->container['nextPageToken'] = $data['nextPageToken'] ?? null;
-        $this->container['publishRecordList'] = $data['publishRecordList'] ?? null;
+        $this->container['next_page_token'] = $data['next_page_token'] ?? null;
+        $this->container['publish_record_list'] = $data['publish_record_list'] ?? null;
     }
 
     /**
@@ -207,12 +207,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if (null !== $this->container['nextPageToken'] && (\mb_strlen($this->container['nextPageToken']) < 1)) {
-            $invalidProperties[] = "invalid value for 'nextPageToken', the character length must be bigger than or equal to 1.";
+        if (null !== $this->container['next_page_token'] && (\mb_strlen($this->container['next_page_token']) < 1)) {
+            $invalidProperties[] = "invalid value for 'next_page_token', the character length must be bigger than or equal to 1.";
         }
 
-        if ($this->container['publishRecordList'] === null) {
-            $invalidProperties[] = "'publishRecordList' can't be null";
+        if ($this->container['publish_record_list'] === null) {
+            $invalidProperties[] = "'publish_record_list' can't be null";
         }
 
         return $invalidProperties;
@@ -252,47 +252,47 @@ public function setWarnings(?array $warnings) : self
     }
 
     /**
-     * Gets nextPageToken.
+     * Gets next_page_token.
      */
     public function getNextPageToken() : ?string
     {
-        return $this->container['nextPageToken'];
+        return $this->container['next_page_token'];
     }
 
     /**
-     * Sets nextPageToken.
+     * Sets next_page_token.
      *
-     * @param null|string $nextPageToken A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
+     * @param null|string $next_page_token A page token that is returned when the results of the call exceed the page size. To get another page of results, call the operation again, passing in this value with the pageToken parameter.
      */
-    public function setNextPageToken(?string $nextPageToken) : self
+    public function setNextPageToken(?string $next_page_token) : self
     {
-        if (null !== $nextPageToken && (\mb_strlen($nextPageToken) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $nextPageToken when calling SearchContentPublishRecordsResponse., must be bigger than or equal to 1.');
+        if (null !== $next_page_token && (\mb_strlen($next_page_token) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $next_page_token when calling SearchContentPublishRecordsResponse., must be bigger than or equal to 1.');
         }
 
-        $this->container['nextPageToken'] = $nextPageToken;
+        $this->container['next_page_token'] = $next_page_token;
 
         return $this;
     }
 
     /**
-     * Gets publishRecordList.
+     * Gets publish_record_list.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\PublishRecord[]
      */
     public function getPublishRecordList() : array
     {
-        return $this->container['publishRecordList'];
+        return $this->container['publish_record_list'];
     }
 
     /**
-     * Sets publishRecordList.
+     * Sets publish_record_list.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PublishRecord[] $publishRecordList a list of A+ Content publishing records
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PublishRecord[] $publish_record_list a list of A+ Content publishing records
      */
-    public function setPublishRecordList(array $publishRecordList) : self
+    public function setPublishRecordList(array $publish_record_list) : self
     {
-        $this->container['publishRecordList'] = $publishRecordList;
+        $this->container['publish_record_list'] = $publish_record_list;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentPublishRecordsResponseAllOf.php b/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentPublishRecordsResponseAllOf.php
index b0fed6268..9e89895d6 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentPublishRecordsResponseAllOf.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/SearchContentPublishRecordsResponseAllOf.php
@@ -56,7 +56,7 @@ class SearchContentPublishRecordsResponseAllOf implements \ArrayAccess, \JsonSer
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'publishRecordList' => '\AmazonPHP\SellingPartner\Model\APlus\PublishRecord[]',
+        'publish_record_list' => '\AmazonPHP\SellingPartner\Model\APlus\PublishRecord[]',
     ];
 
     /**
@@ -67,7 +67,7 @@ class SearchContentPublishRecordsResponseAllOf implements \ArrayAccess, \JsonSer
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'publishRecordList' => null,
+        'publish_record_list' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class SearchContentPublishRecordsResponseAllOf implements \ArrayAccess, \JsonSer
      * @var string[]
      */
     protected static array $attributeMap = [
-        'publishRecordList' => 'publishRecordList',
+        'publish_record_list' => 'publishRecordList',
     ];
 
     /**
@@ -86,7 +86,7 @@ class SearchContentPublishRecordsResponseAllOf implements \ArrayAccess, \JsonSer
      * @var string[]
      */
     protected static array $setters = [
-        'publishRecordList' => 'setPublishRecordList',
+        'publish_record_list' => 'setPublishRecordList',
     ];
 
     /**
@@ -95,7 +95,7 @@ class SearchContentPublishRecordsResponseAllOf implements \ArrayAccess, \JsonSer
      * @var string[]
      */
     protected static array $getters = [
-        'publishRecordList' => 'getPublishRecordList',
+        'publish_record_list' => 'getPublishRecordList',
     ];
 
     /**
@@ -113,7 +113,7 @@ class SearchContentPublishRecordsResponseAllOf implements \ArrayAccess, \JsonSer
      */
     public function __construct(array $data = null)
     {
-        $this->container['publishRecordList'] = $data['publishRecordList'] ?? null;
+        $this->container['publish_record_list'] = $data['publish_record_list'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['publishRecordList'] === null) {
-            $invalidProperties[] = "'publishRecordList' can't be null";
+        if ($this->container['publish_record_list'] === null) {
+            $invalidProperties[] = "'publish_record_list' can't be null";
         }
 
         return $invalidProperties;
@@ -214,23 +214,23 @@ public function valid() : bool
     }
 
     /**
-     * Gets publishRecordList.
+     * Gets publish_record_list.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\PublishRecord[]
      */
     public function getPublishRecordList() : array
     {
-        return $this->container['publishRecordList'];
+        return $this->container['publish_record_list'];
     }
 
     /**
-     * Sets publishRecordList.
+     * Sets publish_record_list.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PublishRecord[] $publishRecordList a list of A+ Content publishing records
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PublishRecord[] $publish_record_list a list of A+ Content publishing records
      */
-    public function setPublishRecordList(array $publishRecordList) : self
+    public function setPublishRecordList(array $publish_record_list) : self
     {
-        $this->container['publishRecordList'] = $publishRecordList;
+        $this->container['publish_record_list'] = $publish_record_list;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardCompanyLogoModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardCompanyLogoModule.php
index 8c6c1a090..cac2bf3c5 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardCompanyLogoModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardCompanyLogoModule.php
@@ -56,7 +56,7 @@ class StandardCompanyLogoModule implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'companyLogo' => '\AmazonPHP\SellingPartner\Model\APlus\ImageComponent',
+        'company_logo' => '\AmazonPHP\SellingPartner\Model\APlus\ImageComponent',
     ];
 
     /**
@@ -67,7 +67,7 @@ class StandardCompanyLogoModule implements \ArrayAccess, \JsonSerializable, Mode
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'companyLogo' => null,
+        'company_logo' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class StandardCompanyLogoModule implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $attributeMap = [
-        'companyLogo' => 'companyLogo',
+        'company_logo' => 'companyLogo',
     ];
 
     /**
@@ -86,7 +86,7 @@ class StandardCompanyLogoModule implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $setters = [
-        'companyLogo' => 'setCompanyLogo',
+        'company_logo' => 'setCompanyLogo',
     ];
 
     /**
@@ -95,7 +95,7 @@ class StandardCompanyLogoModule implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $getters = [
-        'companyLogo' => 'getCompanyLogo',
+        'company_logo' => 'getCompanyLogo',
     ];
 
     /**
@@ -113,7 +113,7 @@ class StandardCompanyLogoModule implements \ArrayAccess, \JsonSerializable, Mode
      */
     public function __construct(array $data = null)
     {
-        $this->container['companyLogo'] = $data['companyLogo'] ?? null;
+        $this->container['company_logo'] = $data['company_logo'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['companyLogo'] === null) {
-            $invalidProperties[] = "'companyLogo' can't be null";
+        if ($this->container['company_logo'] === null) {
+            $invalidProperties[] = "'company_logo' can't be null";
         }
 
         return $invalidProperties;
@@ -214,21 +214,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets companyLogo.
+     * Gets company_logo.
      */
     public function getCompanyLogo() : ImageComponent
     {
-        return $this->container['companyLogo'];
+        return $this->container['company_logo'];
     }
 
     /**
-     * Sets companyLogo.
+     * Sets company_logo.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ImageComponent $companyLogo companyLogo
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ImageComponent $company_logo company_logo
      */
-    public function setCompanyLogo(ImageComponent $companyLogo) : self
+    public function setCompanyLogo(ImageComponent $company_logo) : self
     {
-        $this->container['companyLogo'] = $companyLogo;
+        $this->container['company_logo'] = $company_logo;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardComparisonTableModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardComparisonTableModule.php
index bfd192ab9..dbb78986d 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardComparisonTableModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardComparisonTableModule.php
@@ -56,8 +56,8 @@ class StandardComparisonTableModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'productColumns' => '\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonProductBlock[]',
-        'metricRowLabels' => '\AmazonPHP\SellingPartner\Model\APlus\PlainTextItem[]',
+        'product_columns' => '\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonProductBlock[]',
+        'metric_row_labels' => '\AmazonPHP\SellingPartner\Model\APlus\PlainTextItem[]',
     ];
 
     /**
@@ -68,8 +68,8 @@ class StandardComparisonTableModule implements \ArrayAccess, \JsonSerializable,
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'productColumns' => null,
-        'metricRowLabels' => null,
+        'product_columns' => null,
+        'metric_row_labels' => null,
     ];
 
     /**
@@ -79,8 +79,8 @@ class StandardComparisonTableModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $attributeMap = [
-        'productColumns' => 'productColumns',
-        'metricRowLabels' => 'metricRowLabels',
+        'product_columns' => 'productColumns',
+        'metric_row_labels' => 'metricRowLabels',
     ];
 
     /**
@@ -89,8 +89,8 @@ class StandardComparisonTableModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $setters = [
-        'productColumns' => 'setProductColumns',
-        'metricRowLabels' => 'setMetricRowLabels',
+        'product_columns' => 'setProductColumns',
+        'metric_row_labels' => 'setMetricRowLabels',
     ];
 
     /**
@@ -99,8 +99,8 @@ class StandardComparisonTableModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $getters = [
-        'productColumns' => 'getProductColumns',
-        'metricRowLabels' => 'getMetricRowLabels',
+        'product_columns' => 'getProductColumns',
+        'metric_row_labels' => 'getMetricRowLabels',
     ];
 
     /**
@@ -118,8 +118,8 @@ class StandardComparisonTableModule implements \ArrayAccess, \JsonSerializable,
      */
     public function __construct(array $data = null)
     {
-        $this->container['productColumns'] = $data['productColumns'] ?? null;
-        $this->container['metricRowLabels'] = $data['metricRowLabels'] ?? null;
+        $this->container['product_columns'] = $data['product_columns'] ?? null;
+        $this->container['metric_row_labels'] = $data['metric_row_labels'] ?? null;
     }
 
     /**
@@ -201,20 +201,20 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if (null !== $this->container['productColumns'] && (\count($this->container['productColumns']) > 6)) {
-            $invalidProperties[] = "invalid value for 'productColumns', number of items must be less than or equal to 6.";
+        if (null !== $this->container['product_columns'] && (\count($this->container['product_columns']) > 6)) {
+            $invalidProperties[] = "invalid value for 'product_columns', number of items must be less than or equal to 6.";
         }
 
-        if (null !== $this->container['productColumns'] && (\count($this->container['productColumns']) < 0)) {
-            $invalidProperties[] = "invalid value for 'productColumns', number of items must be greater than or equal to 0.";
+        if (null !== $this->container['product_columns'] && (\count($this->container['product_columns']) < 0)) {
+            $invalidProperties[] = "invalid value for 'product_columns', number of items must be greater than or equal to 0.";
         }
 
-        if (null !== $this->container['metricRowLabels'] && (\count($this->container['metricRowLabels']) > 10)) {
-            $invalidProperties[] = "invalid value for 'metricRowLabels', number of items must be less than or equal to 10.";
+        if (null !== $this->container['metric_row_labels'] && (\count($this->container['metric_row_labels']) > 10)) {
+            $invalidProperties[] = "invalid value for 'metric_row_labels', number of items must be less than or equal to 10.";
         }
 
-        if (null !== $this->container['metricRowLabels'] && (\count($this->container['metricRowLabels']) < 0)) {
-            $invalidProperties[] = "invalid value for 'metricRowLabels', number of items must be greater than or equal to 0.";
+        if (null !== $this->container['metric_row_labels'] && (\count($this->container['metric_row_labels']) < 0)) {
+            $invalidProperties[] = "invalid value for 'metric_row_labels', number of items must be greater than or equal to 0.";
         }
 
         return $invalidProperties;
@@ -232,59 +232,59 @@ public function valid() : bool
     }
 
     /**
-     * Gets productColumns.
+     * Gets product_columns.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonProductBlock[]
      */
     public function getProductColumns() : ?array
     {
-        return $this->container['productColumns'];
+        return $this->container['product_columns'];
     }
 
     /**
-     * Sets productColumns.
+     * Sets product_columns.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonProductBlock[] $productColumns productColumns
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardComparisonProductBlock[] $product_columns product_columns
      */
-    public function setProductColumns(?array $productColumns) : self
+    public function setProductColumns(?array $product_columns) : self
     {
-        if (null !== $productColumns && (\count($productColumns) > 6)) {
-            throw new \InvalidArgumentException('invalid value for $productColumns when calling StandardComparisonTableModule., number of items must be less than or equal to 6.');
+        if (null !== $product_columns && (\count($product_columns) > 6)) {
+            throw new \InvalidArgumentException('invalid value for $product_columns when calling StandardComparisonTableModule., number of items must be less than or equal to 6.');
         }
 
-        if (null !== $productColumns && (\count($productColumns) < 0)) {
-            throw new \InvalidArgumentException('invalid length for $productColumns when calling StandardComparisonTableModule., number of items must be greater than or equal to 0.');
+        if (null !== $product_columns && (\count($product_columns) < 0)) {
+            throw new \InvalidArgumentException('invalid length for $product_columns when calling StandardComparisonTableModule., number of items must be greater than or equal to 0.');
         }
-        $this->container['productColumns'] = $productColumns;
+        $this->container['product_columns'] = $product_columns;
 
         return $this;
     }
 
     /**
-     * Gets metricRowLabels.
+     * Gets metric_row_labels.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\APlus\PlainTextItem[]
      */
     public function getMetricRowLabels() : ?array
     {
-        return $this->container['metricRowLabels'];
+        return $this->container['metric_row_labels'];
     }
 
     /**
-     * Sets metricRowLabels.
+     * Sets metric_row_labels.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\PlainTextItem[] $metricRowLabels metricRowLabels
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\PlainTextItem[] $metric_row_labels metric_row_labels
      */
-    public function setMetricRowLabels(?array $metricRowLabels) : self
+    public function setMetricRowLabels(?array $metric_row_labels) : self
     {
-        if (null !== $metricRowLabels && (\count($metricRowLabels) > 10)) {
-            throw new \InvalidArgumentException('invalid value for $metricRowLabels when calling StandardComparisonTableModule., number of items must be less than or equal to 10.');
+        if (null !== $metric_row_labels && (\count($metric_row_labels) > 10)) {
+            throw new \InvalidArgumentException('invalid value for $metric_row_labels when calling StandardComparisonTableModule., number of items must be less than or equal to 10.');
         }
 
-        if (null !== $metricRowLabels && (\count($metricRowLabels) < 0)) {
-            throw new \InvalidArgumentException('invalid length for $metricRowLabels when calling StandardComparisonTableModule., number of items must be greater than or equal to 0.');
+        if (null !== $metric_row_labels && (\count($metric_row_labels) < 0)) {
+            throw new \InvalidArgumentException('invalid length for $metric_row_labels when calling StandardComparisonTableModule., number of items must be greater than or equal to 0.');
         }
-        $this->container['metricRowLabels'] = $metricRowLabels;
+        $this->container['metric_row_labels'] = $metric_row_labels;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardImageSidebarModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardImageSidebarModule.php
index 594a39464..9f21c9b17 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardImageSidebarModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardImageSidebarModule.php
@@ -57,11 +57,11 @@ class StandardImageSidebarModule implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $openAPITypes = [
         'headline' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent',
-        'imageCaptionBlock' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageCaptionBlock',
-        'descriptionTextBlock' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
-        'descriptionListBlock' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextListBlock',
-        'sidebarImageTextBlock' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextBlock',
-        'sidebarListBlock' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextListBlock',
+        'image_caption_block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageCaptionBlock',
+        'description_text_block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
+        'description_list_block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextListBlock',
+        'sidebar_image_text_block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextBlock',
+        'sidebar_list_block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextListBlock',
     ];
 
     /**
@@ -73,11 +73,11 @@ class StandardImageSidebarModule implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $openAPIFormats = [
         'headline' => null,
-        'imageCaptionBlock' => null,
-        'descriptionTextBlock' => null,
-        'descriptionListBlock' => null,
-        'sidebarImageTextBlock' => null,
-        'sidebarListBlock' => null,
+        'image_caption_block' => null,
+        'description_text_block' => null,
+        'description_list_block' => null,
+        'sidebar_image_text_block' => null,
+        'sidebar_list_block' => null,
     ];
 
     /**
@@ -88,11 +88,11 @@ class StandardImageSidebarModule implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $attributeMap = [
         'headline' => 'headline',
-        'imageCaptionBlock' => 'imageCaptionBlock',
-        'descriptionTextBlock' => 'descriptionTextBlock',
-        'descriptionListBlock' => 'descriptionListBlock',
-        'sidebarImageTextBlock' => 'sidebarImageTextBlock',
-        'sidebarListBlock' => 'sidebarListBlock',
+        'image_caption_block' => 'imageCaptionBlock',
+        'description_text_block' => 'descriptionTextBlock',
+        'description_list_block' => 'descriptionListBlock',
+        'sidebar_image_text_block' => 'sidebarImageTextBlock',
+        'sidebar_list_block' => 'sidebarListBlock',
     ];
 
     /**
@@ -102,11 +102,11 @@ class StandardImageSidebarModule implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $setters = [
         'headline' => 'setHeadline',
-        'imageCaptionBlock' => 'setImageCaptionBlock',
-        'descriptionTextBlock' => 'setDescriptionTextBlock',
-        'descriptionListBlock' => 'setDescriptionListBlock',
-        'sidebarImageTextBlock' => 'setSidebarImageTextBlock',
-        'sidebarListBlock' => 'setSidebarListBlock',
+        'image_caption_block' => 'setImageCaptionBlock',
+        'description_text_block' => 'setDescriptionTextBlock',
+        'description_list_block' => 'setDescriptionListBlock',
+        'sidebar_image_text_block' => 'setSidebarImageTextBlock',
+        'sidebar_list_block' => 'setSidebarListBlock',
     ];
 
     /**
@@ -116,11 +116,11 @@ class StandardImageSidebarModule implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $getters = [
         'headline' => 'getHeadline',
-        'imageCaptionBlock' => 'getImageCaptionBlock',
-        'descriptionTextBlock' => 'getDescriptionTextBlock',
-        'descriptionListBlock' => 'getDescriptionListBlock',
-        'sidebarImageTextBlock' => 'getSidebarImageTextBlock',
-        'sidebarListBlock' => 'getSidebarListBlock',
+        'image_caption_block' => 'getImageCaptionBlock',
+        'description_text_block' => 'getDescriptionTextBlock',
+        'description_list_block' => 'getDescriptionListBlock',
+        'sidebar_image_text_block' => 'getSidebarImageTextBlock',
+        'sidebar_list_block' => 'getSidebarListBlock',
     ];
 
     /**
@@ -139,11 +139,11 @@ class StandardImageSidebarModule implements \ArrayAccess, \JsonSerializable, Mod
     public function __construct(array $data = null)
     {
         $this->container['headline'] = $data['headline'] ?? null;
-        $this->container['imageCaptionBlock'] = $data['imageCaptionBlock'] ?? null;
-        $this->container['descriptionTextBlock'] = $data['descriptionTextBlock'] ?? null;
-        $this->container['descriptionListBlock'] = $data['descriptionListBlock'] ?? null;
-        $this->container['sidebarImageTextBlock'] = $data['sidebarImageTextBlock'] ?? null;
-        $this->container['sidebarListBlock'] = $data['sidebarListBlock'] ?? null;
+        $this->container['image_caption_block'] = $data['image_caption_block'] ?? null;
+        $this->container['description_text_block'] = $data['description_text_block'] ?? null;
+        $this->container['description_list_block'] = $data['description_list_block'] ?? null;
+        $this->container['sidebar_image_text_block'] = $data['sidebar_image_text_block'] ?? null;
+        $this->container['sidebar_list_block'] = $data['sidebar_list_block'] ?? null;
     }
 
     /**
@@ -258,101 +258,101 @@ public function setHeadline(?TextComponent $headline) : self
     }
 
     /**
-     * Gets imageCaptionBlock.
+     * Gets image_caption_block.
      */
     public function getImageCaptionBlock() : ?StandardImageCaptionBlock
     {
-        return $this->container['imageCaptionBlock'];
+        return $this->container['image_caption_block'];
     }
 
     /**
-     * Sets imageCaptionBlock.
+     * Sets image_caption_block.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardImageCaptionBlock $imageCaptionBlock imageCaptionBlock
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardImageCaptionBlock $image_caption_block image_caption_block
      */
-    public function setImageCaptionBlock(?StandardImageCaptionBlock $imageCaptionBlock) : self
+    public function setImageCaptionBlock(?StandardImageCaptionBlock $image_caption_block) : self
     {
-        $this->container['imageCaptionBlock'] = $imageCaptionBlock;
+        $this->container['image_caption_block'] = $image_caption_block;
 
         return $this;
     }
 
     /**
-     * Gets descriptionTextBlock.
+     * Gets description_text_block.
      */
     public function getDescriptionTextBlock() : ?StandardTextBlock
     {
-        return $this->container['descriptionTextBlock'];
+        return $this->container['description_text_block'];
     }
 
     /**
-     * Sets descriptionTextBlock.
+     * Sets description_text_block.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $descriptionTextBlock descriptionTextBlock
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $description_text_block description_text_block
      */
-    public function setDescriptionTextBlock(?StandardTextBlock $descriptionTextBlock) : self
+    public function setDescriptionTextBlock(?StandardTextBlock $description_text_block) : self
     {
-        $this->container['descriptionTextBlock'] = $descriptionTextBlock;
+        $this->container['description_text_block'] = $description_text_block;
 
         return $this;
     }
 
     /**
-     * Gets descriptionListBlock.
+     * Gets description_list_block.
      */
     public function getDescriptionListBlock() : ?StandardTextListBlock
     {
-        return $this->container['descriptionListBlock'];
+        return $this->container['description_list_block'];
     }
 
     /**
-     * Sets descriptionListBlock.
+     * Sets description_list_block.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextListBlock $descriptionListBlock descriptionListBlock
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextListBlock $description_list_block description_list_block
      */
-    public function setDescriptionListBlock(?StandardTextListBlock $descriptionListBlock) : self
+    public function setDescriptionListBlock(?StandardTextListBlock $description_list_block) : self
     {
-        $this->container['descriptionListBlock'] = $descriptionListBlock;
+        $this->container['description_list_block'] = $description_list_block;
 
         return $this;
     }
 
     /**
-     * Gets sidebarImageTextBlock.
+     * Gets sidebar_image_text_block.
      */
     public function getSidebarImageTextBlock() : ?StandardImageTextBlock
     {
-        return $this->container['sidebarImageTextBlock'];
+        return $this->container['sidebar_image_text_block'];
     }
 
     /**
-     * Sets sidebarImageTextBlock.
+     * Sets sidebar_image_text_block.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextBlock $sidebarImageTextBlock sidebarImageTextBlock
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextBlock $sidebar_image_text_block sidebar_image_text_block
      */
-    public function setSidebarImageTextBlock(?StandardImageTextBlock $sidebarImageTextBlock) : self
+    public function setSidebarImageTextBlock(?StandardImageTextBlock $sidebar_image_text_block) : self
     {
-        $this->container['sidebarImageTextBlock'] = $sidebarImageTextBlock;
+        $this->container['sidebar_image_text_block'] = $sidebar_image_text_block;
 
         return $this;
     }
 
     /**
-     * Gets sidebarListBlock.
+     * Gets sidebar_list_block.
      */
     public function getSidebarListBlock() : ?StandardTextListBlock
     {
-        return $this->container['sidebarListBlock'];
+        return $this->container['sidebar_list_block'];
     }
 
     /**
-     * Sets sidebarListBlock.
+     * Sets sidebar_list_block.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextListBlock $sidebarListBlock sidebarListBlock
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextListBlock $sidebar_list_block sidebar_list_block
      */
-    public function setSidebarListBlock(?StandardTextListBlock $sidebarListBlock) : self
+    public function setSidebarListBlock(?StandardTextListBlock $sidebar_list_block) : self
     {
-        $this->container['sidebarListBlock'] = $sidebarListBlock;
+        $this->container['sidebar_list_block'] = $sidebar_list_block;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardImageTextOverlayModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardImageTextOverlayModule.php
index 188e0ea66..89d4fab0a 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardImageTextOverlayModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardImageTextOverlayModule.php
@@ -56,7 +56,7 @@ class StandardImageTextOverlayModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'overlayColorType' => '\AmazonPHP\SellingPartner\Model\APlus\ColorType',
+        'overlay_color_type' => '\AmazonPHP\SellingPartner\Model\APlus\ColorType',
         'block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextBlock',
     ];
 
@@ -68,7 +68,7 @@ class StandardImageTextOverlayModule implements \ArrayAccess, \JsonSerializable,
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'overlayColorType' => null,
+        'overlay_color_type' => null,
         'block' => null,
     ];
 
@@ -79,7 +79,7 @@ class StandardImageTextOverlayModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $attributeMap = [
-        'overlayColorType' => 'overlayColorType',
+        'overlay_color_type' => 'overlayColorType',
         'block' => 'block',
     ];
 
@@ -89,7 +89,7 @@ class StandardImageTextOverlayModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $setters = [
-        'overlayColorType' => 'setOverlayColorType',
+        'overlay_color_type' => 'setOverlayColorType',
         'block' => 'setBlock',
     ];
 
@@ -99,7 +99,7 @@ class StandardImageTextOverlayModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $getters = [
-        'overlayColorType' => 'getOverlayColorType',
+        'overlay_color_type' => 'getOverlayColorType',
         'block' => 'getBlock',
     ];
 
@@ -118,7 +118,7 @@ class StandardImageTextOverlayModule implements \ArrayAccess, \JsonSerializable,
      */
     public function __construct(array $data = null)
     {
-        $this->container['overlayColorType'] = $data['overlayColorType'] ?? null;
+        $this->container['overlay_color_type'] = $data['overlay_color_type'] ?? null;
         $this->container['block'] = $data['block'] ?? null;
     }
 
@@ -201,8 +201,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['overlayColorType'] === null) {
-            $invalidProperties[] = "'overlayColorType' can't be null";
+        if ($this->container['overlay_color_type'] === null) {
+            $invalidProperties[] = "'overlay_color_type' can't be null";
         }
 
         return $invalidProperties;
@@ -220,21 +220,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets overlayColorType.
+     * Gets overlay_color_type.
      */
     public function getOverlayColorType() : ColorType
     {
-        return $this->container['overlayColorType'];
+        return $this->container['overlay_color_type'];
     }
 
     /**
-     * Sets overlayColorType.
+     * Sets overlay_color_type.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\ColorType $overlayColorType overlayColorType
+     * @param \AmazonPHP\SellingPartner\Model\APlus\ColorType $overlay_color_type overlay_color_type
      */
-    public function setOverlayColorType(ColorType $overlayColorType) : self
+    public function setOverlayColorType(ColorType $overlay_color_type) : self
     {
-        $this->container['overlayColorType'] = $overlayColorType;
+        $this->container['overlay_color_type'] = $overlay_color_type;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleImageHighlightsModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleImageHighlightsModule.php
index f89cc7ec8..bec64beab 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleImageHighlightsModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleImageHighlightsModule.php
@@ -58,10 +58,10 @@ class StandardSingleImageHighlightsModule implements \ArrayAccess, \JsonSerializ
     protected static array $openAPITypes = [
         'image' => '\AmazonPHP\SellingPartner\Model\APlus\ImageComponent',
         'headline' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent',
-        'textBlock1' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
-        'textBlock2' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
-        'textBlock3' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
-        'bulletedListBlock' => '\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderTextListBlock',
+        'text_block1' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
+        'text_block2' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
+        'text_block3' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
+        'bulleted_list_block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderTextListBlock',
     ];
 
     /**
@@ -74,10 +74,10 @@ class StandardSingleImageHighlightsModule implements \ArrayAccess, \JsonSerializ
     protected static array $openAPIFormats = [
         'image' => null,
         'headline' => null,
-        'textBlock1' => null,
-        'textBlock2' => null,
-        'textBlock3' => null,
-        'bulletedListBlock' => null,
+        'text_block1' => null,
+        'text_block2' => null,
+        'text_block3' => null,
+        'bulleted_list_block' => null,
     ];
 
     /**
@@ -89,10 +89,10 @@ class StandardSingleImageHighlightsModule implements \ArrayAccess, \JsonSerializ
     protected static array $attributeMap = [
         'image' => 'image',
         'headline' => 'headline',
-        'textBlock1' => 'textBlock1',
-        'textBlock2' => 'textBlock2',
-        'textBlock3' => 'textBlock3',
-        'bulletedListBlock' => 'bulletedListBlock',
+        'text_block1' => 'textBlock1',
+        'text_block2' => 'textBlock2',
+        'text_block3' => 'textBlock3',
+        'bulleted_list_block' => 'bulletedListBlock',
     ];
 
     /**
@@ -103,10 +103,10 @@ class StandardSingleImageHighlightsModule implements \ArrayAccess, \JsonSerializ
     protected static array $setters = [
         'image' => 'setImage',
         'headline' => 'setHeadline',
-        'textBlock1' => 'setTextBlock1',
-        'textBlock2' => 'setTextBlock2',
-        'textBlock3' => 'setTextBlock3',
-        'bulletedListBlock' => 'setBulletedListBlock',
+        'text_block1' => 'setTextBlock1',
+        'text_block2' => 'setTextBlock2',
+        'text_block3' => 'setTextBlock3',
+        'bulleted_list_block' => 'setBulletedListBlock',
     ];
 
     /**
@@ -117,10 +117,10 @@ class StandardSingleImageHighlightsModule implements \ArrayAccess, \JsonSerializ
     protected static array $getters = [
         'image' => 'getImage',
         'headline' => 'getHeadline',
-        'textBlock1' => 'getTextBlock1',
-        'textBlock2' => 'getTextBlock2',
-        'textBlock3' => 'getTextBlock3',
-        'bulletedListBlock' => 'getBulletedListBlock',
+        'text_block1' => 'getTextBlock1',
+        'text_block2' => 'getTextBlock2',
+        'text_block3' => 'getTextBlock3',
+        'bulleted_list_block' => 'getBulletedListBlock',
     ];
 
     /**
@@ -140,10 +140,10 @@ public function __construct(array $data = null)
     {
         $this->container['image'] = $data['image'] ?? null;
         $this->container['headline'] = $data['headline'] ?? null;
-        $this->container['textBlock1'] = $data['textBlock1'] ?? null;
-        $this->container['textBlock2'] = $data['textBlock2'] ?? null;
-        $this->container['textBlock3'] = $data['textBlock3'] ?? null;
-        $this->container['bulletedListBlock'] = $data['bulletedListBlock'] ?? null;
+        $this->container['text_block1'] = $data['text_block1'] ?? null;
+        $this->container['text_block2'] = $data['text_block2'] ?? null;
+        $this->container['text_block3'] = $data['text_block3'] ?? null;
+        $this->container['bulleted_list_block'] = $data['bulleted_list_block'] ?? null;
     }
 
     /**
@@ -278,81 +278,81 @@ public function setHeadline(?TextComponent $headline) : self
     }
 
     /**
-     * Gets textBlock1.
+     * Gets text_block1.
      */
     public function getTextBlock1() : ?StandardTextBlock
     {
-        return $this->container['textBlock1'];
+        return $this->container['text_block1'];
     }
 
     /**
-     * Sets textBlock1.
+     * Sets text_block1.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $textBlock1 textBlock1
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $text_block1 text_block1
      */
-    public function setTextBlock1(?StandardTextBlock $textBlock1) : self
+    public function setTextBlock1(?StandardTextBlock $text_block1) : self
     {
-        $this->container['textBlock1'] = $textBlock1;
+        $this->container['text_block1'] = $text_block1;
 
         return $this;
     }
 
     /**
-     * Gets textBlock2.
+     * Gets text_block2.
      */
     public function getTextBlock2() : ?StandardTextBlock
     {
-        return $this->container['textBlock2'];
+        return $this->container['text_block2'];
     }
 
     /**
-     * Sets textBlock2.
+     * Sets text_block2.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $textBlock2 textBlock2
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $text_block2 text_block2
      */
-    public function setTextBlock2(?StandardTextBlock $textBlock2) : self
+    public function setTextBlock2(?StandardTextBlock $text_block2) : self
     {
-        $this->container['textBlock2'] = $textBlock2;
+        $this->container['text_block2'] = $text_block2;
 
         return $this;
     }
 
     /**
-     * Gets textBlock3.
+     * Gets text_block3.
      */
     public function getTextBlock3() : ?StandardTextBlock
     {
-        return $this->container['textBlock3'];
+        return $this->container['text_block3'];
     }
 
     /**
-     * Sets textBlock3.
+     * Sets text_block3.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $textBlock3 textBlock3
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $text_block3 text_block3
      */
-    public function setTextBlock3(?StandardTextBlock $textBlock3) : self
+    public function setTextBlock3(?StandardTextBlock $text_block3) : self
     {
-        $this->container['textBlock3'] = $textBlock3;
+        $this->container['text_block3'] = $text_block3;
 
         return $this;
     }
 
     /**
-     * Gets bulletedListBlock.
+     * Gets bulleted_list_block.
      */
     public function getBulletedListBlock() : ?StandardHeaderTextListBlock
     {
-        return $this->container['bulletedListBlock'];
+        return $this->container['bulleted_list_block'];
     }
 
     /**
-     * Sets bulletedListBlock.
+     * Sets bulleted_list_block.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderTextListBlock $bulletedListBlock bulletedListBlock
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderTextListBlock $bulleted_list_block bulleted_list_block
      */
-    public function setBulletedListBlock(?StandardHeaderTextListBlock $bulletedListBlock) : self
+    public function setBulletedListBlock(?StandardHeaderTextListBlock $bulleted_list_block) : self
     {
-        $this->container['bulletedListBlock'] = $bulletedListBlock;
+        $this->container['bulleted_list_block'] = $bulleted_list_block;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleImageSpecsDetailModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleImageSpecsDetailModule.php
index 6f7bad9a3..e11d68462 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleImageSpecsDetailModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleImageSpecsDetailModule.php
@@ -58,12 +58,12 @@ class StandardSingleImageSpecsDetailModule implements \ArrayAccess, \JsonSeriali
     protected static array $openAPITypes = [
         'headline' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent',
         'image' => '\AmazonPHP\SellingPartner\Model\APlus\ImageComponent',
-        'descriptionHeadline' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent',
-        'descriptionBlock1' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
-        'descriptionBlock2' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
-        'specificationHeadline' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent',
-        'specificationListBlock' => '\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderTextListBlock',
-        'specificationTextBlock' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
+        'description_headline' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent',
+        'description_block1' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
+        'description_block2' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
+        'specification_headline' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent',
+        'specification_list_block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderTextListBlock',
+        'specification_text_block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock',
     ];
 
     /**
@@ -76,12 +76,12 @@ class StandardSingleImageSpecsDetailModule implements \ArrayAccess, \JsonSeriali
     protected static array $openAPIFormats = [
         'headline' => null,
         'image' => null,
-        'descriptionHeadline' => null,
-        'descriptionBlock1' => null,
-        'descriptionBlock2' => null,
-        'specificationHeadline' => null,
-        'specificationListBlock' => null,
-        'specificationTextBlock' => null,
+        'description_headline' => null,
+        'description_block1' => null,
+        'description_block2' => null,
+        'specification_headline' => null,
+        'specification_list_block' => null,
+        'specification_text_block' => null,
     ];
 
     /**
@@ -93,12 +93,12 @@ class StandardSingleImageSpecsDetailModule implements \ArrayAccess, \JsonSeriali
     protected static array $attributeMap = [
         'headline' => 'headline',
         'image' => 'image',
-        'descriptionHeadline' => 'descriptionHeadline',
-        'descriptionBlock1' => 'descriptionBlock1',
-        'descriptionBlock2' => 'descriptionBlock2',
-        'specificationHeadline' => 'specificationHeadline',
-        'specificationListBlock' => 'specificationListBlock',
-        'specificationTextBlock' => 'specificationTextBlock',
+        'description_headline' => 'descriptionHeadline',
+        'description_block1' => 'descriptionBlock1',
+        'description_block2' => 'descriptionBlock2',
+        'specification_headline' => 'specificationHeadline',
+        'specification_list_block' => 'specificationListBlock',
+        'specification_text_block' => 'specificationTextBlock',
     ];
 
     /**
@@ -109,12 +109,12 @@ class StandardSingleImageSpecsDetailModule implements \ArrayAccess, \JsonSeriali
     protected static array $setters = [
         'headline' => 'setHeadline',
         'image' => 'setImage',
-        'descriptionHeadline' => 'setDescriptionHeadline',
-        'descriptionBlock1' => 'setDescriptionBlock1',
-        'descriptionBlock2' => 'setDescriptionBlock2',
-        'specificationHeadline' => 'setSpecificationHeadline',
-        'specificationListBlock' => 'setSpecificationListBlock',
-        'specificationTextBlock' => 'setSpecificationTextBlock',
+        'description_headline' => 'setDescriptionHeadline',
+        'description_block1' => 'setDescriptionBlock1',
+        'description_block2' => 'setDescriptionBlock2',
+        'specification_headline' => 'setSpecificationHeadline',
+        'specification_list_block' => 'setSpecificationListBlock',
+        'specification_text_block' => 'setSpecificationTextBlock',
     ];
 
     /**
@@ -125,12 +125,12 @@ class StandardSingleImageSpecsDetailModule implements \ArrayAccess, \JsonSeriali
     protected static array $getters = [
         'headline' => 'getHeadline',
         'image' => 'getImage',
-        'descriptionHeadline' => 'getDescriptionHeadline',
-        'descriptionBlock1' => 'getDescriptionBlock1',
-        'descriptionBlock2' => 'getDescriptionBlock2',
-        'specificationHeadline' => 'getSpecificationHeadline',
-        'specificationListBlock' => 'getSpecificationListBlock',
-        'specificationTextBlock' => 'getSpecificationTextBlock',
+        'description_headline' => 'getDescriptionHeadline',
+        'description_block1' => 'getDescriptionBlock1',
+        'description_block2' => 'getDescriptionBlock2',
+        'specification_headline' => 'getSpecificationHeadline',
+        'specification_list_block' => 'getSpecificationListBlock',
+        'specification_text_block' => 'getSpecificationTextBlock',
     ];
 
     /**
@@ -150,12 +150,12 @@ public function __construct(array $data = null)
     {
         $this->container['headline'] = $data['headline'] ?? null;
         $this->container['image'] = $data['image'] ?? null;
-        $this->container['descriptionHeadline'] = $data['descriptionHeadline'] ?? null;
-        $this->container['descriptionBlock1'] = $data['descriptionBlock1'] ?? null;
-        $this->container['descriptionBlock2'] = $data['descriptionBlock2'] ?? null;
-        $this->container['specificationHeadline'] = $data['specificationHeadline'] ?? null;
-        $this->container['specificationListBlock'] = $data['specificationListBlock'] ?? null;
-        $this->container['specificationTextBlock'] = $data['specificationTextBlock'] ?? null;
+        $this->container['description_headline'] = $data['description_headline'] ?? null;
+        $this->container['description_block1'] = $data['description_block1'] ?? null;
+        $this->container['description_block2'] = $data['description_block2'] ?? null;
+        $this->container['specification_headline'] = $data['specification_headline'] ?? null;
+        $this->container['specification_list_block'] = $data['specification_list_block'] ?? null;
+        $this->container['specification_text_block'] = $data['specification_text_block'] ?? null;
     }
 
     /**
@@ -290,121 +290,121 @@ public function setImage(?ImageComponent $image) : self
     }
 
     /**
-     * Gets descriptionHeadline.
+     * Gets description_headline.
      */
     public function getDescriptionHeadline() : ?TextComponent
     {
-        return $this->container['descriptionHeadline'];
+        return $this->container['description_headline'];
     }
 
     /**
-     * Sets descriptionHeadline.
+     * Sets description_headline.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\TextComponent $descriptionHeadline descriptionHeadline
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\TextComponent $description_headline description_headline
      */
-    public function setDescriptionHeadline(?TextComponent $descriptionHeadline) : self
+    public function setDescriptionHeadline(?TextComponent $description_headline) : self
     {
-        $this->container['descriptionHeadline'] = $descriptionHeadline;
+        $this->container['description_headline'] = $description_headline;
 
         return $this;
     }
 
     /**
-     * Gets descriptionBlock1.
+     * Gets description_block1.
      */
     public function getDescriptionBlock1() : ?StandardTextBlock
     {
-        return $this->container['descriptionBlock1'];
+        return $this->container['description_block1'];
     }
 
     /**
-     * Sets descriptionBlock1.
+     * Sets description_block1.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $descriptionBlock1 descriptionBlock1
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $description_block1 description_block1
      */
-    public function setDescriptionBlock1(?StandardTextBlock $descriptionBlock1) : self
+    public function setDescriptionBlock1(?StandardTextBlock $description_block1) : self
     {
-        $this->container['descriptionBlock1'] = $descriptionBlock1;
+        $this->container['description_block1'] = $description_block1;
 
         return $this;
     }
 
     /**
-     * Gets descriptionBlock2.
+     * Gets description_block2.
      */
     public function getDescriptionBlock2() : ?StandardTextBlock
     {
-        return $this->container['descriptionBlock2'];
+        return $this->container['description_block2'];
     }
 
     /**
-     * Sets descriptionBlock2.
+     * Sets description_block2.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $descriptionBlock2 descriptionBlock2
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $description_block2 description_block2
      */
-    public function setDescriptionBlock2(?StandardTextBlock $descriptionBlock2) : self
+    public function setDescriptionBlock2(?StandardTextBlock $description_block2) : self
     {
-        $this->container['descriptionBlock2'] = $descriptionBlock2;
+        $this->container['description_block2'] = $description_block2;
 
         return $this;
     }
 
     /**
-     * Gets specificationHeadline.
+     * Gets specification_headline.
      */
     public function getSpecificationHeadline() : ?TextComponent
     {
-        return $this->container['specificationHeadline'];
+        return $this->container['specification_headline'];
     }
 
     /**
-     * Sets specificationHeadline.
+     * Sets specification_headline.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\TextComponent $specificationHeadline specificationHeadline
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\TextComponent $specification_headline specification_headline
      */
-    public function setSpecificationHeadline(?TextComponent $specificationHeadline) : self
+    public function setSpecificationHeadline(?TextComponent $specification_headline) : self
     {
-        $this->container['specificationHeadline'] = $specificationHeadline;
+        $this->container['specification_headline'] = $specification_headline;
 
         return $this;
     }
 
     /**
-     * Gets specificationListBlock.
+     * Gets specification_list_block.
      */
     public function getSpecificationListBlock() : ?StandardHeaderTextListBlock
     {
-        return $this->container['specificationListBlock'];
+        return $this->container['specification_list_block'];
     }
 
     /**
-     * Sets specificationListBlock.
+     * Sets specification_list_block.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderTextListBlock $specificationListBlock specificationListBlock
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardHeaderTextListBlock $specification_list_block specification_list_block
      */
-    public function setSpecificationListBlock(?StandardHeaderTextListBlock $specificationListBlock) : self
+    public function setSpecificationListBlock(?StandardHeaderTextListBlock $specification_list_block) : self
     {
-        $this->container['specificationListBlock'] = $specificationListBlock;
+        $this->container['specification_list_block'] = $specification_list_block;
 
         return $this;
     }
 
     /**
-     * Gets specificationTextBlock.
+     * Gets specification_text_block.
      */
     public function getSpecificationTextBlock() : ?StandardTextBlock
     {
-        return $this->container['specificationTextBlock'];
+        return $this->container['specification_text_block'];
     }
 
     /**
-     * Sets specificationTextBlock.
+     * Sets specification_text_block.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $specificationTextBlock specificationTextBlock
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\StandardTextBlock $specification_text_block specification_text_block
      */
-    public function setSpecificationTextBlock(?StandardTextBlock $specificationTextBlock) : self
+    public function setSpecificationTextBlock(?StandardTextBlock $specification_text_block) : self
     {
-        $this->container['specificationTextBlock'] = $specificationTextBlock;
+        $this->container['specification_text_block'] = $specification_text_block;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleSideImageModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleSideImageModule.php
index a28c8fba5..3635003bf 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleSideImageModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardSingleSideImageModule.php
@@ -56,7 +56,7 @@ class StandardSingleSideImageModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'imagePositionType' => '\AmazonPHP\SellingPartner\Model\APlus\PositionType',
+        'image_position_type' => '\AmazonPHP\SellingPartner\Model\APlus\PositionType',
         'block' => '\AmazonPHP\SellingPartner\Model\APlus\StandardImageTextBlock',
     ];
 
@@ -68,7 +68,7 @@ class StandardSingleSideImageModule implements \ArrayAccess, \JsonSerializable,
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'imagePositionType' => null,
+        'image_position_type' => null,
         'block' => null,
     ];
 
@@ -79,7 +79,7 @@ class StandardSingleSideImageModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $attributeMap = [
-        'imagePositionType' => 'imagePositionType',
+        'image_position_type' => 'imagePositionType',
         'block' => 'block',
     ];
 
@@ -89,7 +89,7 @@ class StandardSingleSideImageModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $setters = [
-        'imagePositionType' => 'setImagePositionType',
+        'image_position_type' => 'setImagePositionType',
         'block' => 'setBlock',
     ];
 
@@ -99,7 +99,7 @@ class StandardSingleSideImageModule implements \ArrayAccess, \JsonSerializable,
      * @var string[]
      */
     protected static array $getters = [
-        'imagePositionType' => 'getImagePositionType',
+        'image_position_type' => 'getImagePositionType',
         'block' => 'getBlock',
     ];
 
@@ -118,7 +118,7 @@ class StandardSingleSideImageModule implements \ArrayAccess, \JsonSerializable,
      */
     public function __construct(array $data = null)
     {
-        $this->container['imagePositionType'] = $data['imagePositionType'] ?? null;
+        $this->container['image_position_type'] = $data['image_position_type'] ?? null;
         $this->container['block'] = $data['block'] ?? null;
     }
 
@@ -201,8 +201,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['imagePositionType'] === null) {
-            $invalidProperties[] = "'imagePositionType' can't be null";
+        if ($this->container['image_position_type'] === null) {
+            $invalidProperties[] = "'image_position_type' can't be null";
         }
 
         return $invalidProperties;
@@ -220,21 +220,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets imagePositionType.
+     * Gets image_position_type.
      */
     public function getImagePositionType() : PositionType
     {
-        return $this->container['imagePositionType'];
+        return $this->container['image_position_type'];
     }
 
     /**
-     * Sets imagePositionType.
+     * Sets image_position_type.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\PositionType $imagePositionType imagePositionType
+     * @param \AmazonPHP\SellingPartner\Model\APlus\PositionType $image_position_type image_position_type
      */
-    public function setImagePositionType(PositionType $imagePositionType) : self
+    public function setImagePositionType(PositionType $image_position_type) : self
     {
-        $this->container['imagePositionType'] = $imagePositionType;
+        $this->container['image_position_type'] = $image_position_type;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardTechSpecsModule.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardTechSpecsModule.php
index 9299f8cf7..379480118 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardTechSpecsModule.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardTechSpecsModule.php
@@ -57,8 +57,8 @@ class StandardTechSpecsModule implements \ArrayAccess, \JsonSerializable, ModelI
      */
     protected static array $openAPITypes = [
         'headline' => '\AmazonPHP\SellingPartner\Model\APlus\TextComponent',
-        'specificationList' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextPairBlock[]',
-        'tableCount' => 'int',
+        'specification_list' => '\AmazonPHP\SellingPartner\Model\APlus\StandardTextPairBlock[]',
+        'table_count' => 'int',
     ];
 
     /**
@@ -70,8 +70,8 @@ class StandardTechSpecsModule implements \ArrayAccess, \JsonSerializable, ModelI
      */
     protected static array $openAPIFormats = [
         'headline' => null,
-        'specificationList' => null,
-        'tableCount' => null,
+        'specification_list' => null,
+        'table_count' => null,
     ];
 
     /**
@@ -82,8 +82,8 @@ class StandardTechSpecsModule implements \ArrayAccess, \JsonSerializable, ModelI
      */
     protected static array $attributeMap = [
         'headline' => 'headline',
-        'specificationList' => 'specificationList',
-        'tableCount' => 'tableCount',
+        'specification_list' => 'specificationList',
+        'table_count' => 'tableCount',
     ];
 
     /**
@@ -93,8 +93,8 @@ class StandardTechSpecsModule implements \ArrayAccess, \JsonSerializable, ModelI
      */
     protected static array $setters = [
         'headline' => 'setHeadline',
-        'specificationList' => 'setSpecificationList',
-        'tableCount' => 'setTableCount',
+        'specification_list' => 'setSpecificationList',
+        'table_count' => 'setTableCount',
     ];
 
     /**
@@ -104,8 +104,8 @@ class StandardTechSpecsModule implements \ArrayAccess, \JsonSerializable, ModelI
      */
     protected static array $getters = [
         'headline' => 'getHeadline',
-        'specificationList' => 'getSpecificationList',
-        'tableCount' => 'getTableCount',
+        'specification_list' => 'getSpecificationList',
+        'table_count' => 'getTableCount',
     ];
 
     /**
@@ -124,8 +124,8 @@ class StandardTechSpecsModule implements \ArrayAccess, \JsonSerializable, ModelI
     public function __construct(array $data = null)
     {
         $this->container['headline'] = $data['headline'] ?? null;
-        $this->container['specificationList'] = $data['specificationList'] ?? null;
-        $this->container['tableCount'] = $data['tableCount'] ?? null;
+        $this->container['specification_list'] = $data['specification_list'] ?? null;
+        $this->container['table_count'] = $data['table_count'] ?? null;
     }
 
     /**
@@ -207,24 +207,24 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['specificationList'] === null) {
-            $invalidProperties[] = "'specificationList' can't be null";
+        if ($this->container['specification_list'] === null) {
+            $invalidProperties[] = "'specification_list' can't be null";
         }
 
-        if ((\count($this->container['specificationList']) > 16)) {
-            $invalidProperties[] = "invalid value for 'specificationList', number of items must be less than or equal to 16.";
+        if ((\count($this->container['specification_list']) > 16)) {
+            $invalidProperties[] = "invalid value for 'specification_list', number of items must be less than or equal to 16.";
         }
 
-        if ((\count($this->container['specificationList']) < 4)) {
-            $invalidProperties[] = "invalid value for 'specificationList', number of items must be greater than or equal to 4.";
+        if ((\count($this->container['specification_list']) < 4)) {
+            $invalidProperties[] = "invalid value for 'specification_list', number of items must be greater than or equal to 4.";
         }
 
-        if (null !== $this->container['tableCount'] && ($this->container['tableCount'] > 2)) {
-            $invalidProperties[] = "invalid value for 'tableCount', must be smaller than or equal to 2.";
+        if (null !== $this->container['table_count'] && ($this->container['table_count'] > 2)) {
+            $invalidProperties[] = "invalid value for 'table_count', must be smaller than or equal to 2.";
         }
 
-        if (null !== $this->container['tableCount'] && ($this->container['tableCount'] < 1)) {
-            $invalidProperties[] = "invalid value for 'tableCount', must be bigger than or equal to 1.";
+        if (null !== $this->container['table_count'] && ($this->container['table_count'] < 1)) {
+            $invalidProperties[] = "invalid value for 'table_count', must be bigger than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -262,58 +262,58 @@ public function setHeadline(?TextComponent $headline) : self
     }
 
     /**
-     * Gets specificationList.
+     * Gets specification_list.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\StandardTextPairBlock[]
      */
     public function getSpecificationList() : array
     {
-        return $this->container['specificationList'];
+        return $this->container['specification_list'];
     }
 
     /**
-     * Sets specificationList.
+     * Sets specification_list.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\StandardTextPairBlock[] $specificationList the specification list
+     * @param \AmazonPHP\SellingPartner\Model\APlus\StandardTextPairBlock[] $specification_list the specification list
      */
-    public function setSpecificationList(array $specificationList) : self
+    public function setSpecificationList(array $specification_list) : self
     {
-        if ((\count($specificationList) > 16)) {
-            throw new \InvalidArgumentException('invalid value for $specificationList when calling StandardTechSpecsModule., number of items must be less than or equal to 16.');
+        if ((\count($specification_list) > 16)) {
+            throw new \InvalidArgumentException('invalid value for $specification_list when calling StandardTechSpecsModule., number of items must be less than or equal to 16.');
         }
 
-        if ((\count($specificationList) < 4)) {
-            throw new \InvalidArgumentException('invalid length for $specificationList when calling StandardTechSpecsModule., number of items must be greater than or equal to 4.');
+        if ((\count($specification_list) < 4)) {
+            throw new \InvalidArgumentException('invalid length for $specification_list when calling StandardTechSpecsModule., number of items must be greater than or equal to 4.');
         }
-        $this->container['specificationList'] = $specificationList;
+        $this->container['specification_list'] = $specification_list;
 
         return $this;
     }
 
     /**
-     * Gets tableCount.
+     * Gets table_count.
      */
     public function getTableCount() : ?int
     {
-        return $this->container['tableCount'];
+        return $this->container['table_count'];
     }
 
     /**
-     * Sets tableCount.
+     * Sets table_count.
      *
-     * @param null|int $tableCount The number of tables to present. Features are evenly divided between the tables.
+     * @param null|int $table_count The number of tables to present. Features are evenly divided between the tables.
      */
-    public function setTableCount(?int $tableCount) : self
+    public function setTableCount(?int $table_count) : self
     {
-        if (null !== $tableCount && ($tableCount > 2)) {
-            throw new \InvalidArgumentException('invalid value for $tableCount when calling StandardTechSpecsModule., must be smaller than or equal to 2.');
+        if (null !== $table_count && ($table_count > 2)) {
+            throw new \InvalidArgumentException('invalid value for $table_count when calling StandardTechSpecsModule., must be smaller than or equal to 2.');
         }
 
-        if (null !== $tableCount && ($tableCount < 1)) {
-            throw new \InvalidArgumentException('invalid value for $tableCount when calling StandardTechSpecsModule., must be bigger than or equal to 1.');
+        if (null !== $table_count && ($table_count < 1)) {
+            throw new \InvalidArgumentException('invalid value for $table_count when calling StandardTechSpecsModule., must be bigger than or equal to 1.');
         }
 
-        $this->container['tableCount'] = $tableCount;
+        $this->container['table_count'] = $table_count;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/StandardTextListBlock.php b/src/AmazonPHP/SellingPartner/Model/APlus/StandardTextListBlock.php
index 01b2e113e..40ceaaff6 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/StandardTextListBlock.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/StandardTextListBlock.php
@@ -56,7 +56,7 @@ class StandardTextListBlock implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'textList' => '\AmazonPHP\SellingPartner\Model\APlus\TextItem[]',
+        'text_list' => '\AmazonPHP\SellingPartner\Model\APlus\TextItem[]',
     ];
 
     /**
@@ -67,7 +67,7 @@ class StandardTextListBlock implements \ArrayAccess, \JsonSerializable, ModelInt
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'textList' => null,
+        'text_list' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class StandardTextListBlock implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $attributeMap = [
-        'textList' => 'textList',
+        'text_list' => 'textList',
     ];
 
     /**
@@ -86,7 +86,7 @@ class StandardTextListBlock implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $setters = [
-        'textList' => 'setTextList',
+        'text_list' => 'setTextList',
     ];
 
     /**
@@ -95,7 +95,7 @@ class StandardTextListBlock implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $getters = [
-        'textList' => 'getTextList',
+        'text_list' => 'getTextList',
     ];
 
     /**
@@ -113,7 +113,7 @@ class StandardTextListBlock implements \ArrayAccess, \JsonSerializable, ModelInt
      */
     public function __construct(array $data = null)
     {
-        $this->container['textList'] = $data['textList'] ?? null;
+        $this->container['text_list'] = $data['text_list'] ?? null;
     }
 
     /**
@@ -195,16 +195,16 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['textList'] === null) {
-            $invalidProperties[] = "'textList' can't be null";
+        if ($this->container['text_list'] === null) {
+            $invalidProperties[] = "'text_list' can't be null";
         }
 
-        if ((\count($this->container['textList']) > 8)) {
-            $invalidProperties[] = "invalid value for 'textList', number of items must be less than or equal to 8.";
+        if ((\count($this->container['text_list']) > 8)) {
+            $invalidProperties[] = "invalid value for 'text_list', number of items must be less than or equal to 8.";
         }
 
-        if ((\count($this->container['textList']) < 0)) {
-            $invalidProperties[] = "invalid value for 'textList', number of items must be greater than or equal to 0.";
+        if ((\count($this->container['text_list']) < 0)) {
+            $invalidProperties[] = "invalid value for 'text_list', number of items must be greater than or equal to 0.";
         }
 
         return $invalidProperties;
@@ -222,30 +222,30 @@ public function valid() : bool
     }
 
     /**
-     * Gets textList.
+     * Gets text_list.
      *
      * @return \AmazonPHP\SellingPartner\Model\APlus\TextItem[]
      */
     public function getTextList() : array
     {
-        return $this->container['textList'];
+        return $this->container['text_list'];
     }
 
     /**
-     * Sets textList.
+     * Sets text_list.
      *
-     * @param \AmazonPHP\SellingPartner\Model\APlus\TextItem[] $textList textList
+     * @param \AmazonPHP\SellingPartner\Model\APlus\TextItem[] $text_list text_list
      */
-    public function setTextList(array $textList) : self
+    public function setTextList(array $text_list) : self
     {
-        if ((\count($textList) > 8)) {
-            throw new \InvalidArgumentException('invalid value for $textList when calling StandardTextListBlock., number of items must be less than or equal to 8.');
+        if ((\count($text_list) > 8)) {
+            throw new \InvalidArgumentException('invalid value for $text_list when calling StandardTextListBlock., number of items must be less than or equal to 8.');
         }
 
-        if ((\count($textList) < 0)) {
-            throw new \InvalidArgumentException('invalid length for $textList when calling StandardTextListBlock., number of items must be greater than or equal to 0.');
+        if ((\count($text_list) < 0)) {
+            throw new \InvalidArgumentException('invalid length for $text_list when calling StandardTextListBlock., number of items must be greater than or equal to 0.');
         }
-        $this->container['textList'] = $textList;
+        $this->container['text_list'] = $text_list;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/APlus/TextComponent.php b/src/AmazonPHP/SellingPartner/Model/APlus/TextComponent.php
index 9d4213cb9..71d6902d0 100644
--- a/src/AmazonPHP/SellingPartner/Model/APlus/TextComponent.php
+++ b/src/AmazonPHP/SellingPartner/Model/APlus/TextComponent.php
@@ -57,7 +57,7 @@ class TextComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'value' => 'string',
-        'decoratorSet' => '\AmazonPHP\SellingPartner\Model\APlus\Decorator[]',
+        'decorator_set' => '\AmazonPHP\SellingPartner\Model\APlus\Decorator[]',
     ];
 
     /**
@@ -69,7 +69,7 @@ class TextComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'value' => null,
-        'decoratorSet' => null,
+        'decorator_set' => null,
     ];
 
     /**
@@ -80,7 +80,7 @@ class TextComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'value' => 'value',
-        'decoratorSet' => 'decoratorSet',
+        'decorator_set' => 'decoratorSet',
     ];
 
     /**
@@ -90,7 +90,7 @@ class TextComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'value' => 'setValue',
-        'decoratorSet' => 'setDecoratorSet',
+        'decorator_set' => 'setDecoratorSet',
     ];
 
     /**
@@ -100,7 +100,7 @@ class TextComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'value' => 'getValue',
-        'decoratorSet' => 'getDecoratorSet',
+        'decorator_set' => 'getDecoratorSet',
     ];
 
     /**
@@ -119,7 +119,7 @@ class TextComponent implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['value'] = $data['value'] ?? null;
-        $this->container['decoratorSet'] = $data['decoratorSet'] ?? null;
+        $this->container['decorator_set'] = $data['decorator_set'] ?? null;
     }
 
     /**
@@ -256,23 +256,23 @@ public function setValue(string $value) : self
     }
 
     /**
-     * Gets decoratorSet.
+     * Gets decorator_set.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\APlus\Decorator[]
      */
     public function getDecoratorSet() : ?array
     {
-        return $this->container['decoratorSet'];
+        return $this->container['decorator_set'];
     }
 
     /**
-     * Sets decoratorSet.
+     * Sets decorator_set.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\APlus\Decorator[] $decoratorSet a set of content decorators
+     * @param null|\AmazonPHP\SellingPartner\Model\APlus\Decorator[] $decorator_set a set of content decorators
      */
-    public function setDecoratorSet(?array $decoratorSet) : self
+    public function setDecoratorSet(?array $decorator_set) : self
     {
-        $this->container['decoratorSet'] = $decoratorSet;
+        $this->container['decorator_set'] = $decorator_set;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Authorization/AuthorizationCode.php b/src/AmazonPHP/SellingPartner/Model/Authorization/AuthorizationCode.php
index fcfdc1b05..d24de9d5f 100644
--- a/src/AmazonPHP/SellingPartner/Model/Authorization/AuthorizationCode.php
+++ b/src/AmazonPHP/SellingPartner/Model/Authorization/AuthorizationCode.php
@@ -56,7 +56,7 @@ class AuthorizationCode implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'authorizationCode' => 'string',
+        'authorization_code' => 'string',
     ];
 
     /**
@@ -67,7 +67,7 @@ class AuthorizationCode implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'authorizationCode' => null,
+        'authorization_code' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class AuthorizationCode implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @var string[]
      */
     protected static array $attributeMap = [
-        'authorizationCode' => 'authorizationCode',
+        'authorization_code' => 'authorizationCode',
     ];
 
     /**
@@ -86,7 +86,7 @@ class AuthorizationCode implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @var string[]
      */
     protected static array $setters = [
-        'authorizationCode' => 'setAuthorizationCode',
+        'authorization_code' => 'setAuthorizationCode',
     ];
 
     /**
@@ -95,7 +95,7 @@ class AuthorizationCode implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @var string[]
      */
     protected static array $getters = [
-        'authorizationCode' => 'getAuthorizationCode',
+        'authorization_code' => 'getAuthorizationCode',
     ];
 
     /**
@@ -113,7 +113,7 @@ class AuthorizationCode implements \ArrayAccess, \JsonSerializable, ModelInterfa
      */
     public function __construct(array $data = null)
     {
-        $this->container['authorizationCode'] = $data['authorizationCode'] ?? null;
+        $this->container['authorization_code'] = $data['authorization_code'] ?? null;
     }
 
     /**
@@ -208,21 +208,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets authorizationCode.
+     * Gets authorization_code.
      */
     public function getAuthorizationCode() : ?string
     {
-        return $this->container['authorizationCode'];
+        return $this->container['authorization_code'];
     }
 
     /**
-     * Sets authorizationCode.
+     * Sets authorization_code.
      *
-     * @param null|string $authorizationCode a Login with Amazon (LWA) authorization code that can be exchanged for a refresh token and access token that authorize you to make calls to a Selling Partner API
+     * @param null|string $authorization_code a Login with Amazon (LWA) authorization code that can be exchanged for a refresh token and access token that authorize you to make calls to a Selling Partner API
      */
-    public function setAuthorizationCode(?string $authorizationCode) : self
+    public function setAuthorizationCode(?string $authorization_code) : self
     {
-        $this->container['authorizationCode'] = $authorizationCode;
+        $this->container['authorization_code'] = $authorization_code;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/ASINIdentifier.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/ASINIdentifier.php
index 9f92d4428..164899646 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/ASINIdentifier.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/ASINIdentifier.php
@@ -56,8 +56,8 @@ class ASINIdentifier implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'marketplaceId' => 'string',
-        'aSIN' => 'string',
+        'marketplace_id' => 'string',
+        'asin' => 'string',
     ];
 
     /**
@@ -68,8 +68,8 @@ class ASINIdentifier implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'marketplaceId' => null,
-        'aSIN' => null,
+        'marketplace_id' => null,
+        'asin' => null,
     ];
 
     /**
@@ -79,8 +79,8 @@ class ASINIdentifier implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'marketplaceId' => 'MarketplaceId',
-        'aSIN' => 'ASIN',
+        'marketplace_id' => 'MarketplaceId',
+        'asin' => 'ASIN',
     ];
 
     /**
@@ -89,8 +89,8 @@ class ASINIdentifier implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'marketplaceId' => 'setMarketplaceId',
-        'aSIN' => 'setASIN',
+        'marketplace_id' => 'setMarketplaceId',
+        'asin' => 'setAsin',
     ];
 
     /**
@@ -99,8 +99,8 @@ class ASINIdentifier implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'marketplaceId' => 'getMarketplaceId',
-        'aSIN' => 'getASIN',
+        'marketplace_id' => 'getMarketplaceId',
+        'asin' => 'getAsin',
     ];
 
     /**
@@ -118,8 +118,8 @@ class ASINIdentifier implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['marketplaceId'] = $data['marketplaceId'] ?? null;
-        $this->container['aSIN'] = $data['aSIN'] ?? null;
+        $this->container['marketplace_id'] = $data['marketplace_id'] ?? null;
+        $this->container['asin'] = $data['asin'] ?? null;
     }
 
     /**
@@ -201,12 +201,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['marketplaceId'] === null) {
-            $invalidProperties[] = "'marketplaceId' can't be null";
+        if ($this->container['marketplace_id'] === null) {
+            $invalidProperties[] = "'marketplace_id' can't be null";
         }
 
-        if ($this->container['aSIN'] === null) {
-            $invalidProperties[] = "'aSIN' can't be null";
+        if ($this->container['asin'] === null) {
+            $invalidProperties[] = "'asin' can't be null";
         }
 
         return $invalidProperties;
@@ -224,41 +224,41 @@ public function valid() : bool
     }
 
     /**
-     * Gets marketplaceId.
+     * Gets marketplace_id.
      */
     public function getMarketplaceId() : string
     {
-        return $this->container['marketplaceId'];
+        return $this->container['marketplace_id'];
     }
 
     /**
-     * Sets marketplaceId.
+     * Sets marketplace_id.
      *
-     * @param string $marketplaceId a marketplace identifier
+     * @param string $marketplace_id a marketplace identifier
      */
-    public function setMarketplaceId(string $marketplaceId) : self
+    public function setMarketplaceId(string $marketplace_id) : self
     {
-        $this->container['marketplaceId'] = $marketplaceId;
+        $this->container['marketplace_id'] = $marketplace_id;
 
         return $this;
     }
 
     /**
-     * Gets aSIN.
+     * Gets asin.
      */
-    public function getASIN() : string
+    public function getAsin() : string
     {
-        return $this->container['aSIN'];
+        return $this->container['asin'];
     }
 
     /**
-     * Sets aSIN.
+     * Sets asin.
      *
-     * @param string $aSIN the Amazon Standard Identification Number (ASIN) of the item
+     * @param string $asin the Amazon Standard Identification Number (ASIN) of the item
      */
-    public function setASIN(string $aSIN) : self
+    public function setAsin(string $asin) : self
     {
-        $this->container['aSIN'] = $aSIN;
+        $this->container['asin'] = $asin;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/AttributeSetListType.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/AttributeSetListType.php
index 318e0f104..cc37ac776 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/AttributeSetListType.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/AttributeSetListType.php
@@ -58,100 +58,100 @@ class AttributeSetListType implements \ArrayAccess, \JsonSerializable, ModelInte
     protected static array $openAPITypes = [
         'actor' => 'string[]',
         'artist' => 'string[]',
-        'aspectRatio' => 'string',
-        'audienceRating' => 'string',
+        'aspect_ratio' => 'string',
+        'audience_rating' => 'string',
         'author' => 'string[]',
-        'backFinding' => 'string',
-        'bandMaterialType' => 'string',
+        'back_finding' => 'string',
+        'band_material_type' => 'string',
         'binding' => 'string',
-        'blurayRegion' => 'string',
+        'bluray_region' => 'string',
         'brand' => 'string',
-        'ceroAgeRating' => 'string',
-        'chainType' => 'string',
-        'claspType' => 'string',
+        'cero_age_rating' => 'string',
+        'chain_type' => 'string',
+        'clasp_type' => 'string',
         'color' => 'string',
-        'cpuManufacturer' => 'string',
-        'cpuSpeed' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'cpuType' => 'string',
+        'cpu_manufacturer' => 'string',
+        'cpu_speed' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'cpu_type' => 'string',
         'creator' => '\AmazonPHP\SellingPartner\Model\CatalogItem\CreatorType[]',
         'department' => 'string',
         'director' => 'string[]',
-        'displaySize' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'display_size' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
         'edition' => 'string',
-        'episodeSequence' => 'string',
-        'esrbAgeRating' => 'string',
+        'episode_sequence' => 'string',
+        'esrb_age_rating' => 'string',
         'feature' => 'string[]',
         'flavor' => 'string',
         'format' => 'string[]',
-        'gemType' => 'string[]',
+        'gem_type' => 'string[]',
         'genre' => 'string',
-        'golfClubFlex' => 'string',
-        'golfClubLoft' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'handOrientation' => 'string',
-        'hardDiskInterface' => 'string',
-        'hardDiskSize' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'hardwarePlatform' => 'string',
-        'hazardousMaterialType' => 'string',
-        'itemDimensions' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType',
-        'isAdultProduct' => 'bool',
-        'isAutographed' => 'bool',
-        'isEligibleForTradeIn' => 'bool',
-        'isMemorabilia' => 'bool',
-        'issuesPerYear' => 'string',
-        'itemPartNumber' => 'string',
+        'golf_club_flex' => 'string',
+        'golf_club_loft' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'hand_orientation' => 'string',
+        'hard_disk_interface' => 'string',
+        'hard_disk_size' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'hardware_platform' => 'string',
+        'hazardous_material_type' => 'string',
+        'item_dimensions' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType',
+        'is_adult_product' => 'bool',
+        'is_autographed' => 'bool',
+        'is_eligible_for_trade_in' => 'bool',
+        'is_memorabilia' => 'bool',
+        'issues_per_year' => 'string',
+        'item_part_number' => 'string',
         'label' => 'string',
         'languages' => '\AmazonPHP\SellingPartner\Model\CatalogItem\LanguageType[]',
-        'legalDisclaimer' => 'string',
-        'listPrice' => '\AmazonPHP\SellingPartner\Model\CatalogItem\Price',
+        'legal_disclaimer' => 'string',
+        'list_price' => '\AmazonPHP\SellingPartner\Model\CatalogItem\Price',
         'manufacturer' => 'string',
-        'manufacturerMaximumAge' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'manufacturerMinimumAge' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'manufacturerPartsWarrantyDescription' => 'string',
-        'materialType' => 'string[]',
-        'maximumResolution' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'mediaType' => 'string[]',
-        'metalStamp' => 'string',
-        'metalType' => 'string',
+        'manufacturer_maximum_age' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'manufacturer_minimum_age' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'manufacturer_parts_warranty_description' => 'string',
+        'material_type' => 'string[]',
+        'maximum_resolution' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'media_type' => 'string[]',
+        'metal_stamp' => 'string',
+        'metal_type' => 'string',
         'model' => 'string',
-        'numberOfDiscs' => 'int',
-        'numberOfIssues' => 'int',
-        'numberOfItems' => 'int',
-        'numberOfPages' => 'int',
-        'numberOfTracks' => 'int',
-        'operatingSystem' => 'string[]',
-        'opticalZoom' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'packageDimensions' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType',
-        'packageQuantity' => 'int',
-        'partNumber' => 'string',
-        'pegiRating' => 'string',
+        'number_of_discs' => 'int',
+        'number_of_issues' => 'int',
+        'number_of_items' => 'int',
+        'number_of_pages' => 'int',
+        'number_of_tracks' => 'int',
+        'operating_system' => 'string[]',
+        'optical_zoom' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'package_dimensions' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType',
+        'package_quantity' => 'int',
+        'part_number' => 'string',
+        'pegi_rating' => 'string',
         'platform' => 'string[]',
-        'processorCount' => 'int',
-        'productGroup' => 'string',
-        'productTypeName' => 'string',
-        'productTypeSubcategory' => 'string',
-        'publicationDate' => 'string',
+        'processor_count' => 'int',
+        'product_group' => 'string',
+        'product_type_name' => 'string',
+        'product_type_subcategory' => 'string',
+        'publication_date' => 'string',
         'publisher' => 'string',
-        'regionCode' => 'string',
-        'releaseDate' => 'string',
-        'ringSize' => 'string',
-        'runningTime' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'shaftMaterial' => 'string',
+        'region_code' => 'string',
+        'release_date' => 'string',
+        'ring_size' => 'string',
+        'running_time' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'shaft_material' => 'string',
         'scent' => 'string',
-        'seasonSequence' => 'string',
-        'seikodoProductCode' => 'string',
+        'season_sequence' => 'string',
+        'seikodo_product_code' => 'string',
         'size' => 'string',
-        'sizePerPearl' => 'string',
-        'smallImage' => '\AmazonPHP\SellingPartner\Model\CatalogItem\Image',
+        'size_per_pearl' => 'string',
+        'small_image' => '\AmazonPHP\SellingPartner\Model\CatalogItem\Image',
         'studio' => 'string',
-        'subscriptionLength' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'systemMemorySize' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'systemMemoryType' => 'string',
-        'theatricalReleaseDate' => 'string',
+        'subscription_length' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'system_memory_size' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'system_memory_type' => 'string',
+        'theatrical_release_date' => 'string',
         'title' => 'string',
-        'totalDiamondWeight' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'totalGemWeight' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'total_diamond_weight' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'total_gem_weight' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
         'warranty' => 'string',
-        'weeeTaxValue' => '\AmazonPHP\SellingPartner\Model\CatalogItem\Price',
+        'weee_tax_value' => '\AmazonPHP\SellingPartner\Model\CatalogItem\Price',
     ];
 
     /**
@@ -164,100 +164,100 @@ class AttributeSetListType implements \ArrayAccess, \JsonSerializable, ModelInte
     protected static array $openAPIFormats = [
         'actor' => null,
         'artist' => null,
-        'aspectRatio' => null,
-        'audienceRating' => null,
+        'aspect_ratio' => null,
+        'audience_rating' => null,
         'author' => null,
-        'backFinding' => null,
-        'bandMaterialType' => null,
+        'back_finding' => null,
+        'band_material_type' => null,
         'binding' => null,
-        'blurayRegion' => null,
+        'bluray_region' => null,
         'brand' => null,
-        'ceroAgeRating' => null,
-        'chainType' => null,
-        'claspType' => null,
+        'cero_age_rating' => null,
+        'chain_type' => null,
+        'clasp_type' => null,
         'color' => null,
-        'cpuManufacturer' => null,
-        'cpuSpeed' => null,
-        'cpuType' => null,
+        'cpu_manufacturer' => null,
+        'cpu_speed' => null,
+        'cpu_type' => null,
         'creator' => null,
         'department' => null,
         'director' => null,
-        'displaySize' => null,
+        'display_size' => null,
         'edition' => null,
-        'episodeSequence' => null,
-        'esrbAgeRating' => null,
+        'episode_sequence' => null,
+        'esrb_age_rating' => null,
         'feature' => null,
         'flavor' => null,
         'format' => null,
-        'gemType' => null,
+        'gem_type' => null,
         'genre' => null,
-        'golfClubFlex' => null,
-        'golfClubLoft' => null,
-        'handOrientation' => null,
-        'hardDiskInterface' => null,
-        'hardDiskSize' => null,
-        'hardwarePlatform' => null,
-        'hazardousMaterialType' => null,
-        'itemDimensions' => null,
-        'isAdultProduct' => null,
-        'isAutographed' => null,
-        'isEligibleForTradeIn' => null,
-        'isMemorabilia' => null,
-        'issuesPerYear' => null,
-        'itemPartNumber' => null,
+        'golf_club_flex' => null,
+        'golf_club_loft' => null,
+        'hand_orientation' => null,
+        'hard_disk_interface' => null,
+        'hard_disk_size' => null,
+        'hardware_platform' => null,
+        'hazardous_material_type' => null,
+        'item_dimensions' => null,
+        'is_adult_product' => null,
+        'is_autographed' => null,
+        'is_eligible_for_trade_in' => null,
+        'is_memorabilia' => null,
+        'issues_per_year' => null,
+        'item_part_number' => null,
         'label' => null,
         'languages' => null,
-        'legalDisclaimer' => null,
-        'listPrice' => null,
+        'legal_disclaimer' => null,
+        'list_price' => null,
         'manufacturer' => null,
-        'manufacturerMaximumAge' => null,
-        'manufacturerMinimumAge' => null,
-        'manufacturerPartsWarrantyDescription' => null,
-        'materialType' => null,
-        'maximumResolution' => null,
-        'mediaType' => null,
-        'metalStamp' => null,
-        'metalType' => null,
+        'manufacturer_maximum_age' => null,
+        'manufacturer_minimum_age' => null,
+        'manufacturer_parts_warranty_description' => null,
+        'material_type' => null,
+        'maximum_resolution' => null,
+        'media_type' => null,
+        'metal_stamp' => null,
+        'metal_type' => null,
         'model' => null,
-        'numberOfDiscs' => null,
-        'numberOfIssues' => null,
-        'numberOfItems' => null,
-        'numberOfPages' => null,
-        'numberOfTracks' => null,
-        'operatingSystem' => null,
-        'opticalZoom' => null,
-        'packageDimensions' => null,
-        'packageQuantity' => null,
-        'partNumber' => null,
-        'pegiRating' => null,
+        'number_of_discs' => null,
+        'number_of_issues' => null,
+        'number_of_items' => null,
+        'number_of_pages' => null,
+        'number_of_tracks' => null,
+        'operating_system' => null,
+        'optical_zoom' => null,
+        'package_dimensions' => null,
+        'package_quantity' => null,
+        'part_number' => null,
+        'pegi_rating' => null,
         'platform' => null,
-        'processorCount' => null,
-        'productGroup' => null,
-        'productTypeName' => null,
-        'productTypeSubcategory' => null,
-        'publicationDate' => null,
+        'processor_count' => null,
+        'product_group' => null,
+        'product_type_name' => null,
+        'product_type_subcategory' => null,
+        'publication_date' => null,
         'publisher' => null,
-        'regionCode' => null,
-        'releaseDate' => null,
-        'ringSize' => null,
-        'runningTime' => null,
-        'shaftMaterial' => null,
+        'region_code' => null,
+        'release_date' => null,
+        'ring_size' => null,
+        'running_time' => null,
+        'shaft_material' => null,
         'scent' => null,
-        'seasonSequence' => null,
-        'seikodoProductCode' => null,
+        'season_sequence' => null,
+        'seikodo_product_code' => null,
         'size' => null,
-        'sizePerPearl' => null,
-        'smallImage' => null,
+        'size_per_pearl' => null,
+        'small_image' => null,
         'studio' => null,
-        'subscriptionLength' => null,
-        'systemMemorySize' => null,
-        'systemMemoryType' => null,
-        'theatricalReleaseDate' => null,
+        'subscription_length' => null,
+        'system_memory_size' => null,
+        'system_memory_type' => null,
+        'theatrical_release_date' => null,
         'title' => null,
-        'totalDiamondWeight' => null,
-        'totalGemWeight' => null,
+        'total_diamond_weight' => null,
+        'total_gem_weight' => null,
         'warranty' => null,
-        'weeeTaxValue' => null,
+        'weee_tax_value' => null,
     ];
 
     /**
@@ -269,100 +269,100 @@ class AttributeSetListType implements \ArrayAccess, \JsonSerializable, ModelInte
     protected static array $attributeMap = [
         'actor' => 'Actor',
         'artist' => 'Artist',
-        'aspectRatio' => 'AspectRatio',
-        'audienceRating' => 'AudienceRating',
+        'aspect_ratio' => 'AspectRatio',
+        'audience_rating' => 'AudienceRating',
         'author' => 'Author',
-        'backFinding' => 'BackFinding',
-        'bandMaterialType' => 'BandMaterialType',
+        'back_finding' => 'BackFinding',
+        'band_material_type' => 'BandMaterialType',
         'binding' => 'Binding',
-        'blurayRegion' => 'BlurayRegion',
+        'bluray_region' => 'BlurayRegion',
         'brand' => 'Brand',
-        'ceroAgeRating' => 'CeroAgeRating',
-        'chainType' => 'ChainType',
-        'claspType' => 'ClaspType',
+        'cero_age_rating' => 'CeroAgeRating',
+        'chain_type' => 'ChainType',
+        'clasp_type' => 'ClaspType',
         'color' => 'Color',
-        'cpuManufacturer' => 'CpuManufacturer',
-        'cpuSpeed' => 'CpuSpeed',
-        'cpuType' => 'CpuType',
+        'cpu_manufacturer' => 'CpuManufacturer',
+        'cpu_speed' => 'CpuSpeed',
+        'cpu_type' => 'CpuType',
         'creator' => 'Creator',
         'department' => 'Department',
         'director' => 'Director',
-        'displaySize' => 'DisplaySize',
+        'display_size' => 'DisplaySize',
         'edition' => 'Edition',
-        'episodeSequence' => 'EpisodeSequence',
-        'esrbAgeRating' => 'EsrbAgeRating',
+        'episode_sequence' => 'EpisodeSequence',
+        'esrb_age_rating' => 'EsrbAgeRating',
         'feature' => 'Feature',
         'flavor' => 'Flavor',
         'format' => 'Format',
-        'gemType' => 'GemType',
+        'gem_type' => 'GemType',
         'genre' => 'Genre',
-        'golfClubFlex' => 'GolfClubFlex',
-        'golfClubLoft' => 'GolfClubLoft',
-        'handOrientation' => 'HandOrientation',
-        'hardDiskInterface' => 'HardDiskInterface',
-        'hardDiskSize' => 'HardDiskSize',
-        'hardwarePlatform' => 'HardwarePlatform',
-        'hazardousMaterialType' => 'HazardousMaterialType',
-        'itemDimensions' => 'ItemDimensions',
-        'isAdultProduct' => 'IsAdultProduct',
-        'isAutographed' => 'IsAutographed',
-        'isEligibleForTradeIn' => 'IsEligibleForTradeIn',
-        'isMemorabilia' => 'IsMemorabilia',
-        'issuesPerYear' => 'IssuesPerYear',
-        'itemPartNumber' => 'ItemPartNumber',
+        'golf_club_flex' => 'GolfClubFlex',
+        'golf_club_loft' => 'GolfClubLoft',
+        'hand_orientation' => 'HandOrientation',
+        'hard_disk_interface' => 'HardDiskInterface',
+        'hard_disk_size' => 'HardDiskSize',
+        'hardware_platform' => 'HardwarePlatform',
+        'hazardous_material_type' => 'HazardousMaterialType',
+        'item_dimensions' => 'ItemDimensions',
+        'is_adult_product' => 'IsAdultProduct',
+        'is_autographed' => 'IsAutographed',
+        'is_eligible_for_trade_in' => 'IsEligibleForTradeIn',
+        'is_memorabilia' => 'IsMemorabilia',
+        'issues_per_year' => 'IssuesPerYear',
+        'item_part_number' => 'ItemPartNumber',
         'label' => 'Label',
         'languages' => 'Languages',
-        'legalDisclaimer' => 'LegalDisclaimer',
-        'listPrice' => 'ListPrice',
+        'legal_disclaimer' => 'LegalDisclaimer',
+        'list_price' => 'ListPrice',
         'manufacturer' => 'Manufacturer',
-        'manufacturerMaximumAge' => 'ManufacturerMaximumAge',
-        'manufacturerMinimumAge' => 'ManufacturerMinimumAge',
-        'manufacturerPartsWarrantyDescription' => 'ManufacturerPartsWarrantyDescription',
-        'materialType' => 'MaterialType',
-        'maximumResolution' => 'MaximumResolution',
-        'mediaType' => 'MediaType',
-        'metalStamp' => 'MetalStamp',
-        'metalType' => 'MetalType',
+        'manufacturer_maximum_age' => 'ManufacturerMaximumAge',
+        'manufacturer_minimum_age' => 'ManufacturerMinimumAge',
+        'manufacturer_parts_warranty_description' => 'ManufacturerPartsWarrantyDescription',
+        'material_type' => 'MaterialType',
+        'maximum_resolution' => 'MaximumResolution',
+        'media_type' => 'MediaType',
+        'metal_stamp' => 'MetalStamp',
+        'metal_type' => 'MetalType',
         'model' => 'Model',
-        'numberOfDiscs' => 'NumberOfDiscs',
-        'numberOfIssues' => 'NumberOfIssues',
-        'numberOfItems' => 'NumberOfItems',
-        'numberOfPages' => 'NumberOfPages',
-        'numberOfTracks' => 'NumberOfTracks',
-        'operatingSystem' => 'OperatingSystem',
-        'opticalZoom' => 'OpticalZoom',
-        'packageDimensions' => 'PackageDimensions',
-        'packageQuantity' => 'PackageQuantity',
-        'partNumber' => 'PartNumber',
-        'pegiRating' => 'PegiRating',
+        'number_of_discs' => 'NumberOfDiscs',
+        'number_of_issues' => 'NumberOfIssues',
+        'number_of_items' => 'NumberOfItems',
+        'number_of_pages' => 'NumberOfPages',
+        'number_of_tracks' => 'NumberOfTracks',
+        'operating_system' => 'OperatingSystem',
+        'optical_zoom' => 'OpticalZoom',
+        'package_dimensions' => 'PackageDimensions',
+        'package_quantity' => 'PackageQuantity',
+        'part_number' => 'PartNumber',
+        'pegi_rating' => 'PegiRating',
         'platform' => 'Platform',
-        'processorCount' => 'ProcessorCount',
-        'productGroup' => 'ProductGroup',
-        'productTypeName' => 'ProductTypeName',
-        'productTypeSubcategory' => 'ProductTypeSubcategory',
-        'publicationDate' => 'PublicationDate',
+        'processor_count' => 'ProcessorCount',
+        'product_group' => 'ProductGroup',
+        'product_type_name' => 'ProductTypeName',
+        'product_type_subcategory' => 'ProductTypeSubcategory',
+        'publication_date' => 'PublicationDate',
         'publisher' => 'Publisher',
-        'regionCode' => 'RegionCode',
-        'releaseDate' => 'ReleaseDate',
-        'ringSize' => 'RingSize',
-        'runningTime' => 'RunningTime',
-        'shaftMaterial' => 'ShaftMaterial',
+        'region_code' => 'RegionCode',
+        'release_date' => 'ReleaseDate',
+        'ring_size' => 'RingSize',
+        'running_time' => 'RunningTime',
+        'shaft_material' => 'ShaftMaterial',
         'scent' => 'Scent',
-        'seasonSequence' => 'SeasonSequence',
-        'seikodoProductCode' => 'SeikodoProductCode',
+        'season_sequence' => 'SeasonSequence',
+        'seikodo_product_code' => 'SeikodoProductCode',
         'size' => 'Size',
-        'sizePerPearl' => 'SizePerPearl',
-        'smallImage' => 'SmallImage',
+        'size_per_pearl' => 'SizePerPearl',
+        'small_image' => 'SmallImage',
         'studio' => 'Studio',
-        'subscriptionLength' => 'SubscriptionLength',
-        'systemMemorySize' => 'SystemMemorySize',
-        'systemMemoryType' => 'SystemMemoryType',
-        'theatricalReleaseDate' => 'TheatricalReleaseDate',
+        'subscription_length' => 'SubscriptionLength',
+        'system_memory_size' => 'SystemMemorySize',
+        'system_memory_type' => 'SystemMemoryType',
+        'theatrical_release_date' => 'TheatricalReleaseDate',
         'title' => 'Title',
-        'totalDiamondWeight' => 'TotalDiamondWeight',
-        'totalGemWeight' => 'TotalGemWeight',
+        'total_diamond_weight' => 'TotalDiamondWeight',
+        'total_gem_weight' => 'TotalGemWeight',
         'warranty' => 'Warranty',
-        'weeeTaxValue' => 'WeeeTaxValue',
+        'weee_tax_value' => 'WeeeTaxValue',
     ];
 
     /**
@@ -373,100 +373,100 @@ class AttributeSetListType implements \ArrayAccess, \JsonSerializable, ModelInte
     protected static array $setters = [
         'actor' => 'setActor',
         'artist' => 'setArtist',
-        'aspectRatio' => 'setAspectRatio',
-        'audienceRating' => 'setAudienceRating',
+        'aspect_ratio' => 'setAspectRatio',
+        'audience_rating' => 'setAudienceRating',
         'author' => 'setAuthor',
-        'backFinding' => 'setBackFinding',
-        'bandMaterialType' => 'setBandMaterialType',
+        'back_finding' => 'setBackFinding',
+        'band_material_type' => 'setBandMaterialType',
         'binding' => 'setBinding',
-        'blurayRegion' => 'setBlurayRegion',
+        'bluray_region' => 'setBlurayRegion',
         'brand' => 'setBrand',
-        'ceroAgeRating' => 'setCeroAgeRating',
-        'chainType' => 'setChainType',
-        'claspType' => 'setClaspType',
+        'cero_age_rating' => 'setCeroAgeRating',
+        'chain_type' => 'setChainType',
+        'clasp_type' => 'setClaspType',
         'color' => 'setColor',
-        'cpuManufacturer' => 'setCpuManufacturer',
-        'cpuSpeed' => 'setCpuSpeed',
-        'cpuType' => 'setCpuType',
+        'cpu_manufacturer' => 'setCpuManufacturer',
+        'cpu_speed' => 'setCpuSpeed',
+        'cpu_type' => 'setCpuType',
         'creator' => 'setCreator',
         'department' => 'setDepartment',
         'director' => 'setDirector',
-        'displaySize' => 'setDisplaySize',
+        'display_size' => 'setDisplaySize',
         'edition' => 'setEdition',
-        'episodeSequence' => 'setEpisodeSequence',
-        'esrbAgeRating' => 'setEsrbAgeRating',
+        'episode_sequence' => 'setEpisodeSequence',
+        'esrb_age_rating' => 'setEsrbAgeRating',
         'feature' => 'setFeature',
         'flavor' => 'setFlavor',
         'format' => 'setFormat',
-        'gemType' => 'setGemType',
+        'gem_type' => 'setGemType',
         'genre' => 'setGenre',
-        'golfClubFlex' => 'setGolfClubFlex',
-        'golfClubLoft' => 'setGolfClubLoft',
-        'handOrientation' => 'setHandOrientation',
-        'hardDiskInterface' => 'setHardDiskInterface',
-        'hardDiskSize' => 'setHardDiskSize',
-        'hardwarePlatform' => 'setHardwarePlatform',
-        'hazardousMaterialType' => 'setHazardousMaterialType',
-        'itemDimensions' => 'setItemDimensions',
-        'isAdultProduct' => 'setIsAdultProduct',
-        'isAutographed' => 'setIsAutographed',
-        'isEligibleForTradeIn' => 'setIsEligibleForTradeIn',
-        'isMemorabilia' => 'setIsMemorabilia',
-        'issuesPerYear' => 'setIssuesPerYear',
-        'itemPartNumber' => 'setItemPartNumber',
+        'golf_club_flex' => 'setGolfClubFlex',
+        'golf_club_loft' => 'setGolfClubLoft',
+        'hand_orientation' => 'setHandOrientation',
+        'hard_disk_interface' => 'setHardDiskInterface',
+        'hard_disk_size' => 'setHardDiskSize',
+        'hardware_platform' => 'setHardwarePlatform',
+        'hazardous_material_type' => 'setHazardousMaterialType',
+        'item_dimensions' => 'setItemDimensions',
+        'is_adult_product' => 'setIsAdultProduct',
+        'is_autographed' => 'setIsAutographed',
+        'is_eligible_for_trade_in' => 'setIsEligibleForTradeIn',
+        'is_memorabilia' => 'setIsMemorabilia',
+        'issues_per_year' => 'setIssuesPerYear',
+        'item_part_number' => 'setItemPartNumber',
         'label' => 'setLabel',
         'languages' => 'setLanguages',
-        'legalDisclaimer' => 'setLegalDisclaimer',
-        'listPrice' => 'setListPrice',
+        'legal_disclaimer' => 'setLegalDisclaimer',
+        'list_price' => 'setListPrice',
         'manufacturer' => 'setManufacturer',
-        'manufacturerMaximumAge' => 'setManufacturerMaximumAge',
-        'manufacturerMinimumAge' => 'setManufacturerMinimumAge',
-        'manufacturerPartsWarrantyDescription' => 'setManufacturerPartsWarrantyDescription',
-        'materialType' => 'setMaterialType',
-        'maximumResolution' => 'setMaximumResolution',
-        'mediaType' => 'setMediaType',
-        'metalStamp' => 'setMetalStamp',
-        'metalType' => 'setMetalType',
+        'manufacturer_maximum_age' => 'setManufacturerMaximumAge',
+        'manufacturer_minimum_age' => 'setManufacturerMinimumAge',
+        'manufacturer_parts_warranty_description' => 'setManufacturerPartsWarrantyDescription',
+        'material_type' => 'setMaterialType',
+        'maximum_resolution' => 'setMaximumResolution',
+        'media_type' => 'setMediaType',
+        'metal_stamp' => 'setMetalStamp',
+        'metal_type' => 'setMetalType',
         'model' => 'setModel',
-        'numberOfDiscs' => 'setNumberOfDiscs',
-        'numberOfIssues' => 'setNumberOfIssues',
-        'numberOfItems' => 'setNumberOfItems',
-        'numberOfPages' => 'setNumberOfPages',
-        'numberOfTracks' => 'setNumberOfTracks',
-        'operatingSystem' => 'setOperatingSystem',
-        'opticalZoom' => 'setOpticalZoom',
-        'packageDimensions' => 'setPackageDimensions',
-        'packageQuantity' => 'setPackageQuantity',
-        'partNumber' => 'setPartNumber',
-        'pegiRating' => 'setPegiRating',
+        'number_of_discs' => 'setNumberOfDiscs',
+        'number_of_issues' => 'setNumberOfIssues',
+        'number_of_items' => 'setNumberOfItems',
+        'number_of_pages' => 'setNumberOfPages',
+        'number_of_tracks' => 'setNumberOfTracks',
+        'operating_system' => 'setOperatingSystem',
+        'optical_zoom' => 'setOpticalZoom',
+        'package_dimensions' => 'setPackageDimensions',
+        'package_quantity' => 'setPackageQuantity',
+        'part_number' => 'setPartNumber',
+        'pegi_rating' => 'setPegiRating',
         'platform' => 'setPlatform',
-        'processorCount' => 'setProcessorCount',
-        'productGroup' => 'setProductGroup',
-        'productTypeName' => 'setProductTypeName',
-        'productTypeSubcategory' => 'setProductTypeSubcategory',
-        'publicationDate' => 'setPublicationDate',
+        'processor_count' => 'setProcessorCount',
+        'product_group' => 'setProductGroup',
+        'product_type_name' => 'setProductTypeName',
+        'product_type_subcategory' => 'setProductTypeSubcategory',
+        'publication_date' => 'setPublicationDate',
         'publisher' => 'setPublisher',
-        'regionCode' => 'setRegionCode',
-        'releaseDate' => 'setReleaseDate',
-        'ringSize' => 'setRingSize',
-        'runningTime' => 'setRunningTime',
-        'shaftMaterial' => 'setShaftMaterial',
+        'region_code' => 'setRegionCode',
+        'release_date' => 'setReleaseDate',
+        'ring_size' => 'setRingSize',
+        'running_time' => 'setRunningTime',
+        'shaft_material' => 'setShaftMaterial',
         'scent' => 'setScent',
-        'seasonSequence' => 'setSeasonSequence',
-        'seikodoProductCode' => 'setSeikodoProductCode',
+        'season_sequence' => 'setSeasonSequence',
+        'seikodo_product_code' => 'setSeikodoProductCode',
         'size' => 'setSize',
-        'sizePerPearl' => 'setSizePerPearl',
-        'smallImage' => 'setSmallImage',
+        'size_per_pearl' => 'setSizePerPearl',
+        'small_image' => 'setSmallImage',
         'studio' => 'setStudio',
-        'subscriptionLength' => 'setSubscriptionLength',
-        'systemMemorySize' => 'setSystemMemorySize',
-        'systemMemoryType' => 'setSystemMemoryType',
-        'theatricalReleaseDate' => 'setTheatricalReleaseDate',
+        'subscription_length' => 'setSubscriptionLength',
+        'system_memory_size' => 'setSystemMemorySize',
+        'system_memory_type' => 'setSystemMemoryType',
+        'theatrical_release_date' => 'setTheatricalReleaseDate',
         'title' => 'setTitle',
-        'totalDiamondWeight' => 'setTotalDiamondWeight',
-        'totalGemWeight' => 'setTotalGemWeight',
+        'total_diamond_weight' => 'setTotalDiamondWeight',
+        'total_gem_weight' => 'setTotalGemWeight',
         'warranty' => 'setWarranty',
-        'weeeTaxValue' => 'setWeeeTaxValue',
+        'weee_tax_value' => 'setWeeeTaxValue',
     ];
 
     /**
@@ -477,100 +477,100 @@ class AttributeSetListType implements \ArrayAccess, \JsonSerializable, ModelInte
     protected static array $getters = [
         'actor' => 'getActor',
         'artist' => 'getArtist',
-        'aspectRatio' => 'getAspectRatio',
-        'audienceRating' => 'getAudienceRating',
+        'aspect_ratio' => 'getAspectRatio',
+        'audience_rating' => 'getAudienceRating',
         'author' => 'getAuthor',
-        'backFinding' => 'getBackFinding',
-        'bandMaterialType' => 'getBandMaterialType',
+        'back_finding' => 'getBackFinding',
+        'band_material_type' => 'getBandMaterialType',
         'binding' => 'getBinding',
-        'blurayRegion' => 'getBlurayRegion',
+        'bluray_region' => 'getBlurayRegion',
         'brand' => 'getBrand',
-        'ceroAgeRating' => 'getCeroAgeRating',
-        'chainType' => 'getChainType',
-        'claspType' => 'getClaspType',
+        'cero_age_rating' => 'getCeroAgeRating',
+        'chain_type' => 'getChainType',
+        'clasp_type' => 'getClaspType',
         'color' => 'getColor',
-        'cpuManufacturer' => 'getCpuManufacturer',
-        'cpuSpeed' => 'getCpuSpeed',
-        'cpuType' => 'getCpuType',
+        'cpu_manufacturer' => 'getCpuManufacturer',
+        'cpu_speed' => 'getCpuSpeed',
+        'cpu_type' => 'getCpuType',
         'creator' => 'getCreator',
         'department' => 'getDepartment',
         'director' => 'getDirector',
-        'displaySize' => 'getDisplaySize',
+        'display_size' => 'getDisplaySize',
         'edition' => 'getEdition',
-        'episodeSequence' => 'getEpisodeSequence',
-        'esrbAgeRating' => 'getEsrbAgeRating',
+        'episode_sequence' => 'getEpisodeSequence',
+        'esrb_age_rating' => 'getEsrbAgeRating',
         'feature' => 'getFeature',
         'flavor' => 'getFlavor',
         'format' => 'getFormat',
-        'gemType' => 'getGemType',
+        'gem_type' => 'getGemType',
         'genre' => 'getGenre',
-        'golfClubFlex' => 'getGolfClubFlex',
-        'golfClubLoft' => 'getGolfClubLoft',
-        'handOrientation' => 'getHandOrientation',
-        'hardDiskInterface' => 'getHardDiskInterface',
-        'hardDiskSize' => 'getHardDiskSize',
-        'hardwarePlatform' => 'getHardwarePlatform',
-        'hazardousMaterialType' => 'getHazardousMaterialType',
-        'itemDimensions' => 'getItemDimensions',
-        'isAdultProduct' => 'getIsAdultProduct',
-        'isAutographed' => 'getIsAutographed',
-        'isEligibleForTradeIn' => 'getIsEligibleForTradeIn',
-        'isMemorabilia' => 'getIsMemorabilia',
-        'issuesPerYear' => 'getIssuesPerYear',
-        'itemPartNumber' => 'getItemPartNumber',
+        'golf_club_flex' => 'getGolfClubFlex',
+        'golf_club_loft' => 'getGolfClubLoft',
+        'hand_orientation' => 'getHandOrientation',
+        'hard_disk_interface' => 'getHardDiskInterface',
+        'hard_disk_size' => 'getHardDiskSize',
+        'hardware_platform' => 'getHardwarePlatform',
+        'hazardous_material_type' => 'getHazardousMaterialType',
+        'item_dimensions' => 'getItemDimensions',
+        'is_adult_product' => 'getIsAdultProduct',
+        'is_autographed' => 'getIsAutographed',
+        'is_eligible_for_trade_in' => 'getIsEligibleForTradeIn',
+        'is_memorabilia' => 'getIsMemorabilia',
+        'issues_per_year' => 'getIssuesPerYear',
+        'item_part_number' => 'getItemPartNumber',
         'label' => 'getLabel',
         'languages' => 'getLanguages',
-        'legalDisclaimer' => 'getLegalDisclaimer',
-        'listPrice' => 'getListPrice',
+        'legal_disclaimer' => 'getLegalDisclaimer',
+        'list_price' => 'getListPrice',
         'manufacturer' => 'getManufacturer',
-        'manufacturerMaximumAge' => 'getManufacturerMaximumAge',
-        'manufacturerMinimumAge' => 'getManufacturerMinimumAge',
-        'manufacturerPartsWarrantyDescription' => 'getManufacturerPartsWarrantyDescription',
-        'materialType' => 'getMaterialType',
-        'maximumResolution' => 'getMaximumResolution',
-        'mediaType' => 'getMediaType',
-        'metalStamp' => 'getMetalStamp',
-        'metalType' => 'getMetalType',
+        'manufacturer_maximum_age' => 'getManufacturerMaximumAge',
+        'manufacturer_minimum_age' => 'getManufacturerMinimumAge',
+        'manufacturer_parts_warranty_description' => 'getManufacturerPartsWarrantyDescription',
+        'material_type' => 'getMaterialType',
+        'maximum_resolution' => 'getMaximumResolution',
+        'media_type' => 'getMediaType',
+        'metal_stamp' => 'getMetalStamp',
+        'metal_type' => 'getMetalType',
         'model' => 'getModel',
-        'numberOfDiscs' => 'getNumberOfDiscs',
-        'numberOfIssues' => 'getNumberOfIssues',
-        'numberOfItems' => 'getNumberOfItems',
-        'numberOfPages' => 'getNumberOfPages',
-        'numberOfTracks' => 'getNumberOfTracks',
-        'operatingSystem' => 'getOperatingSystem',
-        'opticalZoom' => 'getOpticalZoom',
-        'packageDimensions' => 'getPackageDimensions',
-        'packageQuantity' => 'getPackageQuantity',
-        'partNumber' => 'getPartNumber',
-        'pegiRating' => 'getPegiRating',
+        'number_of_discs' => 'getNumberOfDiscs',
+        'number_of_issues' => 'getNumberOfIssues',
+        'number_of_items' => 'getNumberOfItems',
+        'number_of_pages' => 'getNumberOfPages',
+        'number_of_tracks' => 'getNumberOfTracks',
+        'operating_system' => 'getOperatingSystem',
+        'optical_zoom' => 'getOpticalZoom',
+        'package_dimensions' => 'getPackageDimensions',
+        'package_quantity' => 'getPackageQuantity',
+        'part_number' => 'getPartNumber',
+        'pegi_rating' => 'getPegiRating',
         'platform' => 'getPlatform',
-        'processorCount' => 'getProcessorCount',
-        'productGroup' => 'getProductGroup',
-        'productTypeName' => 'getProductTypeName',
-        'productTypeSubcategory' => 'getProductTypeSubcategory',
-        'publicationDate' => 'getPublicationDate',
+        'processor_count' => 'getProcessorCount',
+        'product_group' => 'getProductGroup',
+        'product_type_name' => 'getProductTypeName',
+        'product_type_subcategory' => 'getProductTypeSubcategory',
+        'publication_date' => 'getPublicationDate',
         'publisher' => 'getPublisher',
-        'regionCode' => 'getRegionCode',
-        'releaseDate' => 'getReleaseDate',
-        'ringSize' => 'getRingSize',
-        'runningTime' => 'getRunningTime',
-        'shaftMaterial' => 'getShaftMaterial',
+        'region_code' => 'getRegionCode',
+        'release_date' => 'getReleaseDate',
+        'ring_size' => 'getRingSize',
+        'running_time' => 'getRunningTime',
+        'shaft_material' => 'getShaftMaterial',
         'scent' => 'getScent',
-        'seasonSequence' => 'getSeasonSequence',
-        'seikodoProductCode' => 'getSeikodoProductCode',
+        'season_sequence' => 'getSeasonSequence',
+        'seikodo_product_code' => 'getSeikodoProductCode',
         'size' => 'getSize',
-        'sizePerPearl' => 'getSizePerPearl',
-        'smallImage' => 'getSmallImage',
+        'size_per_pearl' => 'getSizePerPearl',
+        'small_image' => 'getSmallImage',
         'studio' => 'getStudio',
-        'subscriptionLength' => 'getSubscriptionLength',
-        'systemMemorySize' => 'getSystemMemorySize',
-        'systemMemoryType' => 'getSystemMemoryType',
-        'theatricalReleaseDate' => 'getTheatricalReleaseDate',
+        'subscription_length' => 'getSubscriptionLength',
+        'system_memory_size' => 'getSystemMemorySize',
+        'system_memory_type' => 'getSystemMemoryType',
+        'theatrical_release_date' => 'getTheatricalReleaseDate',
         'title' => 'getTitle',
-        'totalDiamondWeight' => 'getTotalDiamondWeight',
-        'totalGemWeight' => 'getTotalGemWeight',
+        'total_diamond_weight' => 'getTotalDiamondWeight',
+        'total_gem_weight' => 'getTotalGemWeight',
         'warranty' => 'getWarranty',
-        'weeeTaxValue' => 'getWeeeTaxValue',
+        'weee_tax_value' => 'getWeeeTaxValue',
     ];
 
     /**
@@ -590,100 +590,100 @@ public function __construct(array $data = null)
     {
         $this->container['actor'] = $data['actor'] ?? null;
         $this->container['artist'] = $data['artist'] ?? null;
-        $this->container['aspectRatio'] = $data['aspectRatio'] ?? null;
-        $this->container['audienceRating'] = $data['audienceRating'] ?? null;
+        $this->container['aspect_ratio'] = $data['aspect_ratio'] ?? null;
+        $this->container['audience_rating'] = $data['audience_rating'] ?? null;
         $this->container['author'] = $data['author'] ?? null;
-        $this->container['backFinding'] = $data['backFinding'] ?? null;
-        $this->container['bandMaterialType'] = $data['bandMaterialType'] ?? null;
+        $this->container['back_finding'] = $data['back_finding'] ?? null;
+        $this->container['band_material_type'] = $data['band_material_type'] ?? null;
         $this->container['binding'] = $data['binding'] ?? null;
-        $this->container['blurayRegion'] = $data['blurayRegion'] ?? null;
+        $this->container['bluray_region'] = $data['bluray_region'] ?? null;
         $this->container['brand'] = $data['brand'] ?? null;
-        $this->container['ceroAgeRating'] = $data['ceroAgeRating'] ?? null;
-        $this->container['chainType'] = $data['chainType'] ?? null;
-        $this->container['claspType'] = $data['claspType'] ?? null;
+        $this->container['cero_age_rating'] = $data['cero_age_rating'] ?? null;
+        $this->container['chain_type'] = $data['chain_type'] ?? null;
+        $this->container['clasp_type'] = $data['clasp_type'] ?? null;
         $this->container['color'] = $data['color'] ?? null;
-        $this->container['cpuManufacturer'] = $data['cpuManufacturer'] ?? null;
-        $this->container['cpuSpeed'] = $data['cpuSpeed'] ?? null;
-        $this->container['cpuType'] = $data['cpuType'] ?? null;
+        $this->container['cpu_manufacturer'] = $data['cpu_manufacturer'] ?? null;
+        $this->container['cpu_speed'] = $data['cpu_speed'] ?? null;
+        $this->container['cpu_type'] = $data['cpu_type'] ?? null;
         $this->container['creator'] = $data['creator'] ?? null;
         $this->container['department'] = $data['department'] ?? null;
         $this->container['director'] = $data['director'] ?? null;
-        $this->container['displaySize'] = $data['displaySize'] ?? null;
+        $this->container['display_size'] = $data['display_size'] ?? null;
         $this->container['edition'] = $data['edition'] ?? null;
-        $this->container['episodeSequence'] = $data['episodeSequence'] ?? null;
-        $this->container['esrbAgeRating'] = $data['esrbAgeRating'] ?? null;
+        $this->container['episode_sequence'] = $data['episode_sequence'] ?? null;
+        $this->container['esrb_age_rating'] = $data['esrb_age_rating'] ?? null;
         $this->container['feature'] = $data['feature'] ?? null;
         $this->container['flavor'] = $data['flavor'] ?? null;
         $this->container['format'] = $data['format'] ?? null;
-        $this->container['gemType'] = $data['gemType'] ?? null;
+        $this->container['gem_type'] = $data['gem_type'] ?? null;
         $this->container['genre'] = $data['genre'] ?? null;
-        $this->container['golfClubFlex'] = $data['golfClubFlex'] ?? null;
-        $this->container['golfClubLoft'] = $data['golfClubLoft'] ?? null;
-        $this->container['handOrientation'] = $data['handOrientation'] ?? null;
-        $this->container['hardDiskInterface'] = $data['hardDiskInterface'] ?? null;
-        $this->container['hardDiskSize'] = $data['hardDiskSize'] ?? null;
-        $this->container['hardwarePlatform'] = $data['hardwarePlatform'] ?? null;
-        $this->container['hazardousMaterialType'] = $data['hazardousMaterialType'] ?? null;
-        $this->container['itemDimensions'] = $data['itemDimensions'] ?? null;
-        $this->container['isAdultProduct'] = $data['isAdultProduct'] ?? null;
-        $this->container['isAutographed'] = $data['isAutographed'] ?? null;
-        $this->container['isEligibleForTradeIn'] = $data['isEligibleForTradeIn'] ?? null;
-        $this->container['isMemorabilia'] = $data['isMemorabilia'] ?? null;
-        $this->container['issuesPerYear'] = $data['issuesPerYear'] ?? null;
-        $this->container['itemPartNumber'] = $data['itemPartNumber'] ?? null;
+        $this->container['golf_club_flex'] = $data['golf_club_flex'] ?? null;
+        $this->container['golf_club_loft'] = $data['golf_club_loft'] ?? null;
+        $this->container['hand_orientation'] = $data['hand_orientation'] ?? null;
+        $this->container['hard_disk_interface'] = $data['hard_disk_interface'] ?? null;
+        $this->container['hard_disk_size'] = $data['hard_disk_size'] ?? null;
+        $this->container['hardware_platform'] = $data['hardware_platform'] ?? null;
+        $this->container['hazardous_material_type'] = $data['hazardous_material_type'] ?? null;
+        $this->container['item_dimensions'] = $data['item_dimensions'] ?? null;
+        $this->container['is_adult_product'] = $data['is_adult_product'] ?? null;
+        $this->container['is_autographed'] = $data['is_autographed'] ?? null;
+        $this->container['is_eligible_for_trade_in'] = $data['is_eligible_for_trade_in'] ?? null;
+        $this->container['is_memorabilia'] = $data['is_memorabilia'] ?? null;
+        $this->container['issues_per_year'] = $data['issues_per_year'] ?? null;
+        $this->container['item_part_number'] = $data['item_part_number'] ?? null;
         $this->container['label'] = $data['label'] ?? null;
         $this->container['languages'] = $data['languages'] ?? null;
-        $this->container['legalDisclaimer'] = $data['legalDisclaimer'] ?? null;
-        $this->container['listPrice'] = $data['listPrice'] ?? null;
+        $this->container['legal_disclaimer'] = $data['legal_disclaimer'] ?? null;
+        $this->container['list_price'] = $data['list_price'] ?? null;
         $this->container['manufacturer'] = $data['manufacturer'] ?? null;
-        $this->container['manufacturerMaximumAge'] = $data['manufacturerMaximumAge'] ?? null;
-        $this->container['manufacturerMinimumAge'] = $data['manufacturerMinimumAge'] ?? null;
-        $this->container['manufacturerPartsWarrantyDescription'] = $data['manufacturerPartsWarrantyDescription'] ?? null;
-        $this->container['materialType'] = $data['materialType'] ?? null;
-        $this->container['maximumResolution'] = $data['maximumResolution'] ?? null;
-        $this->container['mediaType'] = $data['mediaType'] ?? null;
-        $this->container['metalStamp'] = $data['metalStamp'] ?? null;
-        $this->container['metalType'] = $data['metalType'] ?? null;
+        $this->container['manufacturer_maximum_age'] = $data['manufacturer_maximum_age'] ?? null;
+        $this->container['manufacturer_minimum_age'] = $data['manufacturer_minimum_age'] ?? null;
+        $this->container['manufacturer_parts_warranty_description'] = $data['manufacturer_parts_warranty_description'] ?? null;
+        $this->container['material_type'] = $data['material_type'] ?? null;
+        $this->container['maximum_resolution'] = $data['maximum_resolution'] ?? null;
+        $this->container['media_type'] = $data['media_type'] ?? null;
+        $this->container['metal_stamp'] = $data['metal_stamp'] ?? null;
+        $this->container['metal_type'] = $data['metal_type'] ?? null;
         $this->container['model'] = $data['model'] ?? null;
-        $this->container['numberOfDiscs'] = $data['numberOfDiscs'] ?? null;
-        $this->container['numberOfIssues'] = $data['numberOfIssues'] ?? null;
-        $this->container['numberOfItems'] = $data['numberOfItems'] ?? null;
-        $this->container['numberOfPages'] = $data['numberOfPages'] ?? null;
-        $this->container['numberOfTracks'] = $data['numberOfTracks'] ?? null;
-        $this->container['operatingSystem'] = $data['operatingSystem'] ?? null;
-        $this->container['opticalZoom'] = $data['opticalZoom'] ?? null;
-        $this->container['packageDimensions'] = $data['packageDimensions'] ?? null;
-        $this->container['packageQuantity'] = $data['packageQuantity'] ?? null;
-        $this->container['partNumber'] = $data['partNumber'] ?? null;
-        $this->container['pegiRating'] = $data['pegiRating'] ?? null;
+        $this->container['number_of_discs'] = $data['number_of_discs'] ?? null;
+        $this->container['number_of_issues'] = $data['number_of_issues'] ?? null;
+        $this->container['number_of_items'] = $data['number_of_items'] ?? null;
+        $this->container['number_of_pages'] = $data['number_of_pages'] ?? null;
+        $this->container['number_of_tracks'] = $data['number_of_tracks'] ?? null;
+        $this->container['operating_system'] = $data['operating_system'] ?? null;
+        $this->container['optical_zoom'] = $data['optical_zoom'] ?? null;
+        $this->container['package_dimensions'] = $data['package_dimensions'] ?? null;
+        $this->container['package_quantity'] = $data['package_quantity'] ?? null;
+        $this->container['part_number'] = $data['part_number'] ?? null;
+        $this->container['pegi_rating'] = $data['pegi_rating'] ?? null;
         $this->container['platform'] = $data['platform'] ?? null;
-        $this->container['processorCount'] = $data['processorCount'] ?? null;
-        $this->container['productGroup'] = $data['productGroup'] ?? null;
-        $this->container['productTypeName'] = $data['productTypeName'] ?? null;
-        $this->container['productTypeSubcategory'] = $data['productTypeSubcategory'] ?? null;
-        $this->container['publicationDate'] = $data['publicationDate'] ?? null;
+        $this->container['processor_count'] = $data['processor_count'] ?? null;
+        $this->container['product_group'] = $data['product_group'] ?? null;
+        $this->container['product_type_name'] = $data['product_type_name'] ?? null;
+        $this->container['product_type_subcategory'] = $data['product_type_subcategory'] ?? null;
+        $this->container['publication_date'] = $data['publication_date'] ?? null;
         $this->container['publisher'] = $data['publisher'] ?? null;
-        $this->container['regionCode'] = $data['regionCode'] ?? null;
-        $this->container['releaseDate'] = $data['releaseDate'] ?? null;
-        $this->container['ringSize'] = $data['ringSize'] ?? null;
-        $this->container['runningTime'] = $data['runningTime'] ?? null;
-        $this->container['shaftMaterial'] = $data['shaftMaterial'] ?? null;
+        $this->container['region_code'] = $data['region_code'] ?? null;
+        $this->container['release_date'] = $data['release_date'] ?? null;
+        $this->container['ring_size'] = $data['ring_size'] ?? null;
+        $this->container['running_time'] = $data['running_time'] ?? null;
+        $this->container['shaft_material'] = $data['shaft_material'] ?? null;
         $this->container['scent'] = $data['scent'] ?? null;
-        $this->container['seasonSequence'] = $data['seasonSequence'] ?? null;
-        $this->container['seikodoProductCode'] = $data['seikodoProductCode'] ?? null;
+        $this->container['season_sequence'] = $data['season_sequence'] ?? null;
+        $this->container['seikodo_product_code'] = $data['seikodo_product_code'] ?? null;
         $this->container['size'] = $data['size'] ?? null;
-        $this->container['sizePerPearl'] = $data['sizePerPearl'] ?? null;
-        $this->container['smallImage'] = $data['smallImage'] ?? null;
+        $this->container['size_per_pearl'] = $data['size_per_pearl'] ?? null;
+        $this->container['small_image'] = $data['small_image'] ?? null;
         $this->container['studio'] = $data['studio'] ?? null;
-        $this->container['subscriptionLength'] = $data['subscriptionLength'] ?? null;
-        $this->container['systemMemorySize'] = $data['systemMemorySize'] ?? null;
-        $this->container['systemMemoryType'] = $data['systemMemoryType'] ?? null;
-        $this->container['theatricalReleaseDate'] = $data['theatricalReleaseDate'] ?? null;
+        $this->container['subscription_length'] = $data['subscription_length'] ?? null;
+        $this->container['system_memory_size'] = $data['system_memory_size'] ?? null;
+        $this->container['system_memory_type'] = $data['system_memory_type'] ?? null;
+        $this->container['theatrical_release_date'] = $data['theatrical_release_date'] ?? null;
         $this->container['title'] = $data['title'] ?? null;
-        $this->container['totalDiamondWeight'] = $data['totalDiamondWeight'] ?? null;
-        $this->container['totalGemWeight'] = $data['totalGemWeight'] ?? null;
+        $this->container['total_diamond_weight'] = $data['total_diamond_weight'] ?? null;
+        $this->container['total_gem_weight'] = $data['total_gem_weight'] ?? null;
         $this->container['warranty'] = $data['warranty'] ?? null;
-        $this->container['weeeTaxValue'] = $data['weeeTaxValue'] ?? null;
+        $this->container['weee_tax_value'] = $data['weee_tax_value'] ?? null;
     }
 
     /**
@@ -822,41 +822,41 @@ public function setArtist(?array $artist) : self
     }
 
     /**
-     * Gets aspectRatio.
+     * Gets aspect_ratio.
      */
     public function getAspectRatio() : ?string
     {
-        return $this->container['aspectRatio'];
+        return $this->container['aspect_ratio'];
     }
 
     /**
-     * Sets aspectRatio.
+     * Sets aspect_ratio.
      *
-     * @param null|string $aspectRatio the aspect ratio attribute of the item
+     * @param null|string $aspect_ratio the aspect ratio attribute of the item
      */
-    public function setAspectRatio(?string $aspectRatio) : self
+    public function setAspectRatio(?string $aspect_ratio) : self
     {
-        $this->container['aspectRatio'] = $aspectRatio;
+        $this->container['aspect_ratio'] = $aspect_ratio;
 
         return $this;
     }
 
     /**
-     * Gets audienceRating.
+     * Gets audience_rating.
      */
     public function getAudienceRating() : ?string
     {
-        return $this->container['audienceRating'];
+        return $this->container['audience_rating'];
     }
 
     /**
-     * Sets audienceRating.
+     * Sets audience_rating.
      *
-     * @param null|string $audienceRating the audience rating attribute of the item
+     * @param null|string $audience_rating the audience rating attribute of the item
      */
-    public function setAudienceRating(?string $audienceRating) : self
+    public function setAudienceRating(?string $audience_rating) : self
     {
-        $this->container['audienceRating'] = $audienceRating;
+        $this->container['audience_rating'] = $audience_rating;
 
         return $this;
     }
@@ -884,41 +884,41 @@ public function setAuthor(?array $author) : self
     }
 
     /**
-     * Gets backFinding.
+     * Gets back_finding.
      */
     public function getBackFinding() : ?string
     {
-        return $this->container['backFinding'];
+        return $this->container['back_finding'];
     }
 
     /**
-     * Sets backFinding.
+     * Sets back_finding.
      *
-     * @param null|string $backFinding the back finding attribute of the item
+     * @param null|string $back_finding the back finding attribute of the item
      */
-    public function setBackFinding(?string $backFinding) : self
+    public function setBackFinding(?string $back_finding) : self
     {
-        $this->container['backFinding'] = $backFinding;
+        $this->container['back_finding'] = $back_finding;
 
         return $this;
     }
 
     /**
-     * Gets bandMaterialType.
+     * Gets band_material_type.
      */
     public function getBandMaterialType() : ?string
     {
-        return $this->container['bandMaterialType'];
+        return $this->container['band_material_type'];
     }
 
     /**
-     * Sets bandMaterialType.
+     * Sets band_material_type.
      *
-     * @param null|string $bandMaterialType the band material type attribute of the item
+     * @param null|string $band_material_type the band material type attribute of the item
      */
-    public function setBandMaterialType(?string $bandMaterialType) : self
+    public function setBandMaterialType(?string $band_material_type) : self
     {
-        $this->container['bandMaterialType'] = $bandMaterialType;
+        $this->container['band_material_type'] = $band_material_type;
 
         return $this;
     }
@@ -944,21 +944,21 @@ public function setBinding(?string $binding) : self
     }
 
     /**
-     * Gets blurayRegion.
+     * Gets bluray_region.
      */
     public function getBlurayRegion() : ?string
     {
-        return $this->container['blurayRegion'];
+        return $this->container['bluray_region'];
     }
 
     /**
-     * Sets blurayRegion.
+     * Sets bluray_region.
      *
-     * @param null|string $blurayRegion the Bluray region attribute of the item
+     * @param null|string $bluray_region the Bluray region attribute of the item
      */
-    public function setBlurayRegion(?string $blurayRegion) : self
+    public function setBlurayRegion(?string $bluray_region) : self
     {
-        $this->container['blurayRegion'] = $blurayRegion;
+        $this->container['bluray_region'] = $bluray_region;
 
         return $this;
     }
@@ -984,61 +984,61 @@ public function setBrand(?string $brand) : self
     }
 
     /**
-     * Gets ceroAgeRating.
+     * Gets cero_age_rating.
      */
     public function getCeroAgeRating() : ?string
     {
-        return $this->container['ceroAgeRating'];
+        return $this->container['cero_age_rating'];
     }
 
     /**
-     * Sets ceroAgeRating.
+     * Sets cero_age_rating.
      *
-     * @param null|string $ceroAgeRating the CERO age rating attribute of the item
+     * @param null|string $cero_age_rating the CERO age rating attribute of the item
      */
-    public function setCeroAgeRating(?string $ceroAgeRating) : self
+    public function setCeroAgeRating(?string $cero_age_rating) : self
     {
-        $this->container['ceroAgeRating'] = $ceroAgeRating;
+        $this->container['cero_age_rating'] = $cero_age_rating;
 
         return $this;
     }
 
     /**
-     * Gets chainType.
+     * Gets chain_type.
      */
     public function getChainType() : ?string
     {
-        return $this->container['chainType'];
+        return $this->container['chain_type'];
     }
 
     /**
-     * Sets chainType.
+     * Sets chain_type.
      *
-     * @param null|string $chainType the chain type attribute of the item
+     * @param null|string $chain_type the chain type attribute of the item
      */
-    public function setChainType(?string $chainType) : self
+    public function setChainType(?string $chain_type) : self
     {
-        $this->container['chainType'] = $chainType;
+        $this->container['chain_type'] = $chain_type;
 
         return $this;
     }
 
     /**
-     * Gets claspType.
+     * Gets clasp_type.
      */
     public function getClaspType() : ?string
     {
-        return $this->container['claspType'];
+        return $this->container['clasp_type'];
     }
 
     /**
-     * Sets claspType.
+     * Sets clasp_type.
      *
-     * @param null|string $claspType the clasp type attribute of the item
+     * @param null|string $clasp_type the clasp type attribute of the item
      */
-    public function setClaspType(?string $claspType) : self
+    public function setClaspType(?string $clasp_type) : self
     {
-        $this->container['claspType'] = $claspType;
+        $this->container['clasp_type'] = $clasp_type;
 
         return $this;
     }
@@ -1064,61 +1064,61 @@ public function setColor(?string $color) : self
     }
 
     /**
-     * Gets cpuManufacturer.
+     * Gets cpu_manufacturer.
      */
     public function getCpuManufacturer() : ?string
     {
-        return $this->container['cpuManufacturer'];
+        return $this->container['cpu_manufacturer'];
     }
 
     /**
-     * Sets cpuManufacturer.
+     * Sets cpu_manufacturer.
      *
-     * @param null|string $cpuManufacturer the CPU manufacturer attribute of the item
+     * @param null|string $cpu_manufacturer the CPU manufacturer attribute of the item
      */
-    public function setCpuManufacturer(?string $cpuManufacturer) : self
+    public function setCpuManufacturer(?string $cpu_manufacturer) : self
     {
-        $this->container['cpuManufacturer'] = $cpuManufacturer;
+        $this->container['cpu_manufacturer'] = $cpu_manufacturer;
 
         return $this;
     }
 
     /**
-     * Gets cpuSpeed.
+     * Gets cpu_speed.
      */
     public function getCpuSpeed() : ?DecimalWithUnits
     {
-        return $this->container['cpuSpeed'];
+        return $this->container['cpu_speed'];
     }
 
     /**
-     * Sets cpuSpeed.
+     * Sets cpu_speed.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $cpuSpeed cpuSpeed
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $cpu_speed cpu_speed
      */
-    public function setCpuSpeed(?DecimalWithUnits $cpuSpeed) : self
+    public function setCpuSpeed(?DecimalWithUnits $cpu_speed) : self
     {
-        $this->container['cpuSpeed'] = $cpuSpeed;
+        $this->container['cpu_speed'] = $cpu_speed;
 
         return $this;
     }
 
     /**
-     * Gets cpuType.
+     * Gets cpu_type.
      */
     public function getCpuType() : ?string
     {
-        return $this->container['cpuType'];
+        return $this->container['cpu_type'];
     }
 
     /**
-     * Sets cpuType.
+     * Sets cpu_type.
      *
-     * @param null|string $cpuType the CPU type attribute of the item
+     * @param null|string $cpu_type the CPU type attribute of the item
      */
-    public function setCpuType(?string $cpuType) : self
+    public function setCpuType(?string $cpu_type) : self
     {
-        $this->container['cpuType'] = $cpuType;
+        $this->container['cpu_type'] = $cpu_type;
 
         return $this;
     }
@@ -1188,21 +1188,21 @@ public function setDirector(?array $director) : self
     }
 
     /**
-     * Gets displaySize.
+     * Gets display_size.
      */
     public function getDisplaySize() : ?DecimalWithUnits
     {
-        return $this->container['displaySize'];
+        return $this->container['display_size'];
     }
 
     /**
-     * Sets displaySize.
+     * Sets display_size.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $displaySize displaySize
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $display_size display_size
      */
-    public function setDisplaySize(?DecimalWithUnits $displaySize) : self
+    public function setDisplaySize(?DecimalWithUnits $display_size) : self
     {
-        $this->container['displaySize'] = $displaySize;
+        $this->container['display_size'] = $display_size;
 
         return $this;
     }
@@ -1228,41 +1228,41 @@ public function setEdition(?string $edition) : self
     }
 
     /**
-     * Gets episodeSequence.
+     * Gets episode_sequence.
      */
     public function getEpisodeSequence() : ?string
     {
-        return $this->container['episodeSequence'];
+        return $this->container['episode_sequence'];
     }
 
     /**
-     * Sets episodeSequence.
+     * Sets episode_sequence.
      *
-     * @param null|string $episodeSequence the episode sequence attribute of the item
+     * @param null|string $episode_sequence the episode sequence attribute of the item
      */
-    public function setEpisodeSequence(?string $episodeSequence) : self
+    public function setEpisodeSequence(?string $episode_sequence) : self
     {
-        $this->container['episodeSequence'] = $episodeSequence;
+        $this->container['episode_sequence'] = $episode_sequence;
 
         return $this;
     }
 
     /**
-     * Gets esrbAgeRating.
+     * Gets esrb_age_rating.
      */
     public function getEsrbAgeRating() : ?string
     {
-        return $this->container['esrbAgeRating'];
+        return $this->container['esrb_age_rating'];
     }
 
     /**
-     * Sets esrbAgeRating.
+     * Sets esrb_age_rating.
      *
-     * @param null|string $esrbAgeRating the ESRB age rating attribute of the item
+     * @param null|string $esrb_age_rating the ESRB age rating attribute of the item
      */
-    public function setEsrbAgeRating(?string $esrbAgeRating) : self
+    public function setEsrbAgeRating(?string $esrb_age_rating) : self
     {
-        $this->container['esrbAgeRating'] = $esrbAgeRating;
+        $this->container['esrb_age_rating'] = $esrb_age_rating;
 
         return $this;
     }
@@ -1332,23 +1332,23 @@ public function setFormat(?array $format) : self
     }
 
     /**
-     * Gets gemType.
+     * Gets gem_type.
      *
      * @return null|string[]
      */
     public function getGemType() : ?array
     {
-        return $this->container['gemType'];
+        return $this->container['gem_type'];
     }
 
     /**
-     * Sets gemType.
+     * Sets gem_type.
      *
-     * @param null|string[] $gemType the gem type attributes of the item
+     * @param null|string[] $gem_type the gem type attributes of the item
      */
-    public function setGemType(?array $gemType) : self
+    public function setGemType(?array $gem_type) : self
     {
-        $this->container['gemType'] = $gemType;
+        $this->container['gem_type'] = $gem_type;
 
         return $this;
     }
@@ -1374,281 +1374,281 @@ public function setGenre(?string $genre) : self
     }
 
     /**
-     * Gets golfClubFlex.
+     * Gets golf_club_flex.
      */
     public function getGolfClubFlex() : ?string
     {
-        return $this->container['golfClubFlex'];
+        return $this->container['golf_club_flex'];
     }
 
     /**
-     * Sets golfClubFlex.
+     * Sets golf_club_flex.
      *
-     * @param null|string $golfClubFlex the golf club flex attribute of the item
+     * @param null|string $golf_club_flex the golf club flex attribute of the item
      */
-    public function setGolfClubFlex(?string $golfClubFlex) : self
+    public function setGolfClubFlex(?string $golf_club_flex) : self
     {
-        $this->container['golfClubFlex'] = $golfClubFlex;
+        $this->container['golf_club_flex'] = $golf_club_flex;
 
         return $this;
     }
 
     /**
-     * Gets golfClubLoft.
+     * Gets golf_club_loft.
      */
     public function getGolfClubLoft() : ?DecimalWithUnits
     {
-        return $this->container['golfClubLoft'];
+        return $this->container['golf_club_loft'];
     }
 
     /**
-     * Sets golfClubLoft.
+     * Sets golf_club_loft.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $golfClubLoft golfClubLoft
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $golf_club_loft golf_club_loft
      */
-    public function setGolfClubLoft(?DecimalWithUnits $golfClubLoft) : self
+    public function setGolfClubLoft(?DecimalWithUnits $golf_club_loft) : self
     {
-        $this->container['golfClubLoft'] = $golfClubLoft;
+        $this->container['golf_club_loft'] = $golf_club_loft;
 
         return $this;
     }
 
     /**
-     * Gets handOrientation.
+     * Gets hand_orientation.
      */
     public function getHandOrientation() : ?string
     {
-        return $this->container['handOrientation'];
+        return $this->container['hand_orientation'];
     }
 
     /**
-     * Sets handOrientation.
+     * Sets hand_orientation.
      *
-     * @param null|string $handOrientation the hand orientation attribute of the item
+     * @param null|string $hand_orientation the hand orientation attribute of the item
      */
-    public function setHandOrientation(?string $handOrientation) : self
+    public function setHandOrientation(?string $hand_orientation) : self
     {
-        $this->container['handOrientation'] = $handOrientation;
+        $this->container['hand_orientation'] = $hand_orientation;
 
         return $this;
     }
 
     /**
-     * Gets hardDiskInterface.
+     * Gets hard_disk_interface.
      */
     public function getHardDiskInterface() : ?string
     {
-        return $this->container['hardDiskInterface'];
+        return $this->container['hard_disk_interface'];
     }
 
     /**
-     * Sets hardDiskInterface.
+     * Sets hard_disk_interface.
      *
-     * @param null|string $hardDiskInterface the hard disk interface attribute of the item
+     * @param null|string $hard_disk_interface the hard disk interface attribute of the item
      */
-    public function setHardDiskInterface(?string $hardDiskInterface) : self
+    public function setHardDiskInterface(?string $hard_disk_interface) : self
     {
-        $this->container['hardDiskInterface'] = $hardDiskInterface;
+        $this->container['hard_disk_interface'] = $hard_disk_interface;
 
         return $this;
     }
 
     /**
-     * Gets hardDiskSize.
+     * Gets hard_disk_size.
      */
     public function getHardDiskSize() : ?DecimalWithUnits
     {
-        return $this->container['hardDiskSize'];
+        return $this->container['hard_disk_size'];
     }
 
     /**
-     * Sets hardDiskSize.
+     * Sets hard_disk_size.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $hardDiskSize hardDiskSize
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $hard_disk_size hard_disk_size
      */
-    public function setHardDiskSize(?DecimalWithUnits $hardDiskSize) : self
+    public function setHardDiskSize(?DecimalWithUnits $hard_disk_size) : self
     {
-        $this->container['hardDiskSize'] = $hardDiskSize;
+        $this->container['hard_disk_size'] = $hard_disk_size;
 
         return $this;
     }
 
     /**
-     * Gets hardwarePlatform.
+     * Gets hardware_platform.
      */
     public function getHardwarePlatform() : ?string
     {
-        return $this->container['hardwarePlatform'];
+        return $this->container['hardware_platform'];
     }
 
     /**
-     * Sets hardwarePlatform.
+     * Sets hardware_platform.
      *
-     * @param null|string $hardwarePlatform the hardware platform attribute of the item
+     * @param null|string $hardware_platform the hardware platform attribute of the item
      */
-    public function setHardwarePlatform(?string $hardwarePlatform) : self
+    public function setHardwarePlatform(?string $hardware_platform) : self
     {
-        $this->container['hardwarePlatform'] = $hardwarePlatform;
+        $this->container['hardware_platform'] = $hardware_platform;
 
         return $this;
     }
 
     /**
-     * Gets hazardousMaterialType.
+     * Gets hazardous_material_type.
      */
     public function getHazardousMaterialType() : ?string
     {
-        return $this->container['hazardousMaterialType'];
+        return $this->container['hazardous_material_type'];
     }
 
     /**
-     * Sets hazardousMaterialType.
+     * Sets hazardous_material_type.
      *
-     * @param null|string $hazardousMaterialType the hazardous material type attribute of the item
+     * @param null|string $hazardous_material_type the hazardous material type attribute of the item
      */
-    public function setHazardousMaterialType(?string $hazardousMaterialType) : self
+    public function setHazardousMaterialType(?string $hazardous_material_type) : self
     {
-        $this->container['hazardousMaterialType'] = $hazardousMaterialType;
+        $this->container['hazardous_material_type'] = $hazardous_material_type;
 
         return $this;
     }
 
     /**
-     * Gets itemDimensions.
+     * Gets item_dimensions.
      */
     public function getItemDimensions() : ?DimensionType
     {
-        return $this->container['itemDimensions'];
+        return $this->container['item_dimensions'];
     }
 
     /**
-     * Sets itemDimensions.
+     * Sets item_dimensions.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType $itemDimensions itemDimensions
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType $item_dimensions item_dimensions
      */
-    public function setItemDimensions(?DimensionType $itemDimensions) : self
+    public function setItemDimensions(?DimensionType $item_dimensions) : self
     {
-        $this->container['itemDimensions'] = $itemDimensions;
+        $this->container['item_dimensions'] = $item_dimensions;
 
         return $this;
     }
 
     /**
-     * Gets isAdultProduct.
+     * Gets is_adult_product.
      */
     public function getIsAdultProduct() : ?bool
     {
-        return $this->container['isAdultProduct'];
+        return $this->container['is_adult_product'];
     }
 
     /**
-     * Sets isAdultProduct.
+     * Sets is_adult_product.
      *
-     * @param null|bool $isAdultProduct the adult product attribute of the item
+     * @param null|bool $is_adult_product the adult product attribute of the item
      */
-    public function setIsAdultProduct(?bool $isAdultProduct) : self
+    public function setIsAdultProduct(?bool $is_adult_product) : self
     {
-        $this->container['isAdultProduct'] = $isAdultProduct;
+        $this->container['is_adult_product'] = $is_adult_product;
 
         return $this;
     }
 
     /**
-     * Gets isAutographed.
+     * Gets is_autographed.
      */
     public function getIsAutographed() : ?bool
     {
-        return $this->container['isAutographed'];
+        return $this->container['is_autographed'];
     }
 
     /**
-     * Sets isAutographed.
+     * Sets is_autographed.
      *
-     * @param null|bool $isAutographed the autographed attribute of the item
+     * @param null|bool $is_autographed the autographed attribute of the item
      */
-    public function setIsAutographed(?bool $isAutographed) : self
+    public function setIsAutographed(?bool $is_autographed) : self
     {
-        $this->container['isAutographed'] = $isAutographed;
+        $this->container['is_autographed'] = $is_autographed;
 
         return $this;
     }
 
     /**
-     * Gets isEligibleForTradeIn.
+     * Gets is_eligible_for_trade_in.
      */
     public function getIsEligibleForTradeIn() : ?bool
     {
-        return $this->container['isEligibleForTradeIn'];
+        return $this->container['is_eligible_for_trade_in'];
     }
 
     /**
-     * Sets isEligibleForTradeIn.
+     * Sets is_eligible_for_trade_in.
      *
-     * @param null|bool $isEligibleForTradeIn the is eligible for trade in attribute of the item
+     * @param null|bool $is_eligible_for_trade_in the is eligible for trade in attribute of the item
      */
-    public function setIsEligibleForTradeIn(?bool $isEligibleForTradeIn) : self
+    public function setIsEligibleForTradeIn(?bool $is_eligible_for_trade_in) : self
     {
-        $this->container['isEligibleForTradeIn'] = $isEligibleForTradeIn;
+        $this->container['is_eligible_for_trade_in'] = $is_eligible_for_trade_in;
 
         return $this;
     }
 
     /**
-     * Gets isMemorabilia.
+     * Gets is_memorabilia.
      */
     public function getIsMemorabilia() : ?bool
     {
-        return $this->container['isMemorabilia'];
+        return $this->container['is_memorabilia'];
     }
 
     /**
-     * Sets isMemorabilia.
+     * Sets is_memorabilia.
      *
-     * @param null|bool $isMemorabilia the is memorabilia attribute of the item
+     * @param null|bool $is_memorabilia the is memorabilia attribute of the item
      */
-    public function setIsMemorabilia(?bool $isMemorabilia) : self
+    public function setIsMemorabilia(?bool $is_memorabilia) : self
     {
-        $this->container['isMemorabilia'] = $isMemorabilia;
+        $this->container['is_memorabilia'] = $is_memorabilia;
 
         return $this;
     }
 
     /**
-     * Gets issuesPerYear.
+     * Gets issues_per_year.
      */
     public function getIssuesPerYear() : ?string
     {
-        return $this->container['issuesPerYear'];
+        return $this->container['issues_per_year'];
     }
 
     /**
-     * Sets issuesPerYear.
+     * Sets issues_per_year.
      *
-     * @param null|string $issuesPerYear the issues per year attribute of the item
+     * @param null|string $issues_per_year the issues per year attribute of the item
      */
-    public function setIssuesPerYear(?string $issuesPerYear) : self
+    public function setIssuesPerYear(?string $issues_per_year) : self
     {
-        $this->container['issuesPerYear'] = $issuesPerYear;
+        $this->container['issues_per_year'] = $issues_per_year;
 
         return $this;
     }
 
     /**
-     * Gets itemPartNumber.
+     * Gets item_part_number.
      */
     public function getItemPartNumber() : ?string
     {
-        return $this->container['itemPartNumber'];
+        return $this->container['item_part_number'];
     }
 
     /**
-     * Sets itemPartNumber.
+     * Sets item_part_number.
      *
-     * @param null|string $itemPartNumber the item part number attribute of the item
+     * @param null|string $item_part_number the item part number attribute of the item
      */
-    public function setItemPartNumber(?string $itemPartNumber) : self
+    public function setItemPartNumber(?string $item_part_number) : self
     {
-        $this->container['itemPartNumber'] = $itemPartNumber;
+        $this->container['item_part_number'] = $item_part_number;
 
         return $this;
     }
@@ -1696,41 +1696,41 @@ public function setLanguages(?array $languages) : self
     }
 
     /**
-     * Gets legalDisclaimer.
+     * Gets legal_disclaimer.
      */
     public function getLegalDisclaimer() : ?string
     {
-        return $this->container['legalDisclaimer'];
+        return $this->container['legal_disclaimer'];
     }
 
     /**
-     * Sets legalDisclaimer.
+     * Sets legal_disclaimer.
      *
-     * @param null|string $legalDisclaimer the legal disclaimer attribute of the item
+     * @param null|string $legal_disclaimer the legal disclaimer attribute of the item
      */
-    public function setLegalDisclaimer(?string $legalDisclaimer) : self
+    public function setLegalDisclaimer(?string $legal_disclaimer) : self
     {
-        $this->container['legalDisclaimer'] = $legalDisclaimer;
+        $this->container['legal_disclaimer'] = $legal_disclaimer;
 
         return $this;
     }
 
     /**
-     * Gets listPrice.
+     * Gets list_price.
      */
     public function getListPrice() : ?Price
     {
-        return $this->container['listPrice'];
+        return $this->container['list_price'];
     }
 
     /**
-     * Sets listPrice.
+     * Sets list_price.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\Price $listPrice listPrice
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\Price $list_price list_price
      */
-    public function setListPrice(?Price $listPrice) : self
+    public function setListPrice(?Price $list_price) : self
     {
-        $this->container['listPrice'] = $listPrice;
+        $this->container['list_price'] = $list_price;
 
         return $this;
     }
@@ -1756,165 +1756,165 @@ public function setManufacturer(?string $manufacturer) : self
     }
 
     /**
-     * Gets manufacturerMaximumAge.
+     * Gets manufacturer_maximum_age.
      */
     public function getManufacturerMaximumAge() : ?DecimalWithUnits
     {
-        return $this->container['manufacturerMaximumAge'];
+        return $this->container['manufacturer_maximum_age'];
     }
 
     /**
-     * Sets manufacturerMaximumAge.
+     * Sets manufacturer_maximum_age.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $manufacturerMaximumAge manufacturerMaximumAge
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $manufacturer_maximum_age manufacturer_maximum_age
      */
-    public function setManufacturerMaximumAge(?DecimalWithUnits $manufacturerMaximumAge) : self
+    public function setManufacturerMaximumAge(?DecimalWithUnits $manufacturer_maximum_age) : self
     {
-        $this->container['manufacturerMaximumAge'] = $manufacturerMaximumAge;
+        $this->container['manufacturer_maximum_age'] = $manufacturer_maximum_age;
 
         return $this;
     }
 
     /**
-     * Gets manufacturerMinimumAge.
+     * Gets manufacturer_minimum_age.
      */
     public function getManufacturerMinimumAge() : ?DecimalWithUnits
     {
-        return $this->container['manufacturerMinimumAge'];
+        return $this->container['manufacturer_minimum_age'];
     }
 
     /**
-     * Sets manufacturerMinimumAge.
+     * Sets manufacturer_minimum_age.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $manufacturerMinimumAge manufacturerMinimumAge
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $manufacturer_minimum_age manufacturer_minimum_age
      */
-    public function setManufacturerMinimumAge(?DecimalWithUnits $manufacturerMinimumAge) : self
+    public function setManufacturerMinimumAge(?DecimalWithUnits $manufacturer_minimum_age) : self
     {
-        $this->container['manufacturerMinimumAge'] = $manufacturerMinimumAge;
+        $this->container['manufacturer_minimum_age'] = $manufacturer_minimum_age;
 
         return $this;
     }
 
     /**
-     * Gets manufacturerPartsWarrantyDescription.
+     * Gets manufacturer_parts_warranty_description.
      */
     public function getManufacturerPartsWarrantyDescription() : ?string
     {
-        return $this->container['manufacturerPartsWarrantyDescription'];
+        return $this->container['manufacturer_parts_warranty_description'];
     }
 
     /**
-     * Sets manufacturerPartsWarrantyDescription.
+     * Sets manufacturer_parts_warranty_description.
      *
-     * @param null|string $manufacturerPartsWarrantyDescription the manufacturer parts warranty description attribute of the item
+     * @param null|string $manufacturer_parts_warranty_description the manufacturer parts warranty description attribute of the item
      */
-    public function setManufacturerPartsWarrantyDescription(?string $manufacturerPartsWarrantyDescription) : self
+    public function setManufacturerPartsWarrantyDescription(?string $manufacturer_parts_warranty_description) : self
     {
-        $this->container['manufacturerPartsWarrantyDescription'] = $manufacturerPartsWarrantyDescription;
+        $this->container['manufacturer_parts_warranty_description'] = $manufacturer_parts_warranty_description;
 
         return $this;
     }
 
     /**
-     * Gets materialType.
+     * Gets material_type.
      *
      * @return null|string[]
      */
     public function getMaterialType() : ?array
     {
-        return $this->container['materialType'];
+        return $this->container['material_type'];
     }
 
     /**
-     * Sets materialType.
+     * Sets material_type.
      *
-     * @param null|string[] $materialType the material type attributes of the item
+     * @param null|string[] $material_type the material type attributes of the item
      */
-    public function setMaterialType(?array $materialType) : self
+    public function setMaterialType(?array $material_type) : self
     {
-        $this->container['materialType'] = $materialType;
+        $this->container['material_type'] = $material_type;
 
         return $this;
     }
 
     /**
-     * Gets maximumResolution.
+     * Gets maximum_resolution.
      */
     public function getMaximumResolution() : ?DecimalWithUnits
     {
-        return $this->container['maximumResolution'];
+        return $this->container['maximum_resolution'];
     }
 
     /**
-     * Sets maximumResolution.
+     * Sets maximum_resolution.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $maximumResolution maximumResolution
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $maximum_resolution maximum_resolution
      */
-    public function setMaximumResolution(?DecimalWithUnits $maximumResolution) : self
+    public function setMaximumResolution(?DecimalWithUnits $maximum_resolution) : self
     {
-        $this->container['maximumResolution'] = $maximumResolution;
+        $this->container['maximum_resolution'] = $maximum_resolution;
 
         return $this;
     }
 
     /**
-     * Gets mediaType.
+     * Gets media_type.
      *
      * @return null|string[]
      */
     public function getMediaType() : ?array
     {
-        return $this->container['mediaType'];
+        return $this->container['media_type'];
     }
 
     /**
-     * Sets mediaType.
+     * Sets media_type.
      *
-     * @param null|string[] $mediaType the media type attributes of the item
+     * @param null|string[] $media_type the media type attributes of the item
      */
-    public function setMediaType(?array $mediaType) : self
+    public function setMediaType(?array $media_type) : self
     {
-        $this->container['mediaType'] = $mediaType;
+        $this->container['media_type'] = $media_type;
 
         return $this;
     }
 
     /**
-     * Gets metalStamp.
+     * Gets metal_stamp.
      */
     public function getMetalStamp() : ?string
     {
-        return $this->container['metalStamp'];
+        return $this->container['metal_stamp'];
     }
 
     /**
-     * Sets metalStamp.
+     * Sets metal_stamp.
      *
-     * @param null|string $metalStamp the metal stamp attribute of the item
+     * @param null|string $metal_stamp the metal stamp attribute of the item
      */
-    public function setMetalStamp(?string $metalStamp) : self
+    public function setMetalStamp(?string $metal_stamp) : self
     {
-        $this->container['metalStamp'] = $metalStamp;
+        $this->container['metal_stamp'] = $metal_stamp;
 
         return $this;
     }
 
     /**
-     * Gets metalType.
+     * Gets metal_type.
      */
     public function getMetalType() : ?string
     {
-        return $this->container['metalType'];
+        return $this->container['metal_type'];
     }
 
     /**
-     * Sets metalType.
+     * Sets metal_type.
      *
-     * @param null|string $metalType the metal type attribute of the item
+     * @param null|string $metal_type the metal type attribute of the item
      */
-    public function setMetalType(?string $metalType) : self
+    public function setMetalType(?string $metal_type) : self
     {
-        $this->container['metalType'] = $metalType;
+        $this->container['metal_type'] = $metal_type;
 
         return $this;
     }
@@ -1940,223 +1940,223 @@ public function setModel(?string $model) : self
     }
 
     /**
-     * Gets numberOfDiscs.
+     * Gets number_of_discs.
      */
     public function getNumberOfDiscs() : ?int
     {
-        return $this->container['numberOfDiscs'];
+        return $this->container['number_of_discs'];
     }
 
     /**
-     * Sets numberOfDiscs.
+     * Sets number_of_discs.
      *
-     * @param null|int $numberOfDiscs the number of discs attribute of the item
+     * @param null|int $number_of_discs the number of discs attribute of the item
      */
-    public function setNumberOfDiscs(?int $numberOfDiscs) : self
+    public function setNumberOfDiscs(?int $number_of_discs) : self
     {
-        $this->container['numberOfDiscs'] = $numberOfDiscs;
+        $this->container['number_of_discs'] = $number_of_discs;
 
         return $this;
     }
 
     /**
-     * Gets numberOfIssues.
+     * Gets number_of_issues.
      */
     public function getNumberOfIssues() : ?int
     {
-        return $this->container['numberOfIssues'];
+        return $this->container['number_of_issues'];
     }
 
     /**
-     * Sets numberOfIssues.
+     * Sets number_of_issues.
      *
-     * @param null|int $numberOfIssues the number of issues attribute of the item
+     * @param null|int $number_of_issues the number of issues attribute of the item
      */
-    public function setNumberOfIssues(?int $numberOfIssues) : self
+    public function setNumberOfIssues(?int $number_of_issues) : self
     {
-        $this->container['numberOfIssues'] = $numberOfIssues;
+        $this->container['number_of_issues'] = $number_of_issues;
 
         return $this;
     }
 
     /**
-     * Gets numberOfItems.
+     * Gets number_of_items.
      */
     public function getNumberOfItems() : ?int
     {
-        return $this->container['numberOfItems'];
+        return $this->container['number_of_items'];
     }
 
     /**
-     * Sets numberOfItems.
+     * Sets number_of_items.
      *
-     * @param null|int $numberOfItems the number of items attribute of the item
+     * @param null|int $number_of_items the number of items attribute of the item
      */
-    public function setNumberOfItems(?int $numberOfItems) : self
+    public function setNumberOfItems(?int $number_of_items) : self
     {
-        $this->container['numberOfItems'] = $numberOfItems;
+        $this->container['number_of_items'] = $number_of_items;
 
         return $this;
     }
 
     /**
-     * Gets numberOfPages.
+     * Gets number_of_pages.
      */
     public function getNumberOfPages() : ?int
     {
-        return $this->container['numberOfPages'];
+        return $this->container['number_of_pages'];
     }
 
     /**
-     * Sets numberOfPages.
+     * Sets number_of_pages.
      *
-     * @param null|int $numberOfPages the number of pages attribute of the item
+     * @param null|int $number_of_pages the number of pages attribute of the item
      */
-    public function setNumberOfPages(?int $numberOfPages) : self
+    public function setNumberOfPages(?int $number_of_pages) : self
     {
-        $this->container['numberOfPages'] = $numberOfPages;
+        $this->container['number_of_pages'] = $number_of_pages;
 
         return $this;
     }
 
     /**
-     * Gets numberOfTracks.
+     * Gets number_of_tracks.
      */
     public function getNumberOfTracks() : ?int
     {
-        return $this->container['numberOfTracks'];
+        return $this->container['number_of_tracks'];
     }
 
     /**
-     * Sets numberOfTracks.
+     * Sets number_of_tracks.
      *
-     * @param null|int $numberOfTracks the number of tracks attribute of the item
+     * @param null|int $number_of_tracks the number of tracks attribute of the item
      */
-    public function setNumberOfTracks(?int $numberOfTracks) : self
+    public function setNumberOfTracks(?int $number_of_tracks) : self
     {
-        $this->container['numberOfTracks'] = $numberOfTracks;
+        $this->container['number_of_tracks'] = $number_of_tracks;
 
         return $this;
     }
 
     /**
-     * Gets operatingSystem.
+     * Gets operating_system.
      *
      * @return null|string[]
      */
     public function getOperatingSystem() : ?array
     {
-        return $this->container['operatingSystem'];
+        return $this->container['operating_system'];
     }
 
     /**
-     * Sets operatingSystem.
+     * Sets operating_system.
      *
-     * @param null|string[] $operatingSystem the operating system attributes of the item
+     * @param null|string[] $operating_system the operating system attributes of the item
      */
-    public function setOperatingSystem(?array $operatingSystem) : self
+    public function setOperatingSystem(?array $operating_system) : self
     {
-        $this->container['operatingSystem'] = $operatingSystem;
+        $this->container['operating_system'] = $operating_system;
 
         return $this;
     }
 
     /**
-     * Gets opticalZoom.
+     * Gets optical_zoom.
      */
     public function getOpticalZoom() : ?DecimalWithUnits
     {
-        return $this->container['opticalZoom'];
+        return $this->container['optical_zoom'];
     }
 
     /**
-     * Sets opticalZoom.
+     * Sets optical_zoom.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $opticalZoom opticalZoom
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $optical_zoom optical_zoom
      */
-    public function setOpticalZoom(?DecimalWithUnits $opticalZoom) : self
+    public function setOpticalZoom(?DecimalWithUnits $optical_zoom) : self
     {
-        $this->container['opticalZoom'] = $opticalZoom;
+        $this->container['optical_zoom'] = $optical_zoom;
 
         return $this;
     }
 
     /**
-     * Gets packageDimensions.
+     * Gets package_dimensions.
      */
     public function getPackageDimensions() : ?DimensionType
     {
-        return $this->container['packageDimensions'];
+        return $this->container['package_dimensions'];
     }
 
     /**
-     * Sets packageDimensions.
+     * Sets package_dimensions.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType $packageDimensions packageDimensions
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType $package_dimensions package_dimensions
      */
-    public function setPackageDimensions(?DimensionType $packageDimensions) : self
+    public function setPackageDimensions(?DimensionType $package_dimensions) : self
     {
-        $this->container['packageDimensions'] = $packageDimensions;
+        $this->container['package_dimensions'] = $package_dimensions;
 
         return $this;
     }
 
     /**
-     * Gets packageQuantity.
+     * Gets package_quantity.
      */
     public function getPackageQuantity() : ?int
     {
-        return $this->container['packageQuantity'];
+        return $this->container['package_quantity'];
     }
 
     /**
-     * Sets packageQuantity.
+     * Sets package_quantity.
      *
-     * @param null|int $packageQuantity the package quantity attribute of the item
+     * @param null|int $package_quantity the package quantity attribute of the item
      */
-    public function setPackageQuantity(?int $packageQuantity) : self
+    public function setPackageQuantity(?int $package_quantity) : self
     {
-        $this->container['packageQuantity'] = $packageQuantity;
+        $this->container['package_quantity'] = $package_quantity;
 
         return $this;
     }
 
     /**
-     * Gets partNumber.
+     * Gets part_number.
      */
     public function getPartNumber() : ?string
     {
-        return $this->container['partNumber'];
+        return $this->container['part_number'];
     }
 
     /**
-     * Sets partNumber.
+     * Sets part_number.
      *
-     * @param null|string $partNumber the part number attribute of the item
+     * @param null|string $part_number the part number attribute of the item
      */
-    public function setPartNumber(?string $partNumber) : self
+    public function setPartNumber(?string $part_number) : self
     {
-        $this->container['partNumber'] = $partNumber;
+        $this->container['part_number'] = $part_number;
 
         return $this;
     }
 
     /**
-     * Gets pegiRating.
+     * Gets pegi_rating.
      */
     public function getPegiRating() : ?string
     {
-        return $this->container['pegiRating'];
+        return $this->container['pegi_rating'];
     }
 
     /**
-     * Sets pegiRating.
+     * Sets pegi_rating.
      *
-     * @param null|string $pegiRating the PEGI rating attribute of the item
+     * @param null|string $pegi_rating the PEGI rating attribute of the item
      */
-    public function setPegiRating(?string $pegiRating) : self
+    public function setPegiRating(?string $pegi_rating) : self
     {
-        $this->container['pegiRating'] = $pegiRating;
+        $this->container['pegi_rating'] = $pegi_rating;
 
         return $this;
     }
@@ -2184,101 +2184,101 @@ public function setPlatform(?array $platform) : self
     }
 
     /**
-     * Gets processorCount.
+     * Gets processor_count.
      */
     public function getProcessorCount() : ?int
     {
-        return $this->container['processorCount'];
+        return $this->container['processor_count'];
     }
 
     /**
-     * Sets processorCount.
+     * Sets processor_count.
      *
-     * @param null|int $processorCount the processor count attribute of the item
+     * @param null|int $processor_count the processor count attribute of the item
      */
-    public function setProcessorCount(?int $processorCount) : self
+    public function setProcessorCount(?int $processor_count) : self
     {
-        $this->container['processorCount'] = $processorCount;
+        $this->container['processor_count'] = $processor_count;
 
         return $this;
     }
 
     /**
-     * Gets productGroup.
+     * Gets product_group.
      */
     public function getProductGroup() : ?string
     {
-        return $this->container['productGroup'];
+        return $this->container['product_group'];
     }
 
     /**
-     * Sets productGroup.
+     * Sets product_group.
      *
-     * @param null|string $productGroup the product group attribute of the item
+     * @param null|string $product_group the product group attribute of the item
      */
-    public function setProductGroup(?string $productGroup) : self
+    public function setProductGroup(?string $product_group) : self
     {
-        $this->container['productGroup'] = $productGroup;
+        $this->container['product_group'] = $product_group;
 
         return $this;
     }
 
     /**
-     * Gets productTypeName.
+     * Gets product_type_name.
      */
     public function getProductTypeName() : ?string
     {
-        return $this->container['productTypeName'];
+        return $this->container['product_type_name'];
     }
 
     /**
-     * Sets productTypeName.
+     * Sets product_type_name.
      *
-     * @param null|string $productTypeName the product type name attribute of the item
+     * @param null|string $product_type_name the product type name attribute of the item
      */
-    public function setProductTypeName(?string $productTypeName) : self
+    public function setProductTypeName(?string $product_type_name) : self
     {
-        $this->container['productTypeName'] = $productTypeName;
+        $this->container['product_type_name'] = $product_type_name;
 
         return $this;
     }
 
     /**
-     * Gets productTypeSubcategory.
+     * Gets product_type_subcategory.
      */
     public function getProductTypeSubcategory() : ?string
     {
-        return $this->container['productTypeSubcategory'];
+        return $this->container['product_type_subcategory'];
     }
 
     /**
-     * Sets productTypeSubcategory.
+     * Sets product_type_subcategory.
      *
-     * @param null|string $productTypeSubcategory the product type subcategory attribute of the item
+     * @param null|string $product_type_subcategory the product type subcategory attribute of the item
      */
-    public function setProductTypeSubcategory(?string $productTypeSubcategory) : self
+    public function setProductTypeSubcategory(?string $product_type_subcategory) : self
     {
-        $this->container['productTypeSubcategory'] = $productTypeSubcategory;
+        $this->container['product_type_subcategory'] = $product_type_subcategory;
 
         return $this;
     }
 
     /**
-     * Gets publicationDate.
+     * Gets publication_date.
      */
     public function getPublicationDate() : ?string
     {
-        return $this->container['publicationDate'];
+        return $this->container['publication_date'];
     }
 
     /**
-     * Sets publicationDate.
+     * Sets publication_date.
      *
-     * @param null|string $publicationDate the publication date attribute of the item
+     * @param null|string $publication_date the publication date attribute of the item
      */
-    public function setPublicationDate(?string $publicationDate) : self
+    public function setPublicationDate(?string $publication_date) : self
     {
-        $this->container['publicationDate'] = $publicationDate;
+        $this->container['publication_date'] = $publication_date;
 
         return $this;
     }
@@ -2304,101 +2304,101 @@ public function setPublisher(?string $publisher) : self
     }
 
     /**
-     * Gets regionCode.
+     * Gets region_code.
      */
     public function getRegionCode() : ?string
     {
-        return $this->container['regionCode'];
+        return $this->container['region_code'];
     }
 
     /**
-     * Sets regionCode.
+     * Sets region_code.
      *
-     * @param null|string $regionCode the region code attribute of the item
+     * @param null|string $region_code the region code attribute of the item
      */
-    public function setRegionCode(?string $regionCode) : self
+    public function setRegionCode(?string $region_code) : self
     {
-        $this->container['regionCode'] = $regionCode;
+        $this->container['region_code'] = $region_code;
 
         return $this;
     }
 
     /**
-     * Gets releaseDate.
+     * Gets release_date.
      */
     public function getReleaseDate() : ?string
     {
-        return $this->container['releaseDate'];
+        return $this->container['release_date'];
     }
 
     /**
-     * Sets releaseDate.
+     * Sets release_date.
      *
-     * @param null|string $releaseDate the release date attribute of the item
+     * @param null|string $release_date the release date attribute of the item
      */
-    public function setReleaseDate(?string $releaseDate) : self
+    public function setReleaseDate(?string $release_date) : self
     {
-        $this->container['releaseDate'] = $releaseDate;
+        $this->container['release_date'] = $release_date;
 
         return $this;
     }
 
     /**
-     * Gets ringSize.
+     * Gets ring_size.
      */
     public function getRingSize() : ?string
     {
-        return $this->container['ringSize'];
+        return $this->container['ring_size'];
     }
 
     /**
-     * Sets ringSize.
+     * Sets ring_size.
      *
-     * @param null|string $ringSize the ring size attribute of the item
+     * @param null|string $ring_size the ring size attribute of the item
      */
-    public function setRingSize(?string $ringSize) : self
+    public function setRingSize(?string $ring_size) : self
     {
-        $this->container['ringSize'] = $ringSize;
+        $this->container['ring_size'] = $ring_size;
 
         return $this;
     }
 
     /**
-     * Gets runningTime.
+     * Gets running_time.
      */
     public function getRunningTime() : ?DecimalWithUnits
     {
-        return $this->container['runningTime'];
+        return $this->container['running_time'];
     }
 
     /**
-     * Sets runningTime.
+     * Sets running_time.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $runningTime runningTime
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $running_time running_time
      */
-    public function setRunningTime(?DecimalWithUnits $runningTime) : self
+    public function setRunningTime(?DecimalWithUnits $running_time) : self
     {
-        $this->container['runningTime'] = $runningTime;
+        $this->container['running_time'] = $running_time;
 
         return $this;
     }
 
     /**
-     * Gets shaftMaterial.
+     * Gets shaft_material.
      */
     public function getShaftMaterial() : ?string
     {
-        return $this->container['shaftMaterial'];
+        return $this->container['shaft_material'];
     }
 
     /**
-     * Sets shaftMaterial.
+     * Sets shaft_material.
      *
-     * @param null|string $shaftMaterial the shaft material attribute of the item
+     * @param null|string $shaft_material the shaft material attribute of the item
      */
-    public function setShaftMaterial(?string $shaftMaterial) : self
+    public function setShaftMaterial(?string $shaft_material) : self
     {
-        $this->container['shaftMaterial'] = $shaftMaterial;
+        $this->container['shaft_material'] = $shaft_material;
 
         return $this;
     }
@@ -2424,41 +2424,41 @@ public function setScent(?string $scent) : self
     }
 
     /**
-     * Gets seasonSequence.
+     * Gets season_sequence.
      */
     public function getSeasonSequence() : ?string
     {
-        return $this->container['seasonSequence'];
+        return $this->container['season_sequence'];
     }
 
     /**
-     * Sets seasonSequence.
+     * Sets season_sequence.
      *
-     * @param null|string $seasonSequence the season sequence attribute of the item
+     * @param null|string $season_sequence the season sequence attribute of the item
      */
-    public function setSeasonSequence(?string $seasonSequence) : self
+    public function setSeasonSequence(?string $season_sequence) : self
     {
-        $this->container['seasonSequence'] = $seasonSequence;
+        $this->container['season_sequence'] = $season_sequence;
 
         return $this;
     }
 
     /**
-     * Gets seikodoProductCode.
+     * Gets seikodo_product_code.
      */
     public function getSeikodoProductCode() : ?string
     {
-        return $this->container['seikodoProductCode'];
+        return $this->container['seikodo_product_code'];
     }
 
     /**
-     * Sets seikodoProductCode.
+     * Sets seikodo_product_code.
      *
-     * @param null|string $seikodoProductCode the Seikodo product code attribute of the item
+     * @param null|string $seikodo_product_code the Seikodo product code attribute of the item
      */
-    public function setSeikodoProductCode(?string $seikodoProductCode) : self
+    public function setSeikodoProductCode(?string $seikodo_product_code) : self
     {
-        $this->container['seikodoProductCode'] = $seikodoProductCode;
+        $this->container['seikodo_product_code'] = $seikodo_product_code;
 
         return $this;
     }
@@ -2484,41 +2484,41 @@ public function setSize(?string $size) : self
     }
 
     /**
-     * Gets sizePerPearl.
+     * Gets size_per_pearl.
      */
     public function getSizePerPearl() : ?string
     {
-        return $this->container['sizePerPearl'];
+        return $this->container['size_per_pearl'];
     }
 
     /**
-     * Sets sizePerPearl.
+     * Sets size_per_pearl.
      *
-     * @param null|string $sizePerPearl the size per pearl attribute of the item
+     * @param null|string $size_per_pearl the size per pearl attribute of the item
      */
-    public function setSizePerPearl(?string $sizePerPearl) : self
+    public function setSizePerPearl(?string $size_per_pearl) : self
     {
-        $this->container['sizePerPearl'] = $sizePerPearl;
+        $this->container['size_per_pearl'] = $size_per_pearl;
 
         return $this;
     }
 
     /**
-     * Gets smallImage.
+     * Gets small_image.
      */
     public function getSmallImage() : ?Image
     {
-        return $this->container['smallImage'];
+        return $this->container['small_image'];
     }
 
     /**
-     * Sets smallImage.
+     * Sets small_image.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\Image $smallImage smallImage
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\Image $small_image small_image
      */
-    public function setSmallImage(?Image $smallImage) : self
+    public function setSmallImage(?Image $small_image) : self
     {
-        $this->container['smallImage'] = $smallImage;
+        $this->container['small_image'] = $small_image;
 
         return $this;
     }
@@ -2544,81 +2544,81 @@ public function setStudio(?string $studio) : self
     }
 
     /**
-     * Gets subscriptionLength.
+     * Gets subscription_length.
      */
     public function getSubscriptionLength() : ?DecimalWithUnits
     {
-        return $this->container['subscriptionLength'];
+        return $this->container['subscription_length'];
     }
 
     /**
-     * Sets subscriptionLength.
+     * Sets subscription_length.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $subscriptionLength subscriptionLength
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $subscription_length subscription_length
      */
-    public function setSubscriptionLength(?DecimalWithUnits $subscriptionLength) : self
+    public function setSubscriptionLength(?DecimalWithUnits $subscription_length) : self
     {
-        $this->container['subscriptionLength'] = $subscriptionLength;
+        $this->container['subscription_length'] = $subscription_length;
 
         return $this;
     }
 
     /**
-     * Gets systemMemorySize.
+     * Gets system_memory_size.
      */
     public function getSystemMemorySize() : ?DecimalWithUnits
     {
-        return $this->container['systemMemorySize'];
+        return $this->container['system_memory_size'];
     }
 
     /**
-     * Sets systemMemorySize.
+     * Sets system_memory_size.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $systemMemorySize systemMemorySize
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $system_memory_size system_memory_size
      */
-    public function setSystemMemorySize(?DecimalWithUnits $systemMemorySize) : self
+    public function setSystemMemorySize(?DecimalWithUnits $system_memory_size) : self
     {
-        $this->container['systemMemorySize'] = $systemMemorySize;
+        $this->container['system_memory_size'] = $system_memory_size;
 
         return $this;
     }
 
     /**
-     * Gets systemMemoryType.
+     * Gets system_memory_type.
      */
     public function getSystemMemoryType() : ?string
     {
-        return $this->container['systemMemoryType'];
+        return $this->container['system_memory_type'];
     }
 
     /**
-     * Sets systemMemoryType.
+     * Sets system_memory_type.
      *
-     * @param null|string $systemMemoryType the system memory type attribute of the item
+     * @param null|string $system_memory_type the system memory type attribute of the item
      */
-    public function setSystemMemoryType(?string $systemMemoryType) : self
+    public function setSystemMemoryType(?string $system_memory_type) : self
     {
-        $this->container['systemMemoryType'] = $systemMemoryType;
+        $this->container['system_memory_type'] = $system_memory_type;
 
         return $this;
     }
 
     /**
-     * Gets theatricalReleaseDate.
+     * Gets theatrical_release_date.
      */
     public function getTheatricalReleaseDate() : ?string
     {
-        return $this->container['theatricalReleaseDate'];
+        return $this->container['theatrical_release_date'];
     }
 
     /**
-     * Sets theatricalReleaseDate.
+     * Sets theatrical_release_date.
      *
-     * @param null|string $theatricalReleaseDate the theatrical release date attribute of the item
+     * @param null|string $theatrical_release_date the theatrical release date attribute of the item
      */
-    public function setTheatricalReleaseDate(?string $theatricalReleaseDate) : self
+    public function setTheatricalReleaseDate(?string $theatrical_release_date) : self
     {
-        $this->container['theatricalReleaseDate'] = $theatricalReleaseDate;
+        $this->container['theatrical_release_date'] = $theatrical_release_date;
 
         return $this;
     }
@@ -2644,41 +2644,41 @@ public function setTitle(?string $title) : self
     }
 
     /**
-     * Gets totalDiamondWeight.
+     * Gets total_diamond_weight.
      */
     public function getTotalDiamondWeight() : ?DecimalWithUnits
     {
-        return $this->container['totalDiamondWeight'];
+        return $this->container['total_diamond_weight'];
     }
 
     /**
-     * Sets totalDiamondWeight.
+     * Sets total_diamond_weight.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $totalDiamondWeight totalDiamondWeight
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $total_diamond_weight total_diamond_weight
      */
-    public function setTotalDiamondWeight(?DecimalWithUnits $totalDiamondWeight) : self
+    public function setTotalDiamondWeight(?DecimalWithUnits $total_diamond_weight) : self
     {
-        $this->container['totalDiamondWeight'] = $totalDiamondWeight;
+        $this->container['total_diamond_weight'] = $total_diamond_weight;
 
         return $this;
     }
 
     /**
-     * Gets totalGemWeight.
+     * Gets total_gem_weight.
      */
     public function getTotalGemWeight() : ?DecimalWithUnits
     {
-        return $this->container['totalGemWeight'];
+        return $this->container['total_gem_weight'];
     }
 
     /**
-     * Sets totalGemWeight.
+     * Sets total_gem_weight.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $totalGemWeight totalGemWeight
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $total_gem_weight total_gem_weight
      */
-    public function setTotalGemWeight(?DecimalWithUnits $totalGemWeight) : self
+    public function setTotalGemWeight(?DecimalWithUnits $total_gem_weight) : self
     {
-        $this->container['totalGemWeight'] = $totalGemWeight;
+        $this->container['total_gem_weight'] = $total_gem_weight;
 
         return $this;
     }
@@ -2704,21 +2704,21 @@ public function setWarranty(?string $warranty) : self
     }
 
     /**
-     * Gets weeeTaxValue.
+     * Gets weee_tax_value.
      */
     public function getWeeeTaxValue() : ?Price
     {
-        return $this->container['weeeTaxValue'];
+        return $this->container['weee_tax_value'];
     }
 
     /**
-     * Sets weeeTaxValue.
+     * Sets weee_tax_value.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\Price $weeeTaxValue weeeTaxValue
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\Price $weee_tax_value weee_tax_value
      */
-    public function setWeeeTaxValue(?Price $weeeTaxValue) : self
+    public function setWeeeTaxValue(?Price $weee_tax_value) : self
     {
-        $this->container['weeeTaxValue'] = $weeeTaxValue;
+        $this->container['weee_tax_value'] = $weee_tax_value;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/Categories.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/Categories.php
index 73257735e..acca51413 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/Categories.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/Categories.php
@@ -56,8 +56,8 @@ class Categories implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'productCategoryId' => 'string',
-        'productCategoryName' => 'string',
+        'product_category_id' => 'string',
+        'product_category_name' => 'string',
         'parent' => 'object',
     ];
 
@@ -69,8 +69,8 @@ class Categories implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'productCategoryId' => null,
-        'productCategoryName' => null,
+        'product_category_id' => null,
+        'product_category_name' => null,
         'parent' => null,
     ];
 
@@ -81,8 +81,8 @@ class Categories implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'productCategoryId' => 'ProductCategoryId',
-        'productCategoryName' => 'ProductCategoryName',
+        'product_category_id' => 'ProductCategoryId',
+        'product_category_name' => 'ProductCategoryName',
         'parent' => 'parent',
     ];
 
@@ -92,8 +92,8 @@ class Categories implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'productCategoryId' => 'setProductCategoryId',
-        'productCategoryName' => 'setProductCategoryName',
+        'product_category_id' => 'setProductCategoryId',
+        'product_category_name' => 'setProductCategoryName',
         'parent' => 'setParent',
     ];
 
@@ -103,8 +103,8 @@ class Categories implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'productCategoryId' => 'getProductCategoryId',
-        'productCategoryName' => 'getProductCategoryName',
+        'product_category_id' => 'getProductCategoryId',
+        'product_category_name' => 'getProductCategoryName',
         'parent' => 'getParent',
     ];
 
@@ -123,8 +123,8 @@ class Categories implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['productCategoryId'] = $data['productCategoryId'] ?? null;
-        $this->container['productCategoryName'] = $data['productCategoryName'] ?? null;
+        $this->container['product_category_id'] = $data['product_category_id'] ?? null;
+        $this->container['product_category_name'] = $data['product_category_name'] ?? null;
         $this->container['parent'] = $data['parent'] ?? null;
     }
 
@@ -220,41 +220,41 @@ public function valid() : bool
     }
 
     /**
-     * Gets productCategoryId.
+     * Gets product_category_id.
      */
     public function getProductCategoryId() : ?string
     {
-        return $this->container['productCategoryId'];
+        return $this->container['product_category_id'];
     }
 
     /**
-     * Sets productCategoryId.
+     * Sets product_category_id.
      *
-     * @param null|string $productCategoryId the identifier for the product category (or browse node)
+     * @param null|string $product_category_id the identifier for the product category (or browse node)
      */
-    public function setProductCategoryId(?string $productCategoryId) : self
+    public function setProductCategoryId(?string $product_category_id) : self
     {
-        $this->container['productCategoryId'] = $productCategoryId;
+        $this->container['product_category_id'] = $product_category_id;
 
         return $this;
     }
 
     /**
-     * Gets productCategoryName.
+     * Gets product_category_name.
      */
     public function getProductCategoryName() : ?string
     {
-        return $this->container['productCategoryName'];
+        return $this->container['product_category_name'];
     }
 
     /**
-     * Sets productCategoryName.
+     * Sets product_category_name.
      *
-     * @param null|string $productCategoryName the name of the product category (or browse node)
+     * @param null|string $product_category_name the name of the product category (or browse node)
      */
-    public function setProductCategoryName(?string $productCategoryName) : self
+    public function setProductCategoryName(?string $product_category_name) : self
     {
-        $this->container['productCategoryName'] = $productCategoryName;
+        $this->container['product_category_name'] = $product_category_name;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/IdentifierType.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/IdentifierType.php
index 7d84dd7f2..b6d925c67 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/IdentifierType.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/IdentifierType.php
@@ -56,8 +56,8 @@ class IdentifierType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'marketplaceASIN' => '\AmazonPHP\SellingPartner\Model\CatalogItem\ASINIdentifier',
-        'sKUIdentifier' => '\AmazonPHP\SellingPartner\Model\CatalogItem\SellerSKUIdentifier',
+        'marketplace_asin' => '\AmazonPHP\SellingPartner\Model\CatalogItem\ASINIdentifier',
+        'sku_identifier' => '\AmazonPHP\SellingPartner\Model\CatalogItem\SellerSKUIdentifier',
     ];
 
     /**
@@ -68,8 +68,8 @@ class IdentifierType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'marketplaceASIN' => null,
-        'sKUIdentifier' => null,
+        'marketplace_asin' => null,
+        'sku_identifier' => null,
     ];
 
     /**
@@ -79,8 +79,8 @@ class IdentifierType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'marketplaceASIN' => 'MarketplaceASIN',
-        'sKUIdentifier' => 'SKUIdentifier',
+        'marketplace_asin' => 'MarketplaceASIN',
+        'sku_identifier' => 'SKUIdentifier',
     ];
 
     /**
@@ -89,8 +89,8 @@ class IdentifierType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'marketplaceASIN' => 'setMarketplaceASIN',
-        'sKUIdentifier' => 'setSKUIdentifier',
+        'marketplace_asin' => 'setMarketplaceAsin',
+        'sku_identifier' => 'setSkuIdentifier',
     ];
 
     /**
@@ -99,8 +99,8 @@ class IdentifierType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'marketplaceASIN' => 'getMarketplaceASIN',
-        'sKUIdentifier' => 'getSKUIdentifier',
+        'marketplace_asin' => 'getMarketplaceAsin',
+        'sku_identifier' => 'getSkuIdentifier',
     ];
 
     /**
@@ -118,8 +118,8 @@ class IdentifierType implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['marketplaceASIN'] = $data['marketplaceASIN'] ?? null;
-        $this->container['sKUIdentifier'] = $data['sKUIdentifier'] ?? null;
+        $this->container['marketplace_asin'] = $data['marketplace_asin'] ?? null;
+        $this->container['sku_identifier'] = $data['sku_identifier'] ?? null;
     }
 
     /**
@@ -214,41 +214,41 @@ public function valid() : bool
     }
 
     /**
-     * Gets marketplaceASIN.
+     * Gets marketplace_asin.
      */
-    public function getMarketplaceASIN() : ?ASINIdentifier
+    public function getMarketplaceAsin() : ?ASINIdentifier
     {
-        return $this->container['marketplaceASIN'];
+        return $this->container['marketplace_asin'];
     }
 
     /**
-     * Sets marketplaceASIN.
+     * Sets marketplace_asin.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\ASINIdentifier $marketplaceASIN marketplaceASIN
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\ASINIdentifier $marketplace_asin marketplace_asin
      */
-    public function setMarketplaceASIN(?ASINIdentifier $marketplaceASIN) : self
+    public function setMarketplaceAsin(?ASINIdentifier $marketplace_asin) : self
     {
-        $this->container['marketplaceASIN'] = $marketplaceASIN;
+        $this->container['marketplace_asin'] = $marketplace_asin;
 
         return $this;
     }
 
     /**
-     * Gets sKUIdentifier.
+     * Gets sku_identifier.
      */
-    public function getSKUIdentifier() : ?SellerSKUIdentifier
+    public function getSkuIdentifier() : ?SellerSKUIdentifier
     {
-        return $this->container['sKUIdentifier'];
+        return $this->container['sku_identifier'];
     }
 
     /**
-     * Sets sKUIdentifier.
+     * Sets sku_identifier.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\SellerSKUIdentifier $sKUIdentifier sKUIdentifier
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\SellerSKUIdentifier $sku_identifier sku_identifier
      */
-    public function setSKUIdentifier(?SellerSKUIdentifier $sKUIdentifier) : self
+    public function setSkuIdentifier(?SellerSKUIdentifier $sku_identifier) : self
     {
-        $this->container['sKUIdentifier'] = $sKUIdentifier;
+        $this->container['sku_identifier'] = $sku_identifier;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/Image.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/Image.php
index 0647dd664..53236f3bb 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/Image.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/Image.php
@@ -56,7 +56,7 @@ class Image implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'uRL' => 'string',
+        'url' => 'string',
         'height' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
         'width' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
     ];
@@ -69,7 +69,7 @@ class Image implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'uRL' => null,
+        'url' => null,
         'height' => null,
         'width' => null,
     ];
@@ -81,7 +81,7 @@ class Image implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'uRL' => 'URL',
+        'url' => 'URL',
         'height' => 'Height',
         'width' => 'Width',
     ];
@@ -92,7 +92,7 @@ class Image implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'uRL' => 'setURL',
+        'url' => 'setUrl',
         'height' => 'setHeight',
         'width' => 'setWidth',
     ];
@@ -103,7 +103,7 @@ class Image implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'uRL' => 'getURL',
+        'url' => 'getUrl',
         'height' => 'getHeight',
         'width' => 'getWidth',
     ];
@@ -123,7 +123,7 @@ class Image implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['uRL'] = $data['uRL'] ?? null;
+        $this->container['url'] = $data['url'] ?? null;
         $this->container['height'] = $data['height'] ?? null;
         $this->container['width'] = $data['width'] ?? null;
     }
@@ -220,21 +220,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets uRL.
+     * Gets url.
      */
-    public function getURL() : ?string
+    public function getUrl() : ?string
     {
-        return $this->container['uRL'];
+        return $this->container['url'];
     }
 
     /**
-     * Sets uRL.
+     * Sets url.
      *
-     * @param null|string $uRL the image URL attribute of the item
+     * @param null|string $url the image URL attribute of the item
      */
-    public function setURL(?string $uRL) : self
+    public function setUrl(?string $url) : self
     {
-        $this->container['uRL'] = $uRL;
+        $this->container['url'] = $url;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/Item.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/Item.php
index 971c266cf..a597af4f9 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/Item.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/Item.php
@@ -57,9 +57,9 @@ class Item implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'identifiers' => '\AmazonPHP\SellingPartner\Model\CatalogItem\IdentifierType',
-        'attributeSets' => '\AmazonPHP\SellingPartner\Model\CatalogItem\AttributeSetListType[]',
+        'attribute_sets' => '\AmazonPHP\SellingPartner\Model\CatalogItem\AttributeSetListType[]',
         'relationships' => '\AmazonPHP\SellingPartner\Model\CatalogItem\RelationshipType[]',
-        'salesRankings' => '\AmazonPHP\SellingPartner\Model\CatalogItem\SalesRankType[]',
+        'sales_rankings' => '\AmazonPHP\SellingPartner\Model\CatalogItem\SalesRankType[]',
     ];
 
     /**
@@ -71,9 +71,9 @@ class Item implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'identifiers' => null,
-        'attributeSets' => null,
+        'attribute_sets' => null,
         'relationships' => null,
-        'salesRankings' => null,
+        'sales_rankings' => null,
     ];
 
     /**
@@ -84,9 +84,9 @@ class Item implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'identifiers' => 'Identifiers',
-        'attributeSets' => 'AttributeSets',
+        'attribute_sets' => 'AttributeSets',
         'relationships' => 'Relationships',
-        'salesRankings' => 'SalesRankings',
+        'sales_rankings' => 'SalesRankings',
     ];
 
     /**
@@ -96,9 +96,9 @@ class Item implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'identifiers' => 'setIdentifiers',
-        'attributeSets' => 'setAttributeSets',
+        'attribute_sets' => 'setAttributeSets',
         'relationships' => 'setRelationships',
-        'salesRankings' => 'setSalesRankings',
+        'sales_rankings' => 'setSalesRankings',
     ];
 
     /**
@@ -108,9 +108,9 @@ class Item implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'identifiers' => 'getIdentifiers',
-        'attributeSets' => 'getAttributeSets',
+        'attribute_sets' => 'getAttributeSets',
         'relationships' => 'getRelationships',
-        'salesRankings' => 'getSalesRankings',
+        'sales_rankings' => 'getSalesRankings',
     ];
 
     /**
@@ -129,9 +129,9 @@ class Item implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['identifiers'] = $data['identifiers'] ?? null;
-        $this->container['attributeSets'] = $data['attributeSets'] ?? null;
+        $this->container['attribute_sets'] = $data['attribute_sets'] ?? null;
         $this->container['relationships'] = $data['relationships'] ?? null;
-        $this->container['salesRankings'] = $data['salesRankings'] ?? null;
+        $this->container['sales_rankings'] = $data['sales_rankings'] ?? null;
     }
 
     /**
@@ -252,23 +252,23 @@ public function setIdentifiers(IdentifierType $identifiers) : self
     }
 
     /**
-     * Gets attributeSets.
+     * Gets attribute_sets.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\CatalogItem\AttributeSetListType[]
      */
     public function getAttributeSets() : ?array
     {
-        return $this->container['attributeSets'];
+        return $this->container['attribute_sets'];
     }
 
     /**
-     * Sets attributeSets.
+     * Sets attribute_sets.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\AttributeSetListType[] $attributeSets a list of attributes for the item
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\AttributeSetListType[] $attribute_sets a list of attributes for the item
      */
-    public function setAttributeSets(?array $attributeSets) : self
+    public function setAttributeSets(?array $attribute_sets) : self
     {
-        $this->container['attributeSets'] = $attributeSets;
+        $this->container['attribute_sets'] = $attribute_sets;
 
         return $this;
     }
@@ -296,23 +296,23 @@ public function setRelationships(?array $relationships) : self
     }
 
     /**
-     * Gets salesRankings.
+     * Gets sales_rankings.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\CatalogItem\SalesRankType[]
      */
     public function getSalesRankings() : ?array
     {
-        return $this->container['salesRankings'];
+        return $this->container['sales_rankings'];
     }
 
     /**
-     * Sets salesRankings.
+     * Sets sales_rankings.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\SalesRankType[] $salesRankings a list of sales rank information for the item by category
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\SalesRankType[] $sales_rankings a list of sales rank information for the item by category
      */
-    public function setSalesRankings(?array $salesRankings) : self
+    public function setSalesRankings(?array $sales_rankings) : self
     {
-        $this->container['salesRankings'] = $salesRankings;
+        $this->container['sales_rankings'] = $sales_rankings;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/LanguageType.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/LanguageType.php
index 4e3ac9947..e5f0c8dbf 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/LanguageType.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/LanguageType.php
@@ -58,7 +58,7 @@ class LanguageType implements \ArrayAccess, \JsonSerializable, ModelInterface
     protected static array $openAPITypes = [
         'name' => 'string',
         'type' => 'string',
-        'audioFormat' => 'string',
+        'audio_format' => 'string',
     ];
 
     /**
@@ -71,7 +71,7 @@ class LanguageType implements \ArrayAccess, \JsonSerializable, ModelInterface
     protected static array $openAPIFormats = [
         'name' => null,
         'type' => null,
-        'audioFormat' => null,
+        'audio_format' => null,
     ];
 
     /**
@@ -83,7 +83,7 @@ class LanguageType implements \ArrayAccess, \JsonSerializable, ModelInterface
     protected static array $attributeMap = [
         'name' => 'Name',
         'type' => 'Type',
-        'audioFormat' => 'AudioFormat',
+        'audio_format' => 'AudioFormat',
     ];
 
     /**
@@ -94,7 +94,7 @@ class LanguageType implements \ArrayAccess, \JsonSerializable, ModelInterface
     protected static array $setters = [
         'name' => 'setName',
         'type' => 'setType',
-        'audioFormat' => 'setAudioFormat',
+        'audio_format' => 'setAudioFormat',
     ];
 
     /**
@@ -105,7 +105,7 @@ class LanguageType implements \ArrayAccess, \JsonSerializable, ModelInterface
     protected static array $getters = [
         'name' => 'getName',
         'type' => 'getType',
-        'audioFormat' => 'getAudioFormat',
+        'audio_format' => 'getAudioFormat',
     ];
 
     /**
@@ -125,7 +125,7 @@ public function __construct(array $data = null)
     {
         $this->container['name'] = $data['name'] ?? null;
         $this->container['type'] = $data['type'] ?? null;
-        $this->container['audioFormat'] = $data['audioFormat'] ?? null;
+        $this->container['audio_format'] = $data['audio_format'] ?? null;
     }
 
     /**
@@ -260,21 +260,21 @@ public function setType(?string $type) : self
     }
 
     /**
-     * Gets audioFormat.
+     * Gets audio_format.
      */
     public function getAudioFormat() : ?string
     {
-        return $this->container['audioFormat'];
+        return $this->container['audio_format'];
     }
 
     /**
-     * Sets audioFormat.
+     * Sets audio_format.
      *
-     * @param null|string $audioFormat the audio format attribute of the item
+     * @param null|string $audio_format the audio format attribute of the item
      */
-    public function setAudioFormat(?string $audioFormat) : self
+    public function setAudioFormat(?string $audio_format) : self
     {
-        $this->container['audioFormat'] = $audioFormat;
+        $this->container['audio_format'] = $audio_format;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/Price.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/Price.php
index 9eb3a27e8..d9319e2b6 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/Price.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/Price.php
@@ -57,7 +57,7 @@ class Price implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'amount' => 'float',
-        'currencyCode' => 'string',
+        'currency_code' => 'string',
     ];
 
     /**
@@ -69,7 +69,7 @@ class Price implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'amount' => null,
-        'currencyCode' => null,
+        'currency_code' => null,
     ];
 
     /**
@@ -80,7 +80,7 @@ class Price implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'amount' => 'Amount',
-        'currencyCode' => 'CurrencyCode',
+        'currency_code' => 'CurrencyCode',
     ];
 
     /**
@@ -90,7 +90,7 @@ class Price implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'amount' => 'setAmount',
-        'currencyCode' => 'setCurrencyCode',
+        'currency_code' => 'setCurrencyCode',
     ];
 
     /**
@@ -100,7 +100,7 @@ class Price implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'amount' => 'getAmount',
-        'currencyCode' => 'getCurrencyCode',
+        'currency_code' => 'getCurrencyCode',
     ];
 
     /**
@@ -119,7 +119,7 @@ class Price implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['amount'] = $data['amount'] ?? null;
-        $this->container['currencyCode'] = $data['currencyCode'] ?? null;
+        $this->container['currency_code'] = $data['currency_code'] ?? null;
     }
 
     /**
@@ -234,21 +234,21 @@ public function setAmount(?float $amount) : self
     }
 
     /**
-     * Gets currencyCode.
+     * Gets currency_code.
      */
     public function getCurrencyCode() : ?string
     {
-        return $this->container['currencyCode'];
+        return $this->container['currency_code'];
     }
 
     /**
-     * Sets currencyCode.
+     * Sets currency_code.
      *
-     * @param null|string $currencyCode the currency code of the amount
+     * @param null|string $currency_code the currency code of the amount
      */
-    public function setCurrencyCode(?string $currencyCode) : self
+    public function setCurrencyCode(?string $currency_code) : self
     {
-        $this->container['currencyCode'] = $currencyCode;
+        $this->container['currency_code'] = $currency_code;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/QualifiersType.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/QualifiersType.php
index 5266c1746..7501b113e 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/QualifiersType.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/QualifiersType.php
@@ -56,12 +56,12 @@ class QualifiersType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'itemCondition' => 'string',
-        'itemSubcondition' => 'string',
-        'fulfillmentChannel' => 'string',
-        'shipsDomestically' => 'string',
-        'shippingTime' => '\AmazonPHP\SellingPartner\Model\CatalogItem\ShippingTimeType',
-        'sellerPositiveFeedbackRating' => 'string',
+        'item_condition' => 'string',
+        'item_subcondition' => 'string',
+        'fulfillment_channel' => 'string',
+        'ships_domestically' => 'string',
+        'shipping_time' => '\AmazonPHP\SellingPartner\Model\CatalogItem\ShippingTimeType',
+        'seller_positive_feedback_rating' => 'string',
     ];
 
     /**
@@ -72,12 +72,12 @@ class QualifiersType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'itemCondition' => null,
-        'itemSubcondition' => null,
-        'fulfillmentChannel' => null,
-        'shipsDomestically' => null,
-        'shippingTime' => null,
-        'sellerPositiveFeedbackRating' => null,
+        'item_condition' => null,
+        'item_subcondition' => null,
+        'fulfillment_channel' => null,
+        'ships_domestically' => null,
+        'shipping_time' => null,
+        'seller_positive_feedback_rating' => null,
     ];
 
     /**
@@ -87,12 +87,12 @@ class QualifiersType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'itemCondition' => 'ItemCondition',
-        'itemSubcondition' => 'ItemSubcondition',
-        'fulfillmentChannel' => 'FulfillmentChannel',
-        'shipsDomestically' => 'ShipsDomestically',
-        'shippingTime' => 'ShippingTime',
-        'sellerPositiveFeedbackRating' => 'SellerPositiveFeedbackRating',
+        'item_condition' => 'ItemCondition',
+        'item_subcondition' => 'ItemSubcondition',
+        'fulfillment_channel' => 'FulfillmentChannel',
+        'ships_domestically' => 'ShipsDomestically',
+        'shipping_time' => 'ShippingTime',
+        'seller_positive_feedback_rating' => 'SellerPositiveFeedbackRating',
     ];
 
     /**
@@ -101,12 +101,12 @@ class QualifiersType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'itemCondition' => 'setItemCondition',
-        'itemSubcondition' => 'setItemSubcondition',
-        'fulfillmentChannel' => 'setFulfillmentChannel',
-        'shipsDomestically' => 'setShipsDomestically',
-        'shippingTime' => 'setShippingTime',
-        'sellerPositiveFeedbackRating' => 'setSellerPositiveFeedbackRating',
+        'item_condition' => 'setItemCondition',
+        'item_subcondition' => 'setItemSubcondition',
+        'fulfillment_channel' => 'setFulfillmentChannel',
+        'ships_domestically' => 'setShipsDomestically',
+        'shipping_time' => 'setShippingTime',
+        'seller_positive_feedback_rating' => 'setSellerPositiveFeedbackRating',
     ];
 
     /**
@@ -115,12 +115,12 @@ class QualifiersType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'itemCondition' => 'getItemCondition',
-        'itemSubcondition' => 'getItemSubcondition',
-        'fulfillmentChannel' => 'getFulfillmentChannel',
-        'shipsDomestically' => 'getShipsDomestically',
-        'shippingTime' => 'getShippingTime',
-        'sellerPositiveFeedbackRating' => 'getSellerPositiveFeedbackRating',
+        'item_condition' => 'getItemCondition',
+        'item_subcondition' => 'getItemSubcondition',
+        'fulfillment_channel' => 'getFulfillmentChannel',
+        'ships_domestically' => 'getShipsDomestically',
+        'shipping_time' => 'getShippingTime',
+        'seller_positive_feedback_rating' => 'getSellerPositiveFeedbackRating',
     ];
 
     /**
@@ -138,12 +138,12 @@ class QualifiersType implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['itemCondition'] = $data['itemCondition'] ?? null;
-        $this->container['itemSubcondition'] = $data['itemSubcondition'] ?? null;
-        $this->container['fulfillmentChannel'] = $data['fulfillmentChannel'] ?? null;
-        $this->container['shipsDomestically'] = $data['shipsDomestically'] ?? null;
-        $this->container['shippingTime'] = $data['shippingTime'] ?? null;
-        $this->container['sellerPositiveFeedbackRating'] = $data['sellerPositiveFeedbackRating'] ?? null;
+        $this->container['item_condition'] = $data['item_condition'] ?? null;
+        $this->container['item_subcondition'] = $data['item_subcondition'] ?? null;
+        $this->container['fulfillment_channel'] = $data['fulfillment_channel'] ?? null;
+        $this->container['ships_domestically'] = $data['ships_domestically'] ?? null;
+        $this->container['shipping_time'] = $data['shipping_time'] ?? null;
+        $this->container['seller_positive_feedback_rating'] = $data['seller_positive_feedback_rating'] ?? null;
     }
 
     /**
@@ -225,28 +225,28 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['itemCondition'] === null) {
-            $invalidProperties[] = "'itemCondition' can't be null";
+        if ($this->container['item_condition'] === null) {
+            $invalidProperties[] = "'item_condition' can't be null";
         }
 
-        if ($this->container['itemSubcondition'] === null) {
-            $invalidProperties[] = "'itemSubcondition' can't be null";
+        if ($this->container['item_subcondition'] === null) {
+            $invalidProperties[] = "'item_subcondition' can't be null";
         }
 
-        if ($this->container['fulfillmentChannel'] === null) {
-            $invalidProperties[] = "'fulfillmentChannel' can't be null";
+        if ($this->container['fulfillment_channel'] === null) {
+            $invalidProperties[] = "'fulfillment_channel' can't be null";
         }
 
-        if ($this->container['shipsDomestically'] === null) {
-            $invalidProperties[] = "'shipsDomestically' can't be null";
+        if ($this->container['ships_domestically'] === null) {
+            $invalidProperties[] = "'ships_domestically' can't be null";
         }
 
-        if ($this->container['shippingTime'] === null) {
-            $invalidProperties[] = "'shippingTime' can't be null";
+        if ($this->container['shipping_time'] === null) {
+            $invalidProperties[] = "'shipping_time' can't be null";
         }
 
-        if ($this->container['sellerPositiveFeedbackRating'] === null) {
-            $invalidProperties[] = "'sellerPositiveFeedbackRating' can't be null";
+        if ($this->container['seller_positive_feedback_rating'] === null) {
+            $invalidProperties[] = "'seller_positive_feedback_rating' can't be null";
         }
 
         return $invalidProperties;
@@ -264,121 +264,121 @@ public function valid() : bool
     }
 
     /**
-     * Gets itemCondition.
+     * Gets item_condition.
      */
     public function getItemCondition() : string
     {
-        return $this->container['itemCondition'];
+        return $this->container['item_condition'];
     }
 
     /**
-     * Sets itemCondition.
+     * Sets item_condition.
      *
-     * @param string $itemCondition The condition of the item. Possible values: New, Used, Collectible, Refurbished, or Club.
+     * @param string $item_condition The condition of the item. Possible values: New, Used, Collectible, Refurbished, or Club.
      */
-    public function setItemCondition(string $itemCondition) : self
+    public function setItemCondition(string $item_condition) : self
     {
-        $this->container['itemCondition'] = $itemCondition;
+        $this->container['item_condition'] = $item_condition;
 
         return $this;
     }
 
     /**
-     * Gets itemSubcondition.
+     * Gets item_subcondition.
      */
     public function getItemSubcondition() : string
     {
-        return $this->container['itemSubcondition'];
+        return $this->container['item_subcondition'];
     }
 
     /**
-     * Sets itemSubcondition.
+     * Sets item_subcondition.
      *
-     * @param string $itemSubcondition The item subcondition for the offer listing. Possible values: New, Mint, Very Good, Good, Acceptable, Poor, Club, OEM, Warranty, Refurbished Warranty, Refurbished, Open Box, or Other.
+     * @param string $item_subcondition The item subcondition for the offer listing. Possible values: New, Mint, Very Good, Good, Acceptable, Poor, Club, OEM, Warranty, Refurbished Warranty, Refurbished, Open Box, or Other.
      */
-    public function setItemSubcondition(string $itemSubcondition) : self
+    public function setItemSubcondition(string $item_subcondition) : self
     {
-        $this->container['itemSubcondition'] = $itemSubcondition;
+        $this->container['item_subcondition'] = $item_subcondition;
 
         return $this;
     }
 
     /**
-     * Gets fulfillmentChannel.
+     * Gets fulfillment_channel.
      */
     public function getFulfillmentChannel() : string
     {
-        return $this->container['fulfillmentChannel'];
+        return $this->container['fulfillment_channel'];
     }
 
     /**
-     * Sets fulfillmentChannel.
+     * Sets fulfillment_channel.
      *
-     * @param string $fulfillmentChannel The fulfillment channel for the item. Possible values:  * Amazon - Fulfilled by Amazon. * Merchant - Fulfilled by the seller.
+     * @param string $fulfillment_channel The fulfillment channel for the item. Possible values:  * Amazon - Fulfilled by Amazon. * Merchant - Fulfilled by the seller.
      */
-    public function setFulfillmentChannel(string $fulfillmentChannel) : self
+    public function setFulfillmentChannel(string $fulfillment_channel) : self
     {
-        $this->container['fulfillmentChannel'] = $fulfillmentChannel;
+        $this->container['fulfillment_channel'] = $fulfillment_channel;
 
         return $this;
     }
 
     /**
-     * Gets shipsDomestically.
+     * Gets ships_domestically.
      */
     public function getShipsDomestically() : string
     {
-        return $this->container['shipsDomestically'];
+        return $this->container['ships_domestically'];
     }
 
     /**
-     * Sets shipsDomestically.
+     * Sets ships_domestically.
      *
-     * @param string $shipsDomestically Indicates whether the marketplace specified in the request and the location that the item ships from are in the same country. Possible values: True, False, or Unknown.
+     * @param string $ships_domestically Indicates whether the marketplace specified in the request and the location that the item ships from are in the same country. Possible values: True, False, or Unknown.
      */
-    public function setShipsDomestically(string $shipsDomestically) : self
+    public function setShipsDomestically(string $ships_domestically) : self
     {
-        $this->container['shipsDomestically'] = $shipsDomestically;
+        $this->container['ships_domestically'] = $ships_domestically;
 
         return $this;
     }
 
     /**
-     * Gets shippingTime.
+     * Gets shipping_time.
      */
     public function getShippingTime() : ShippingTimeType
     {
-        return $this->container['shippingTime'];
+        return $this->container['shipping_time'];
     }
 
     /**
-     * Sets shippingTime.
+     * Sets shipping_time.
      *
-     * @param \AmazonPHP\SellingPartner\Model\CatalogItem\ShippingTimeType $shippingTime shippingTime
+     * @param \AmazonPHP\SellingPartner\Model\CatalogItem\ShippingTimeType $shipping_time shipping_time
      */
-    public function setShippingTime(ShippingTimeType $shippingTime) : self
+    public function setShippingTime(ShippingTimeType $shipping_time) : self
     {
-        $this->container['shippingTime'] = $shippingTime;
+        $this->container['shipping_time'] = $shipping_time;
 
         return $this;
     }
 
     /**
-     * Gets sellerPositiveFeedbackRating.
+     * Gets seller_positive_feedback_rating.
      */
     public function getSellerPositiveFeedbackRating() : string
     {
-        return $this->container['sellerPositiveFeedbackRating'];
+        return $this->container['seller_positive_feedback_rating'];
     }
 
     /**
-     * Sets sellerPositiveFeedbackRating.
+     * Sets seller_positive_feedback_rating.
      *
-     * @param string $sellerPositiveFeedbackRating (98-100%, 95-97%, 90-94%, 80-89%, 70-79%, Less than 70%, or Just launched ) – Indicates the percentage of feedback ratings that were positive over the past 12 months
+     * @param string $seller_positive_feedback_rating (98-100%, 95-97%, 90-94%, 80-89%, 70-79%, Less than 70%, or Just launched ) – Indicates the percentage of feedback ratings that were positive over the past 12 months
      */
-    public function setSellerPositiveFeedbackRating(string $sellerPositiveFeedbackRating) : self
+    public function setSellerPositiveFeedbackRating(string $seller_positive_feedback_rating) : self
     {
-        $this->container['sellerPositiveFeedbackRating'] = $sellerPositiveFeedbackRating;
+        $this->container['seller_positive_feedback_rating'] = $seller_positive_feedback_rating;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/RelationshipType.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/RelationshipType.php
index 103ec31b0..e767db939 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/RelationshipType.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/RelationshipType.php
@@ -60,25 +60,25 @@ class RelationshipType implements \ArrayAccess, \JsonSerializable, ModelInterfac
         'color' => 'string',
         'edition' => 'string',
         'flavor' => 'string',
-        'gemType' => 'string[]',
-        'golfClubFlex' => 'string',
-        'handOrientation' => 'string',
-        'hardwarePlatform' => 'string',
-        'materialType' => 'string[]',
-        'metalType' => 'string',
+        'gem_type' => 'string[]',
+        'golf_club_flex' => 'string',
+        'hand_orientation' => 'string',
+        'hardware_platform' => 'string',
+        'material_type' => 'string[]',
+        'metal_type' => 'string',
         'model' => 'string',
-        'operatingSystem' => 'string[]',
-        'productTypeSubcategory' => 'string',
-        'ringSize' => 'string',
-        'shaftMaterial' => 'string',
+        'operating_system' => 'string[]',
+        'product_type_subcategory' => 'string',
+        'ring_size' => 'string',
+        'shaft_material' => 'string',
         'scent' => 'string',
         'size' => 'string',
-        'sizePerPearl' => 'string',
-        'golfClubLoft' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'totalDiamondWeight' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'totalGemWeight' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
-        'packageQuantity' => 'int',
-        'itemDimensions' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType',
+        'size_per_pearl' => 'string',
+        'golf_club_loft' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'total_diamond_weight' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'total_gem_weight' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits',
+        'package_quantity' => 'int',
+        'item_dimensions' => '\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType',
     ];
 
     /**
@@ -93,25 +93,25 @@ class RelationshipType implements \ArrayAccess, \JsonSerializable, ModelInterfac
         'color' => null,
         'edition' => null,
         'flavor' => null,
-        'gemType' => null,
-        'golfClubFlex' => null,
-        'handOrientation' => null,
-        'hardwarePlatform' => null,
-        'materialType' => null,
-        'metalType' => null,
+        'gem_type' => null,
+        'golf_club_flex' => null,
+        'hand_orientation' => null,
+        'hardware_platform' => null,
+        'material_type' => null,
+        'metal_type' => null,
         'model' => null,
-        'operatingSystem' => null,
-        'productTypeSubcategory' => null,
-        'ringSize' => null,
-        'shaftMaterial' => null,
+        'operating_system' => null,
+        'product_type_subcategory' => null,
+        'ring_size' => null,
+        'shaft_material' => null,
         'scent' => null,
         'size' => null,
-        'sizePerPearl' => null,
-        'golfClubLoft' => null,
-        'totalDiamondWeight' => null,
-        'totalGemWeight' => null,
-        'packageQuantity' => null,
-        'itemDimensions' => null,
+        'size_per_pearl' => null,
+        'golf_club_loft' => null,
+        'total_diamond_weight' => null,
+        'total_gem_weight' => null,
+        'package_quantity' => null,
+        'item_dimensions' => null,
     ];
 
     /**
@@ -125,25 +125,25 @@ class RelationshipType implements \ArrayAccess, \JsonSerializable, ModelInterfac
         'color' => 'Color',
         'edition' => 'Edition',
         'flavor' => 'Flavor',
-        'gemType' => 'GemType',
-        'golfClubFlex' => 'GolfClubFlex',
-        'handOrientation' => 'HandOrientation',
-        'hardwarePlatform' => 'HardwarePlatform',
-        'materialType' => 'MaterialType',
-        'metalType' => 'MetalType',
+        'gem_type' => 'GemType',
+        'golf_club_flex' => 'GolfClubFlex',
+        'hand_orientation' => 'HandOrientation',
+        'hardware_platform' => 'HardwarePlatform',
+        'material_type' => 'MaterialType',
+        'metal_type' => 'MetalType',
         'model' => 'Model',
-        'operatingSystem' => 'OperatingSystem',
-        'productTypeSubcategory' => 'ProductTypeSubcategory',
-        'ringSize' => 'RingSize',
-        'shaftMaterial' => 'ShaftMaterial',
+        'operating_system' => 'OperatingSystem',
+        'product_type_subcategory' => 'ProductTypeSubcategory',
+        'ring_size' => 'RingSize',
+        'shaft_material' => 'ShaftMaterial',
         'scent' => 'Scent',
         'size' => 'Size',
-        'sizePerPearl' => 'SizePerPearl',
-        'golfClubLoft' => 'GolfClubLoft',
-        'totalDiamondWeight' => 'TotalDiamondWeight',
-        'totalGemWeight' => 'TotalGemWeight',
-        'packageQuantity' => 'PackageQuantity',
-        'itemDimensions' => 'ItemDimensions',
+        'size_per_pearl' => 'SizePerPearl',
+        'golf_club_loft' => 'GolfClubLoft',
+        'total_diamond_weight' => 'TotalDiamondWeight',
+        'total_gem_weight' => 'TotalGemWeight',
+        'package_quantity' => 'PackageQuantity',
+        'item_dimensions' => 'ItemDimensions',
     ];
 
     /**
@@ -156,25 +156,25 @@ class RelationshipType implements \ArrayAccess, \JsonSerializable, ModelInterfac
         'color' => 'setColor',
         'edition' => 'setEdition',
         'flavor' => 'setFlavor',
-        'gemType' => 'setGemType',
-        'golfClubFlex' => 'setGolfClubFlex',
-        'handOrientation' => 'setHandOrientation',
-        'hardwarePlatform' => 'setHardwarePlatform',
-        'materialType' => 'setMaterialType',
-        'metalType' => 'setMetalType',
+        'gem_type' => 'setGemType',
+        'golf_club_flex' => 'setGolfClubFlex',
+        'hand_orientation' => 'setHandOrientation',
+        'hardware_platform' => 'setHardwarePlatform',
+        'material_type' => 'setMaterialType',
+        'metal_type' => 'setMetalType',
         'model' => 'setModel',
-        'operatingSystem' => 'setOperatingSystem',
-        'productTypeSubcategory' => 'setProductTypeSubcategory',
-        'ringSize' => 'setRingSize',
-        'shaftMaterial' => 'setShaftMaterial',
+        'operating_system' => 'setOperatingSystem',
+        'product_type_subcategory' => 'setProductTypeSubcategory',
+        'ring_size' => 'setRingSize',
+        'shaft_material' => 'setShaftMaterial',
         'scent' => 'setScent',
         'size' => 'setSize',
-        'sizePerPearl' => 'setSizePerPearl',
-        'golfClubLoft' => 'setGolfClubLoft',
-        'totalDiamondWeight' => 'setTotalDiamondWeight',
-        'totalGemWeight' => 'setTotalGemWeight',
-        'packageQuantity' => 'setPackageQuantity',
-        'itemDimensions' => 'setItemDimensions',
+        'size_per_pearl' => 'setSizePerPearl',
+        'golf_club_loft' => 'setGolfClubLoft',
+        'total_diamond_weight' => 'setTotalDiamondWeight',
+        'total_gem_weight' => 'setTotalGemWeight',
+        'package_quantity' => 'setPackageQuantity',
+        'item_dimensions' => 'setItemDimensions',
     ];
 
     /**
@@ -187,25 +187,25 @@ class RelationshipType implements \ArrayAccess, \JsonSerializable, ModelInterfac
         'color' => 'getColor',
         'edition' => 'getEdition',
         'flavor' => 'getFlavor',
-        'gemType' => 'getGemType',
-        'golfClubFlex' => 'getGolfClubFlex',
-        'handOrientation' => 'getHandOrientation',
-        'hardwarePlatform' => 'getHardwarePlatform',
-        'materialType' => 'getMaterialType',
-        'metalType' => 'getMetalType',
+        'gem_type' => 'getGemType',
+        'golf_club_flex' => 'getGolfClubFlex',
+        'hand_orientation' => 'getHandOrientation',
+        'hardware_platform' => 'getHardwarePlatform',
+        'material_type' => 'getMaterialType',
+        'metal_type' => 'getMetalType',
         'model' => 'getModel',
-        'operatingSystem' => 'getOperatingSystem',
-        'productTypeSubcategory' => 'getProductTypeSubcategory',
-        'ringSize' => 'getRingSize',
-        'shaftMaterial' => 'getShaftMaterial',
+        'operating_system' => 'getOperatingSystem',
+        'product_type_subcategory' => 'getProductTypeSubcategory',
+        'ring_size' => 'getRingSize',
+        'shaft_material' => 'getShaftMaterial',
         'scent' => 'getScent',
         'size' => 'getSize',
-        'sizePerPearl' => 'getSizePerPearl',
-        'golfClubLoft' => 'getGolfClubLoft',
-        'totalDiamondWeight' => 'getTotalDiamondWeight',
-        'totalGemWeight' => 'getTotalGemWeight',
-        'packageQuantity' => 'getPackageQuantity',
-        'itemDimensions' => 'getItemDimensions',
+        'size_per_pearl' => 'getSizePerPearl',
+        'golf_club_loft' => 'getGolfClubLoft',
+        'total_diamond_weight' => 'getTotalDiamondWeight',
+        'total_gem_weight' => 'getTotalGemWeight',
+        'package_quantity' => 'getPackageQuantity',
+        'item_dimensions' => 'getItemDimensions',
     ];
 
     /**
@@ -227,25 +227,25 @@ public function __construct(array $data = null)
         $this->container['color'] = $data['color'] ?? null;
         $this->container['edition'] = $data['edition'] ?? null;
         $this->container['flavor'] = $data['flavor'] ?? null;
-        $this->container['gemType'] = $data['gemType'] ?? null;
-        $this->container['golfClubFlex'] = $data['golfClubFlex'] ?? null;
-        $this->container['handOrientation'] = $data['handOrientation'] ?? null;
-        $this->container['hardwarePlatform'] = $data['hardwarePlatform'] ?? null;
-        $this->container['materialType'] = $data['materialType'] ?? null;
-        $this->container['metalType'] = $data['metalType'] ?? null;
+        $this->container['gem_type'] = $data['gem_type'] ?? null;
+        $this->container['golf_club_flex'] = $data['golf_club_flex'] ?? null;
+        $this->container['hand_orientation'] = $data['hand_orientation'] ?? null;
+        $this->container['hardware_platform'] = $data['hardware_platform'] ?? null;
+        $this->container['material_type'] = $data['material_type'] ?? null;
+        $this->container['metal_type'] = $data['metal_type'] ?? null;
         $this->container['model'] = $data['model'] ?? null;
-        $this->container['operatingSystem'] = $data['operatingSystem'] ?? null;
-        $this->container['productTypeSubcategory'] = $data['productTypeSubcategory'] ?? null;
-        $this->container['ringSize'] = $data['ringSize'] ?? null;
-        $this->container['shaftMaterial'] = $data['shaftMaterial'] ?? null;
+        $this->container['operating_system'] = $data['operating_system'] ?? null;
+        $this->container['product_type_subcategory'] = $data['product_type_subcategory'] ?? null;
+        $this->container['ring_size'] = $data['ring_size'] ?? null;
+        $this->container['shaft_material'] = $data['shaft_material'] ?? null;
         $this->container['scent'] = $data['scent'] ?? null;
         $this->container['size'] = $data['size'] ?? null;
-        $this->container['sizePerPearl'] = $data['sizePerPearl'] ?? null;
-        $this->container['golfClubLoft'] = $data['golfClubLoft'] ?? null;
-        $this->container['totalDiamondWeight'] = $data['totalDiamondWeight'] ?? null;
-        $this->container['totalGemWeight'] = $data['totalGemWeight'] ?? null;
-        $this->container['packageQuantity'] = $data['packageQuantity'] ?? null;
-        $this->container['itemDimensions'] = $data['itemDimensions'] ?? null;
+        $this->container['size_per_pearl'] = $data['size_per_pearl'] ?? null;
+        $this->container['golf_club_loft'] = $data['golf_club_loft'] ?? null;
+        $this->container['total_diamond_weight'] = $data['total_diamond_weight'] ?? null;
+        $this->container['total_gem_weight'] = $data['total_gem_weight'] ?? null;
+        $this->container['package_quantity'] = $data['package_quantity'] ?? null;
+        $this->container['item_dimensions'] = $data['item_dimensions'] ?? null;
     }
 
     /**
@@ -420,125 +420,125 @@ public function setFlavor(?string $flavor) : self
     }
 
     /**
-     * Gets gemType.
+     * Gets gem_type.
      *
      * @return null|string[]
      */
     public function getGemType() : ?array
     {
-        return $this->container['gemType'];
+        return $this->container['gem_type'];
     }
 
     /**
-     * Sets gemType.
+     * Sets gem_type.
      *
-     * @param null|string[] $gemType the gem type variations of the item
+     * @param null|string[] $gem_type the gem type variations of the item
      */
-    public function setGemType(?array $gemType) : self
+    public function setGemType(?array $gem_type) : self
     {
-        $this->container['gemType'] = $gemType;
+        $this->container['gem_type'] = $gem_type;
 
         return $this;
     }
 
     /**
-     * Gets golfClubFlex.
+     * Gets golf_club_flex.
      */
     public function getGolfClubFlex() : ?string
     {
-        return $this->container['golfClubFlex'];
+        return $this->container['golf_club_flex'];
     }
 
     /**
-     * Sets golfClubFlex.
+     * Sets golf_club_flex.
      *
-     * @param null|string $golfClubFlex the golf club flex variation of an item
+     * @param null|string $golf_club_flex the golf club flex variation of an item
      */
-    public function setGolfClubFlex(?string $golfClubFlex) : self
+    public function setGolfClubFlex(?string $golf_club_flex) : self
     {
-        $this->container['golfClubFlex'] = $golfClubFlex;
+        $this->container['golf_club_flex'] = $golf_club_flex;
 
         return $this;
     }
 
     /**
-     * Gets handOrientation.
+     * Gets hand_orientation.
      */
     public function getHandOrientation() : ?string
     {
-        return $this->container['handOrientation'];
+        return $this->container['hand_orientation'];
     }
 
     /**
-     * Sets handOrientation.
+     * Sets hand_orientation.
      *
-     * @param null|string $handOrientation the hand orientation variation of an item
+     * @param null|string $hand_orientation the hand orientation variation of an item
      */
-    public function setHandOrientation(?string $handOrientation) : self
+    public function setHandOrientation(?string $hand_orientation) : self
     {
-        $this->container['handOrientation'] = $handOrientation;
+        $this->container['hand_orientation'] = $hand_orientation;
 
         return $this;
     }
 
     /**
-     * Gets hardwarePlatform.
+     * Gets hardware_platform.
      */
     public function getHardwarePlatform() : ?string
     {
-        return $this->container['hardwarePlatform'];
+        return $this->container['hardware_platform'];
     }
 
     /**
-     * Sets hardwarePlatform.
+     * Sets hardware_platform.
      *
-     * @param null|string $hardwarePlatform the hardware platform variation of an item
+     * @param null|string $hardware_platform the hardware platform variation of an item
      */
-    public function setHardwarePlatform(?string $hardwarePlatform) : self
+    public function setHardwarePlatform(?string $hardware_platform) : self
     {
-        $this->container['hardwarePlatform'] = $hardwarePlatform;
+        $this->container['hardware_platform'] = $hardware_platform;
 
         return $this;
     }
 
     /**
-     * Gets materialType.
+     * Gets material_type.
      *
      * @return null|string[]
      */
     public function getMaterialType() : ?array
     {
-        return $this->container['materialType'];
+        return $this->container['material_type'];
     }
 
     /**
-     * Sets materialType.
+     * Sets material_type.
      *
-     * @param null|string[] $materialType the material type variations of an item
+     * @param null|string[] $material_type the material type variations of an item
      */
-    public function setMaterialType(?array $materialType) : self
+    public function setMaterialType(?array $material_type) : self
     {
-        $this->container['materialType'] = $materialType;
+        $this->container['material_type'] = $material_type;
 
         return $this;
     }
 
     /**
-     * Gets metalType.
+     * Gets metal_type.
      */
     public function getMetalType() : ?string
     {
-        return $this->container['metalType'];
+        return $this->container['metal_type'];
     }
 
     /**
-     * Sets metalType.
+     * Sets metal_type.
      *
-     * @param null|string $metalType the metal type variation of an item
+     * @param null|string $metal_type the metal type variation of an item
      */
-    public function setMetalType(?string $metalType) : self
+    public function setMetalType(?string $metal_type) : self
     {
-        $this->container['metalType'] = $metalType;
+        $this->container['metal_type'] = $metal_type;
 
         return $this;
     }
@@ -564,83 +564,83 @@ public function setModel(?string $model) : self
     }
 
     /**
-     * Gets operatingSystem.
+     * Gets operating_system.
      *
      * @return null|string[]
      */
     public function getOperatingSystem() : ?array
     {
-        return $this->container['operatingSystem'];
+        return $this->container['operating_system'];
     }
 
     /**
-     * Sets operatingSystem.
+     * Sets operating_system.
      *
-     * @param null|string[] $operatingSystem the operating system variations of an item
+     * @param null|string[] $operating_system the operating system variations of an item
      */
-    public function setOperatingSystem(?array $operatingSystem) : self
+    public function setOperatingSystem(?array $operating_system) : self
     {
-        $this->container['operatingSystem'] = $operatingSystem;
+        $this->container['operating_system'] = $operating_system;
 
         return $this;
     }
 
     /**
-     * Gets productTypeSubcategory.
+     * Gets product_type_subcategory.
      */
     public function getProductTypeSubcategory() : ?string
     {
-        return $this->container['productTypeSubcategory'];
+        return $this->container['product_type_subcategory'];
     }
 
     /**
-     * Sets productTypeSubcategory.
+     * Sets product_type_subcategory.
      *
-     * @param null|string $productTypeSubcategory the product type subcategory variation of an item
+     * @param null|string $product_type_subcategory the product type subcategory variation of an item
      */
-    public function setProductTypeSubcategory(?string $productTypeSubcategory) : self
+    public function setProductTypeSubcategory(?string $product_type_subcategory) : self
     {
-        $this->container['productTypeSubcategory'] = $productTypeSubcategory;
+        $this->container['product_type_subcategory'] = $product_type_subcategory;
 
         return $this;
     }
 
     /**
-     * Gets ringSize.
+     * Gets ring_size.
      */
     public function getRingSize() : ?string
     {
-        return $this->container['ringSize'];
+        return $this->container['ring_size'];
     }
 
     /**
-     * Sets ringSize.
+     * Sets ring_size.
      *
-     * @param null|string $ringSize the ring size variation of an item
+     * @param null|string $ring_size the ring size variation of an item
      */
-    public function setRingSize(?string $ringSize) : self
+    public function setRingSize(?string $ring_size) : self
     {
-        $this->container['ringSize'] = $ringSize;
+        $this->container['ring_size'] = $ring_size;
 
         return $this;
     }
 
     /**
-     * Gets shaftMaterial.
+     * Gets shaft_material.
      */
     public function getShaftMaterial() : ?string
     {
-        return $this->container['shaftMaterial'];
+        return $this->container['shaft_material'];
     }
 
     /**
-     * Sets shaftMaterial.
+     * Sets shaft_material.
      *
-     * @param null|string $shaftMaterial the shaft material variation of an item
+     * @param null|string $shaft_material the shaft material variation of an item
      */
-    public function setShaftMaterial(?string $shaftMaterial) : self
+    public function setShaftMaterial(?string $shaft_material) : self
     {
-        $this->container['shaftMaterial'] = $shaftMaterial;
+        $this->container['shaft_material'] = $shaft_material;
 
         return $this;
     }
@@ -686,121 +686,121 @@ public function setSize(?string $size) : self
     }
 
     /**
-     * Gets sizePerPearl.
+     * Gets size_per_pearl.
      */
     public function getSizePerPearl() : ?string
     {
-        return $this->container['sizePerPearl'];
+        return $this->container['size_per_pearl'];
     }
 
     /**
-     * Sets sizePerPearl.
+     * Sets size_per_pearl.
      *
-     * @param null|string $sizePerPearl the size per pearl variation of an item
+     * @param null|string $size_per_pearl the size per pearl variation of an item
      */
-    public function setSizePerPearl(?string $sizePerPearl) : self
+    public function setSizePerPearl(?string $size_per_pearl) : self
     {
-        $this->container['sizePerPearl'] = $sizePerPearl;
+        $this->container['size_per_pearl'] = $size_per_pearl;
 
         return $this;
     }
 
     /**
-     * Gets golfClubLoft.
+     * Gets golf_club_loft.
      */
     public function getGolfClubLoft() : ?DecimalWithUnits
     {
-        return $this->container['golfClubLoft'];
+        return $this->container['golf_club_loft'];
     }
 
     /**
-     * Sets golfClubLoft.
+     * Sets golf_club_loft.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $golfClubLoft golfClubLoft
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $golf_club_loft golf_club_loft
      */
-    public function setGolfClubLoft(?DecimalWithUnits $golfClubLoft) : self
+    public function setGolfClubLoft(?DecimalWithUnits $golf_club_loft) : self
     {
-        $this->container['golfClubLoft'] = $golfClubLoft;
+        $this->container['golf_club_loft'] = $golf_club_loft;
 
         return $this;
     }
 
     /**
-     * Gets totalDiamondWeight.
+     * Gets total_diamond_weight.
      */
     public function getTotalDiamondWeight() : ?DecimalWithUnits
     {
-        return $this->container['totalDiamondWeight'];
+        return $this->container['total_diamond_weight'];
     }
 
     /**
-     * Sets totalDiamondWeight.
+     * Sets total_diamond_weight.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $totalDiamondWeight totalDiamondWeight
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $total_diamond_weight total_diamond_weight
      */
-    public function setTotalDiamondWeight(?DecimalWithUnits $totalDiamondWeight) : self
+    public function setTotalDiamondWeight(?DecimalWithUnits $total_diamond_weight) : self
     {
-        $this->container['totalDiamondWeight'] = $totalDiamondWeight;
+        $this->container['total_diamond_weight'] = $total_diamond_weight;
 
         return $this;
     }
 
     /**
-     * Gets totalGemWeight.
+     * Gets total_gem_weight.
      */
     public function getTotalGemWeight() : ?DecimalWithUnits
     {
-        return $this->container['totalGemWeight'];
+        return $this->container['total_gem_weight'];
     }
 
     /**
-     * Sets totalGemWeight.
+     * Sets total_gem_weight.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $totalGemWeight totalGemWeight
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DecimalWithUnits $total_gem_weight total_gem_weight
      */
-    public function setTotalGemWeight(?DecimalWithUnits $totalGemWeight) : self
+    public function setTotalGemWeight(?DecimalWithUnits $total_gem_weight) : self
     {
-        $this->container['totalGemWeight'] = $totalGemWeight;
+        $this->container['total_gem_weight'] = $total_gem_weight;
 
         return $this;
     }
 
     /**
-     * Gets packageQuantity.
+     * Gets package_quantity.
      */
     public function getPackageQuantity() : ?int
     {
-        return $this->container['packageQuantity'];
+        return $this->container['package_quantity'];
     }
 
     /**
-     * Sets packageQuantity.
+     * Sets package_quantity.
      *
-     * @param null|int $packageQuantity the package quantity variation of an item
+     * @param null|int $package_quantity the package quantity variation of an item
      */
-    public function setPackageQuantity(?int $packageQuantity) : self
+    public function setPackageQuantity(?int $package_quantity) : self
     {
-        $this->container['packageQuantity'] = $packageQuantity;
+        $this->container['package_quantity'] = $package_quantity;
 
         return $this;
     }
 
     /**
-     * Gets itemDimensions.
+     * Gets item_dimensions.
      */
     public function getItemDimensions() : ?DimensionType
     {
-        return $this->container['itemDimensions'];
+        return $this->container['item_dimensions'];
     }
 
     /**
-     * Sets itemDimensions.
+     * Sets item_dimensions.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType $itemDimensions itemDimensions
+     * @param null|\AmazonPHP\SellingPartner\Model\CatalogItem\DimensionType $item_dimensions item_dimensions
      */
-    public function setItemDimensions(?DimensionType $itemDimensions) : self
+    public function setItemDimensions(?DimensionType $item_dimensions) : self
     {
-        $this->container['itemDimensions'] = $itemDimensions;
+        $this->container['item_dimensions'] = $item_dimensions;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/SalesRankType.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/SalesRankType.php
index f2c84526c..301f05ec9 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/SalesRankType.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/SalesRankType.php
@@ -56,7 +56,7 @@ class SalesRankType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'productCategoryId' => 'string',
+        'product_category_id' => 'string',
         'rank' => 'int',
     ];
 
@@ -68,7 +68,7 @@ class SalesRankType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'productCategoryId' => null,
+        'product_category_id' => null,
         'rank' => 'int32',
     ];
 
@@ -79,7 +79,7 @@ class SalesRankType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'productCategoryId' => 'ProductCategoryId',
+        'product_category_id' => 'ProductCategoryId',
         'rank' => 'Rank',
     ];
 
@@ -89,7 +89,7 @@ class SalesRankType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'productCategoryId' => 'setProductCategoryId',
+        'product_category_id' => 'setProductCategoryId',
         'rank' => 'setRank',
     ];
 
@@ -99,7 +99,7 @@ class SalesRankType implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'productCategoryId' => 'getProductCategoryId',
+        'product_category_id' => 'getProductCategoryId',
         'rank' => 'getRank',
     ];
 
@@ -118,7 +118,7 @@ class SalesRankType implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['productCategoryId'] = $data['productCategoryId'] ?? null;
+        $this->container['product_category_id'] = $data['product_category_id'] ?? null;
         $this->container['rank'] = $data['rank'] ?? null;
     }
 
@@ -201,8 +201,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['productCategoryId'] === null) {
-            $invalidProperties[] = "'productCategoryId' can't be null";
+        if ($this->container['product_category_id'] === null) {
+            $invalidProperties[] = "'product_category_id' can't be null";
         }
 
         if ($this->container['rank'] === null) {
@@ -224,21 +224,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets productCategoryId.
+     * Gets product_category_id.
      */
     public function getProductCategoryId() : string
     {
-        return $this->container['productCategoryId'];
+        return $this->container['product_category_id'];
     }
 
     /**
-     * Sets productCategoryId.
+     * Sets product_category_id.
      *
-     * @param string $productCategoryId identifies the item category from which the sales rank is taken
+     * @param string $product_category_id identifies the item category from which the sales rank is taken
      */
-    public function setProductCategoryId(string $productCategoryId) : self
+    public function setProductCategoryId(string $product_category_id) : self
     {
-        $this->container['productCategoryId'] = $productCategoryId;
+        $this->container['product_category_id'] = $product_category_id;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/CatalogItem/SellerSKUIdentifier.php b/src/AmazonPHP/SellingPartner/Model/CatalogItem/SellerSKUIdentifier.php
index db4c67289..196ad0142 100644
--- a/src/AmazonPHP/SellingPartner/Model/CatalogItem/SellerSKUIdentifier.php
+++ b/src/AmazonPHP/SellingPartner/Model/CatalogItem/SellerSKUIdentifier.php
@@ -56,9 +56,9 @@ class SellerSKUIdentifier implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'marketplaceId' => 'string',
-        'sellerId' => 'string',
-        'sellerSKU' => 'string',
+        'marketplace_id' => 'string',
+        'seller_id' => 'string',
+        'seller_sku' => 'string',
     ];
 
     /**
@@ -69,9 +69,9 @@ class SellerSKUIdentifier implements \ArrayAccess, \JsonSerializable, ModelInter
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'marketplaceId' => null,
-        'sellerId' => null,
-        'sellerSKU' => null,
+        'marketplace_id' => null,
+        'seller_id' => null,
+        'seller_sku' => null,
     ];
 
     /**
@@ -81,9 +81,9 @@ class SellerSKUIdentifier implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $attributeMap = [
-        'marketplaceId' => 'MarketplaceId',
-        'sellerId' => 'SellerId',
-        'sellerSKU' => 'SellerSKU',
+        'marketplace_id' => 'MarketplaceId',
+        'seller_id' => 'SellerId',
+        'seller_sku' => 'SellerSKU',
     ];
 
     /**
@@ -92,9 +92,9 @@ class SellerSKUIdentifier implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $setters = [
-        'marketplaceId' => 'setMarketplaceId',
-        'sellerId' => 'setSellerId',
-        'sellerSKU' => 'setSellerSKU',
+        'marketplace_id' => 'setMarketplaceId',
+        'seller_id' => 'setSellerId',
+        'seller_sku' => 'setSellerSku',
     ];
 
     /**
@@ -103,9 +103,9 @@ class SellerSKUIdentifier implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $getters = [
-        'marketplaceId' => 'getMarketplaceId',
-        'sellerId' => 'getSellerId',
-        'sellerSKU' => 'getSellerSKU',
+        'marketplace_id' => 'getMarketplaceId',
+        'seller_id' => 'getSellerId',
+        'seller_sku' => 'getSellerSku',
     ];
 
     /**
@@ -123,9 +123,9 @@ class SellerSKUIdentifier implements \ArrayAccess, \JsonSerializable, ModelInter
      */
     public function __construct(array $data = null)
     {
-        $this->container['marketplaceId'] = $data['marketplaceId'] ?? null;
-        $this->container['sellerId'] = $data['sellerId'] ?? null;
-        $this->container['sellerSKU'] = $data['sellerSKU'] ?? null;
+        $this->container['marketplace_id'] = $data['marketplace_id'] ?? null;
+        $this->container['seller_id'] = $data['seller_id'] ?? null;
+        $this->container['seller_sku'] = $data['seller_sku'] ?? null;
     }
 
     /**
@@ -207,16 +207,16 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['marketplaceId'] === null) {
-            $invalidProperties[] = "'marketplaceId' can't be null";
+        if ($this->container['marketplace_id'] === null) {
+            $invalidProperties[] = "'marketplace_id' can't be null";
         }
 
-        if ($this->container['sellerId'] === null) {
-            $invalidProperties[] = "'sellerId' can't be null";
+        if ($this->container['seller_id'] === null) {
+            $invalidProperties[] = "'seller_id' can't be null";
         }
 
-        if ($this->container['sellerSKU'] === null) {
-            $invalidProperties[] = "'sellerSKU' can't be null";
+        if ($this->container['seller_sku'] === null) {
+            $invalidProperties[] = "'seller_sku' can't be null";
         }
 
         return $invalidProperties;
@@ -234,61 +234,61 @@ public function valid() : bool
     }
 
     /**
-     * Gets marketplaceId.
+     * Gets marketplace_id.
      */
     public function getMarketplaceId() : string
     {
-        return $this->container['marketplaceId'];
+        return $this->container['marketplace_id'];
     }
 
     /**
-     * Sets marketplaceId.
+     * Sets marketplace_id.
      *
-     * @param string $marketplaceId a marketplace identifier
+     * @param string $marketplace_id a marketplace identifier
      */
-    public function setMarketplaceId(string $marketplaceId) : self
+    public function setMarketplaceId(string $marketplace_id) : self
     {
-        $this->container['marketplaceId'] = $marketplaceId;
+        $this->container['marketplace_id'] = $marketplace_id;
 
         return $this;
     }
 
     /**
-     * Gets sellerId.
+     * Gets seller_id.
      */
     public function getSellerId() : string
     {
-        return $this->container['sellerId'];
+        return $this->container['seller_id'];
     }
 
     /**
-     * Sets sellerId.
+     * Sets seller_id.
      *
-     * @param string $sellerId the seller identifier submitted for the operation
+     * @param string $seller_id the seller identifier submitted for the operation
      */
-    public function setSellerId(string $sellerId) : self
+    public function setSellerId(string $seller_id) : self
     {
-        $this->container['sellerId'] = $sellerId;
+        $this->container['seller_id'] = $seller_id;
 
         return $this;
     }
 
     /**
-     * Gets sellerSKU.
+     * Gets seller_sku.
      */
-    public function getSellerSKU() : string
+    public function getSellerSku() : string
     {
-        return $this->container['sellerSKU'];
+        return $this->container['seller_sku'];
     }
 
     /**
-     * Sets sellerSKU.
+     * Sets seller_sku.
      *
-     * @param string $sellerSKU the seller stock keeping unit (SKU) of the item
+     * @param string $seller_sku the seller stock keeping unit (SKU) of the item
      */
-    public function setSellerSKU(string $sellerSKU) : self
+    public function setSellerSku(string $seller_sku) : self
     {
-        $this->container['sellerSKU'] = $sellerSKU;
+        $this->container['seller_sku'] = $seller_sku;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInbound/ItemEligibilityPreview.php b/src/AmazonPHP/SellingPartner/Model/FBAInbound/ItemEligibilityPreview.php
index b7527544a..63ba792da 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInbound/ItemEligibilityPreview.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInbound/ItemEligibilityPreview.php
@@ -137,10 +137,10 @@ class ItemEligibilityPreview implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $openAPITypes = [
         'asin' => 'string',
-        'marketplaceId' => 'string',
+        'marketplace_id' => 'string',
         'program' => 'string',
-        'isEligibleForProgram' => 'bool',
-        'ineligibilityReasonList' => 'string[]',
+        'is_eligible_for_program' => 'bool',
+        'ineligibility_reason_list' => 'string[]',
     ];
 
     /**
@@ -152,10 +152,10 @@ class ItemEligibilityPreview implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $openAPIFormats = [
         'asin' => null,
-        'marketplaceId' => null,
+        'marketplace_id' => null,
         'program' => null,
-        'isEligibleForProgram' => null,
-        'ineligibilityReasonList' => null,
+        'is_eligible_for_program' => null,
+        'ineligibility_reason_list' => null,
     ];
 
     /**
@@ -166,10 +166,10 @@ class ItemEligibilityPreview implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $attributeMap = [
         'asin' => 'asin',
-        'marketplaceId' => 'marketplaceId',
+        'marketplace_id' => 'marketplaceId',
         'program' => 'program',
-        'isEligibleForProgram' => 'isEligibleForProgram',
-        'ineligibilityReasonList' => 'ineligibilityReasonList',
+        'is_eligible_for_program' => 'isEligibleForProgram',
+        'ineligibility_reason_list' => 'ineligibilityReasonList',
     ];
 
     /**
@@ -179,10 +179,10 @@ class ItemEligibilityPreview implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $setters = [
         'asin' => 'setAsin',
-        'marketplaceId' => 'setMarketplaceId',
+        'marketplace_id' => 'setMarketplaceId',
         'program' => 'setProgram',
-        'isEligibleForProgram' => 'setIsEligibleForProgram',
-        'ineligibilityReasonList' => 'setIneligibilityReasonList',
+        'is_eligible_for_program' => 'setIsEligibleForProgram',
+        'ineligibility_reason_list' => 'setIneligibilityReasonList',
     ];
 
     /**
@@ -192,10 +192,10 @@ class ItemEligibilityPreview implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     protected static array $getters = [
         'asin' => 'getAsin',
-        'marketplaceId' => 'getMarketplaceId',
+        'marketplace_id' => 'getMarketplaceId',
         'program' => 'getProgram',
-        'isEligibleForProgram' => 'getIsEligibleForProgram',
-        'ineligibilityReasonList' => 'getIneligibilityReasonList',
+        'is_eligible_for_program' => 'getIsEligibleForProgram',
+        'ineligibility_reason_list' => 'getIneligibilityReasonList',
     ];
 
     /**
@@ -214,10 +214,10 @@ class ItemEligibilityPreview implements \ArrayAccess, \JsonSerializable, ModelIn
     public function __construct(array $data = null)
     {
         $this->container['asin'] = $data['asin'] ?? null;
-        $this->container['marketplaceId'] = $data['marketplaceId'] ?? null;
+        $this->container['marketplace_id'] = $data['marketplace_id'] ?? null;
         $this->container['program'] = $data['program'] ?? null;
-        $this->container['isEligibleForProgram'] = $data['isEligibleForProgram'] ?? null;
-        $this->container['ineligibilityReasonList'] = $data['ineligibilityReasonList'] ?? null;
+        $this->container['is_eligible_for_program'] = $data['is_eligible_for_program'] ?? null;
+        $this->container['ineligibility_reason_list'] = $data['ineligibility_reason_list'] ?? null;
     }
 
     /**
@@ -378,8 +378,8 @@ public function listInvalidProperties() : array
             );
         }
 
-        if ($this->container['isEligibleForProgram'] === null) {
-            $invalidProperties[] = "'isEligibleForProgram' can't be null";
+        if ($this->container['is_eligible_for_program'] === null) {
+            $invalidProperties[] = "'is_eligible_for_program' can't be null";
         }
 
         return $invalidProperties;
@@ -417,21 +417,21 @@ public function setAsin(string $asin) : self
     }
 
     /**
-     * Gets marketplaceId.
+     * Gets marketplace_id.
      */
     public function getMarketplaceId() : ?string
     {
-        return $this->container['marketplaceId'];
+        return $this->container['marketplace_id'];
     }
 
     /**
-     * Sets marketplaceId.
+     * Sets marketplace_id.
      *
-     * @param null|string $marketplaceId the marketplace for which eligibility was determined
+     * @param null|string $marketplace_id the marketplace for which eligibility was determined
      */
-    public function setMarketplaceId(?string $marketplaceId) : self
+    public function setMarketplaceId(?string $marketplace_id) : self
     {
-        $this->container['marketplaceId'] = $marketplaceId;
+        $this->container['marketplace_id'] = $marketplace_id;
 
         return $this;
     }
@@ -468,53 +468,53 @@ public function setProgram(string $program) : self
     }
 
     /**
-     * Gets isEligibleForProgram.
+     * Gets is_eligible_for_program.
      */
     public function getIsEligibleForProgram() : bool
     {
-        return $this->container['isEligibleForProgram'];
+        return $this->container['is_eligible_for_program'];
     }
 
     /**
-     * Sets isEligibleForProgram.
+     * Sets is_eligible_for_program.
      *
-     * @param bool $isEligibleForProgram indicates if the item is eligible for the program
+     * @param bool $is_eligible_for_program indicates if the item is eligible for the program
      */
-    public function setIsEligibleForProgram(bool $isEligibleForProgram) : self
+    public function setIsEligibleForProgram(bool $is_eligible_for_program) : self
     {
-        $this->container['isEligibleForProgram'] = $isEligibleForProgram;
+        $this->container['is_eligible_for_program'] = $is_eligible_for_program;
 
         return $this;
     }
 
     /**
-     * Gets ineligibilityReasonList.
+     * Gets ineligibility_reason_list.
      *
      * @return null|string[]
      */
     public function getIneligibilityReasonList() : ?array
     {
-        return $this->container['ineligibilityReasonList'];
+        return $this->container['ineligibility_reason_list'];
     }
 
     /**
-     * Sets ineligibilityReasonList.
+     * Sets ineligibility_reason_list.
      *
-     * @param null|string[] $ineligibilityReasonList potential Ineligibility Reason Codes
+     * @param null|string[] $ineligibility_reason_list potential Ineligibility Reason Codes
      */
-    public function setIneligibilityReasonList(?array $ineligibilityReasonList) : self
+    public function setIneligibilityReasonList(?array $ineligibility_reason_list) : self
     {
         $allowedValues = $this->getIneligibilityReasonListAllowableValues();
 
-        if (null !== $ineligibilityReasonList && \array_diff($ineligibilityReasonList, $allowedValues)) {
+        if (null !== $ineligibility_reason_list && \array_diff($ineligibility_reason_list, $allowedValues)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value for 'ineligibilityReasonList', must be one of '%s'",
+                    "Invalid value for 'ineligibility_reason_list', must be one of '%s'",
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['ineligibilityReasonList'] = $ineligibilityReasonList;
+        $this->container['ineligibility_reason_list'] = $ineligibility_reason_list;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInventory/GetInventorySummariesResult.php b/src/AmazonPHP/SellingPartner/Model/FBAInventory/GetInventorySummariesResult.php
index be651a13d..d93c8ba64 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInventory/GetInventorySummariesResult.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInventory/GetInventorySummariesResult.php
@@ -57,7 +57,7 @@ class GetInventorySummariesResult implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $openAPITypes = [
         'granularity' => '\AmazonPHP\SellingPartner\Model\FBAInventory\Granularity',
-        'inventorySummaries' => '\AmazonPHP\SellingPartner\Model\FBAInventory\InventorySummary[]',
+        'inventory_summaries' => '\AmazonPHP\SellingPartner\Model\FBAInventory\InventorySummary[]',
     ];
 
     /**
@@ -69,7 +69,7 @@ class GetInventorySummariesResult implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $openAPIFormats = [
         'granularity' => null,
-        'inventorySummaries' => null,
+        'inventory_summaries' => null,
     ];
 
     /**
@@ -80,7 +80,7 @@ class GetInventorySummariesResult implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $attributeMap = [
         'granularity' => 'granularity',
-        'inventorySummaries' => 'inventorySummaries',
+        'inventory_summaries' => 'inventorySummaries',
     ];
 
     /**
@@ -90,7 +90,7 @@ class GetInventorySummariesResult implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $setters = [
         'granularity' => 'setGranularity',
-        'inventorySummaries' => 'setInventorySummaries',
+        'inventory_summaries' => 'setInventorySummaries',
     ];
 
     /**
@@ -100,7 +100,7 @@ class GetInventorySummariesResult implements \ArrayAccess, \JsonSerializable, Mo
      */
     protected static array $getters = [
         'granularity' => 'getGranularity',
-        'inventorySummaries' => 'getInventorySummaries',
+        'inventory_summaries' => 'getInventorySummaries',
     ];
 
     /**
@@ -119,7 +119,7 @@ class GetInventorySummariesResult implements \ArrayAccess, \JsonSerializable, Mo
     public function __construct(array $data = null)
     {
         $this->container['granularity'] = $data['granularity'] ?? null;
-        $this->container['inventorySummaries'] = $data['inventorySummaries'] ?? null;
+        $this->container['inventory_summaries'] = $data['inventory_summaries'] ?? null;
     }
 
     /**
@@ -205,8 +205,8 @@ public function listInvalidProperties() : array
             $invalidProperties[] = "'granularity' can't be null";
         }
 
-        if ($this->container['inventorySummaries'] === null) {
-            $invalidProperties[] = "'inventorySummaries' can't be null";
+        if ($this->container['inventory_summaries'] === null) {
+            $invalidProperties[] = "'inventory_summaries' can't be null";
         }
 
         return $invalidProperties;
@@ -244,23 +244,23 @@ public function setGranularity(Granularity $granularity) : self
     }
 
     /**
-     * Gets inventorySummaries.
+     * Gets inventory_summaries.
      *
      * @return \AmazonPHP\SellingPartner\Model\FBAInventory\InventorySummary[]
      */
     public function getInventorySummaries() : array
     {
-        return $this->container['inventorySummaries'];
+        return $this->container['inventory_summaries'];
     }
 
     /**
-     * Sets inventorySummaries.
+     * Sets inventory_summaries.
      *
-     * @param \AmazonPHP\SellingPartner\Model\FBAInventory\InventorySummary[] $inventorySummaries a list of inventory summaries
+     * @param \AmazonPHP\SellingPartner\Model\FBAInventory\InventorySummary[] $inventory_summaries a list of inventory summaries
      */
-    public function setInventorySummaries(array $inventorySummaries) : self
+    public function setInventorySummaries(array $inventory_summaries) : self
     {
-        $this->container['inventorySummaries'] = $inventorySummaries;
+        $this->container['inventory_summaries'] = $inventory_summaries;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInventory/Granularity.php b/src/AmazonPHP/SellingPartner/Model/FBAInventory/Granularity.php
index 27153d358..6add56937 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInventory/Granularity.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInventory/Granularity.php
@@ -58,8 +58,8 @@ class Granularity implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'granularityType' => 'string',
-        'granularityId' => 'string',
+        'granularity_type' => 'string',
+        'granularity_id' => 'string',
     ];
 
     /**
@@ -70,8 +70,8 @@ class Granularity implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'granularityType' => null,
-        'granularityId' => null,
+        'granularity_type' => null,
+        'granularity_id' => null,
     ];
 
     /**
@@ -81,8 +81,8 @@ class Granularity implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'granularityType' => 'granularityType',
-        'granularityId' => 'granularityId',
+        'granularity_type' => 'granularityType',
+        'granularity_id' => 'granularityId',
     ];
 
     /**
@@ -91,8 +91,8 @@ class Granularity implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'granularityType' => 'setGranularityType',
-        'granularityId' => 'setGranularityId',
+        'granularity_type' => 'setGranularityType',
+        'granularity_id' => 'setGranularityId',
     ];
 
     /**
@@ -101,8 +101,8 @@ class Granularity implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'granularityType' => 'getGranularityType',
-        'granularityId' => 'getGranularityId',
+        'granularity_type' => 'getGranularityType',
+        'granularity_id' => 'getGranularityId',
     ];
 
     /**
@@ -120,8 +120,8 @@ class Granularity implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['granularityType'] = $data['granularityType'] ?? null;
-        $this->container['granularityId'] = $data['granularityId'] ?? null;
+        $this->container['granularity_type'] = $data['granularity_type'] ?? null;
+        $this->container['granularity_id'] = $data['granularity_id'] ?? null;
     }
 
     /**
@@ -217,10 +217,10 @@ public function listInvalidProperties() : array
 
         $allowedValues = $this->getGranularityTypeAllowableValues();
 
-        if (null !== $this->container['granularityType'] && !\in_array($this->container['granularityType'], $allowedValues, true)) {
+        if (null !== $this->container['granularity_type'] && !\in_array($this->container['granularity_type'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'granularityType', must be one of '%s'",
-                $this->container['granularityType'],
+                "invalid value '%s' for 'granularity_type', must be one of '%s'",
+                $this->container['granularity_type'],
                 \implode("', '", $allowedValues)
             );
         }
@@ -240,52 +240,52 @@ public function valid() : bool
     }
 
     /**
-     * Gets granularityType.
+     * Gets granularity_type.
      */
     public function getGranularityType() : ?string
     {
-        return $this->container['granularityType'];
+        return $this->container['granularity_type'];
     }
 
     /**
-     * Sets granularityType.
+     * Sets granularity_type.
      *
-     * @param null|string $granularityType the granularity type for the inventory aggregation level
+     * @param null|string $granularity_type the granularity type for the inventory aggregation level
      */
-    public function setGranularityType(?string $granularityType) : self
+    public function setGranularityType(?string $granularity_type) : self
     {
         $allowedValues = $this->getGranularityTypeAllowableValues();
 
-        if (null !== $granularityType && !\in_array($granularityType, $allowedValues, true)) {
+        if (null !== $granularity_type && !\in_array($granularity_type, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'granularityType', must be one of '%s'",
-                    $granularityType,
+                    "Invalid value '%s' for 'granularity_type', must be one of '%s'",
+                    $granularity_type,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['granularityType'] = $granularityType;
+        $this->container['granularity_type'] = $granularity_type;
 
         return $this;
     }
 
     /**
-     * Gets granularityId.
+     * Gets granularity_id.
      */
     public function getGranularityId() : ?string
     {
-        return $this->container['granularityId'];
+        return $this->container['granularity_id'];
     }
 
     /**
-     * Sets granularityId.
+     * Sets granularity_id.
      *
-     * @param null|string $granularityId The granularity ID for the specified granularity type. When granularityType is Marketplace, specify the marketplaceId.
+     * @param null|string $granularity_id The granularity ID for the specified granularity type. When granularityType is Marketplace, specify the marketplaceId.
      */
-    public function setGranularityId(?string $granularityId) : self
+    public function setGranularityId(?string $granularity_id) : self
     {
-        $this->container['granularityId'] = $granularityId;
+        $this->container['granularity_id'] = $granularity_id;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInventory/InventoryDetails.php b/src/AmazonPHP/SellingPartner/Model/FBAInventory/InventoryDetails.php
index e62c69385..868189116 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInventory/InventoryDetails.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInventory/InventoryDetails.php
@@ -56,13 +56,13 @@ class InventoryDetails implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'fulfillableQuantity' => 'int',
-        'inboundWorkingQuantity' => 'int',
-        'inboundShippedQuantity' => 'int',
-        'inboundReceivingQuantity' => 'int',
-        'reservedQuantity' => '\AmazonPHP\SellingPartner\Model\FBAInventory\ReservedQuantity',
-        'researchingQuantity' => '\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantity',
-        'unfulfillableQuantity' => '\AmazonPHP\SellingPartner\Model\FBAInventory\UnfulfillableQuantity',
+        'fulfillable_quantity' => 'int',
+        'inbound_working_quantity' => 'int',
+        'inbound_shipped_quantity' => 'int',
+        'inbound_receiving_quantity' => 'int',
+        'reserved_quantity' => '\AmazonPHP\SellingPartner\Model\FBAInventory\ReservedQuantity',
+        'researching_quantity' => '\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantity',
+        'unfulfillable_quantity' => '\AmazonPHP\SellingPartner\Model\FBAInventory\UnfulfillableQuantity',
     ];
 
     /**
@@ -73,13 +73,13 @@ class InventoryDetails implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'fulfillableQuantity' => null,
-        'inboundWorkingQuantity' => null,
-        'inboundShippedQuantity' => null,
-        'inboundReceivingQuantity' => null,
-        'reservedQuantity' => null,
-        'researchingQuantity' => null,
-        'unfulfillableQuantity' => null,
+        'fulfillable_quantity' => null,
+        'inbound_working_quantity' => null,
+        'inbound_shipped_quantity' => null,
+        'inbound_receiving_quantity' => null,
+        'reserved_quantity' => null,
+        'researching_quantity' => null,
+        'unfulfillable_quantity' => null,
     ];
 
     /**
@@ -89,13 +89,13 @@ class InventoryDetails implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @var string[]
      */
     protected static array $attributeMap = [
-        'fulfillableQuantity' => 'fulfillableQuantity',
-        'inboundWorkingQuantity' => 'inboundWorkingQuantity',
-        'inboundShippedQuantity' => 'inboundShippedQuantity',
-        'inboundReceivingQuantity' => 'inboundReceivingQuantity',
-        'reservedQuantity' => 'reservedQuantity',
-        'researchingQuantity' => 'researchingQuantity',
-        'unfulfillableQuantity' => 'unfulfillableQuantity',
+        'fulfillable_quantity' => 'fulfillableQuantity',
+        'inbound_working_quantity' => 'inboundWorkingQuantity',
+        'inbound_shipped_quantity' => 'inboundShippedQuantity',
+        'inbound_receiving_quantity' => 'inboundReceivingQuantity',
+        'reserved_quantity' => 'reservedQuantity',
+        'researching_quantity' => 'researchingQuantity',
+        'unfulfillable_quantity' => 'unfulfillableQuantity',
     ];
 
     /**
@@ -104,13 +104,13 @@ class InventoryDetails implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @var string[]
      */
     protected static array $setters = [
-        'fulfillableQuantity' => 'setFulfillableQuantity',
-        'inboundWorkingQuantity' => 'setInboundWorkingQuantity',
-        'inboundShippedQuantity' => 'setInboundShippedQuantity',
-        'inboundReceivingQuantity' => 'setInboundReceivingQuantity',
-        'reservedQuantity' => 'setReservedQuantity',
-        'researchingQuantity' => 'setResearchingQuantity',
-        'unfulfillableQuantity' => 'setUnfulfillableQuantity',
+        'fulfillable_quantity' => 'setFulfillableQuantity',
+        'inbound_working_quantity' => 'setInboundWorkingQuantity',
+        'inbound_shipped_quantity' => 'setInboundShippedQuantity',
+        'inbound_receiving_quantity' => 'setInboundReceivingQuantity',
+        'reserved_quantity' => 'setReservedQuantity',
+        'researching_quantity' => 'setResearchingQuantity',
+        'unfulfillable_quantity' => 'setUnfulfillableQuantity',
     ];
 
     /**
@@ -119,13 +119,13 @@ class InventoryDetails implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @var string[]
      */
     protected static array $getters = [
-        'fulfillableQuantity' => 'getFulfillableQuantity',
-        'inboundWorkingQuantity' => 'getInboundWorkingQuantity',
-        'inboundShippedQuantity' => 'getInboundShippedQuantity',
-        'inboundReceivingQuantity' => 'getInboundReceivingQuantity',
-        'reservedQuantity' => 'getReservedQuantity',
-        'researchingQuantity' => 'getResearchingQuantity',
-        'unfulfillableQuantity' => 'getUnfulfillableQuantity',
+        'fulfillable_quantity' => 'getFulfillableQuantity',
+        'inbound_working_quantity' => 'getInboundWorkingQuantity',
+        'inbound_shipped_quantity' => 'getInboundShippedQuantity',
+        'inbound_receiving_quantity' => 'getInboundReceivingQuantity',
+        'reserved_quantity' => 'getReservedQuantity',
+        'researching_quantity' => 'getResearchingQuantity',
+        'unfulfillable_quantity' => 'getUnfulfillableQuantity',
     ];
 
     /**
@@ -143,13 +143,13 @@ class InventoryDetails implements \ArrayAccess, \JsonSerializable, ModelInterfac
      */
     public function __construct(array $data = null)
     {
-        $this->container['fulfillableQuantity'] = $data['fulfillableQuantity'] ?? null;
-        $this->container['inboundWorkingQuantity'] = $data['inboundWorkingQuantity'] ?? null;
-        $this->container['inboundShippedQuantity'] = $data['inboundShippedQuantity'] ?? null;
-        $this->container['inboundReceivingQuantity'] = $data['inboundReceivingQuantity'] ?? null;
-        $this->container['reservedQuantity'] = $data['reservedQuantity'] ?? null;
-        $this->container['researchingQuantity'] = $data['researchingQuantity'] ?? null;
-        $this->container['unfulfillableQuantity'] = $data['unfulfillableQuantity'] ?? null;
+        $this->container['fulfillable_quantity'] = $data['fulfillable_quantity'] ?? null;
+        $this->container['inbound_working_quantity'] = $data['inbound_working_quantity'] ?? null;
+        $this->container['inbound_shipped_quantity'] = $data['inbound_shipped_quantity'] ?? null;
+        $this->container['inbound_receiving_quantity'] = $data['inbound_receiving_quantity'] ?? null;
+        $this->container['reserved_quantity'] = $data['reserved_quantity'] ?? null;
+        $this->container['researching_quantity'] = $data['researching_quantity'] ?? null;
+        $this->container['unfulfillable_quantity'] = $data['unfulfillable_quantity'] ?? null;
     }
 
     /**
@@ -244,141 +244,141 @@ public function valid() : bool
     }
 
     /**
-     * Gets fulfillableQuantity.
+     * Gets fulfillable_quantity.
      */
     public function getFulfillableQuantity() : ?int
     {
-        return $this->container['fulfillableQuantity'];
+        return $this->container['fulfillable_quantity'];
     }
 
     /**
-     * Sets fulfillableQuantity.
+     * Sets fulfillable_quantity.
      *
-     * @param null|int $fulfillableQuantity the item quantity that can be picked, packed, and shipped
+     * @param null|int $fulfillable_quantity the item quantity that can be picked, packed, and shipped
      */
-    public function setFulfillableQuantity(?int $fulfillableQuantity) : self
+    public function setFulfillableQuantity(?int $fulfillable_quantity) : self
     {
-        $this->container['fulfillableQuantity'] = $fulfillableQuantity;
+        $this->container['fulfillable_quantity'] = $fulfillable_quantity;
 
         return $this;
     }
 
     /**
-     * Gets inboundWorkingQuantity.
+     * Gets inbound_working_quantity.
      */
     public function getInboundWorkingQuantity() : ?int
     {
-        return $this->container['inboundWorkingQuantity'];
+        return $this->container['inbound_working_quantity'];
     }
 
     /**
-     * Sets inboundWorkingQuantity.
+     * Sets inbound_working_quantity.
      *
-     * @param null|int $inboundWorkingQuantity the number of units in an inbound shipment for which you have notified Amazon
+     * @param null|int $inbound_working_quantity the number of units in an inbound shipment for which you have notified Amazon
      */
-    public function setInboundWorkingQuantity(?int $inboundWorkingQuantity) : self
+    public function setInboundWorkingQuantity(?int $inbound_working_quantity) : self
     {
-        $this->container['inboundWorkingQuantity'] = $inboundWorkingQuantity;
+        $this->container['inbound_working_quantity'] = $inbound_working_quantity;
 
         return $this;
     }
 
     /**
-     * Gets inboundShippedQuantity.
+     * Gets inbound_shipped_quantity.
      */
     public function getInboundShippedQuantity() : ?int
     {
-        return $this->container['inboundShippedQuantity'];
+        return $this->container['inbound_shipped_quantity'];
     }
 
     /**
-     * Sets inboundShippedQuantity.
+     * Sets inbound_shipped_quantity.
      *
-     * @param null|int $inboundShippedQuantity the number of units in an inbound shipment that you have notified Amazon about and have provided a tracking number
+     * @param null|int $inbound_shipped_quantity the number of units in an inbound shipment that you have notified Amazon about and have provided a tracking number
      */
-    public function setInboundShippedQuantity(?int $inboundShippedQuantity) : self
+    public function setInboundShippedQuantity(?int $inbound_shipped_quantity) : self
     {
-        $this->container['inboundShippedQuantity'] = $inboundShippedQuantity;
+        $this->container['inbound_shipped_quantity'] = $inbound_shipped_quantity;
 
         return $this;
     }
 
     /**
-     * Gets inboundReceivingQuantity.
+     * Gets inbound_receiving_quantity.
      */
     public function getInboundReceivingQuantity() : ?int
     {
-        return $this->container['inboundReceivingQuantity'];
+        return $this->container['inbound_receiving_quantity'];
     }
 
     /**
-     * Sets inboundReceivingQuantity.
+     * Sets inbound_receiving_quantity.
      *
-     * @param null|int $inboundReceivingQuantity the number of units that have not yet been received at an Amazon fulfillment center for processing, but are part of an inbound shipment with some units that have already been received and processed
+     * @param null|int $inbound_receiving_quantity the number of units that have not yet been received at an Amazon fulfillment center for processing, but are part of an inbound shipment with some units that have already been received and processed
      */
-    public function setInboundReceivingQuantity(?int $inboundReceivingQuantity) : self
+    public function setInboundReceivingQuantity(?int $inbound_receiving_quantity) : self
     {
-        $this->container['inboundReceivingQuantity'] = $inboundReceivingQuantity;
+        $this->container['inbound_receiving_quantity'] = $inbound_receiving_quantity;
 
         return $this;
     }
 
     /**
-     * Gets reservedQuantity.
+     * Gets reserved_quantity.
      */
     public function getReservedQuantity() : ?ReservedQuantity
     {
-        return $this->container['reservedQuantity'];
+        return $this->container['reserved_quantity'];
     }
 
     /**
-     * Sets reservedQuantity.
+     * Sets reserved_quantity.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\ReservedQuantity $reservedQuantity reservedQuantity
+     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\ReservedQuantity $reserved_quantity reserved_quantity
      */
-    public function setReservedQuantity(?ReservedQuantity $reservedQuantity) : self
+    public function setReservedQuantity(?ReservedQuantity $reserved_quantity) : self
     {
-        $this->container['reservedQuantity'] = $reservedQuantity;
+        $this->container['reserved_quantity'] = $reserved_quantity;
 
         return $this;
     }
 
     /**
-     * Gets researchingQuantity.
+     * Gets researching_quantity.
      */
     public function getResearchingQuantity() : ?ResearchingQuantity
     {
-        return $this->container['researchingQuantity'];
+        return $this->container['researching_quantity'];
     }
 
     /**
-     * Sets researchingQuantity.
+     * Sets researching_quantity.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantity $researchingQuantity researchingQuantity
+     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantity $researching_quantity researching_quantity
      */
-    public function setResearchingQuantity(?ResearchingQuantity $researchingQuantity) : self
+    public function setResearchingQuantity(?ResearchingQuantity $researching_quantity) : self
     {
-        $this->container['researchingQuantity'] = $researchingQuantity;
+        $this->container['researching_quantity'] = $researching_quantity;
 
         return $this;
     }
 
     /**
-     * Gets unfulfillableQuantity.
+     * Gets unfulfillable_quantity.
      */
     public function getUnfulfillableQuantity() : ?UnfulfillableQuantity
     {
-        return $this->container['unfulfillableQuantity'];
+        return $this->container['unfulfillable_quantity'];
     }
 
     /**
-     * Sets unfulfillableQuantity.
+     * Sets unfulfillable_quantity.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\UnfulfillableQuantity $unfulfillableQuantity unfulfillableQuantity
+     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\UnfulfillableQuantity $unfulfillable_quantity unfulfillable_quantity
      */
-    public function setUnfulfillableQuantity(?UnfulfillableQuantity $unfulfillableQuantity) : self
+    public function setUnfulfillableQuantity(?UnfulfillableQuantity $unfulfillable_quantity) : self
     {
-        $this->container['unfulfillableQuantity'] = $unfulfillableQuantity;
+        $this->container['unfulfillable_quantity'] = $unfulfillable_quantity;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInventory/InventorySummary.php b/src/AmazonPHP/SellingPartner/Model/FBAInventory/InventorySummary.php
index ae3b44549..710ef21c8 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInventory/InventorySummary.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInventory/InventorySummary.php
@@ -57,13 +57,13 @@ class InventorySummary implements \ArrayAccess, \JsonSerializable, ModelInterfac
      */
     protected static array $openAPITypes = [
         'asin' => 'string',
-        'fnSku' => 'string',
-        'sellerSku' => 'string',
+        'fn_sku' => 'string',
+        'seller_sku' => 'string',
         'condition' => 'string',
-        'inventoryDetails' => '\AmazonPHP\SellingPartner\Model\FBAInventory\InventoryDetails',
-        'lastUpdatedTime' => '\DateTime',
-        'productName' => 'string',
-        'totalQuantity' => 'int',
+        'inventory_details' => '\AmazonPHP\SellingPartner\Model\FBAInventory\InventoryDetails',
+        'last_updated_time' => '\DateTime',
+        'product_name' => 'string',
+        'total_quantity' => 'int',
     ];
 
     /**
@@ -75,13 +75,13 @@ class InventorySummary implements \ArrayAccess, \JsonSerializable, ModelInterfac
      */
     protected static array $openAPIFormats = [
         'asin' => null,
-        'fnSku' => null,
-        'sellerSku' => null,
+        'fn_sku' => null,
+        'seller_sku' => null,
         'condition' => null,
-        'inventoryDetails' => null,
-        'lastUpdatedTime' => 'date-time',
-        'productName' => null,
-        'totalQuantity' => null,
+        'inventory_details' => null,
+        'last_updated_time' => 'date-time',
+        'product_name' => null,
+        'total_quantity' => null,
     ];
 
     /**
@@ -92,13 +92,13 @@ class InventorySummary implements \ArrayAccess, \JsonSerializable, ModelInterfac
      */
     protected static array $attributeMap = [
         'asin' => 'asin',
-        'fnSku' => 'fnSku',
-        'sellerSku' => 'sellerSku',
+        'fn_sku' => 'fnSku',
+        'seller_sku' => 'sellerSku',
         'condition' => 'condition',
-        'inventoryDetails' => 'inventoryDetails',
-        'lastUpdatedTime' => 'lastUpdatedTime',
-        'productName' => 'productName',
-        'totalQuantity' => 'totalQuantity',
+        'inventory_details' => 'inventoryDetails',
+        'last_updated_time' => 'lastUpdatedTime',
+        'product_name' => 'productName',
+        'total_quantity' => 'totalQuantity',
     ];
 
     /**
@@ -108,13 +108,13 @@ class InventorySummary implements \ArrayAccess, \JsonSerializable, ModelInterfac
      */
     protected static array $setters = [
         'asin' => 'setAsin',
-        'fnSku' => 'setFnSku',
-        'sellerSku' => 'setSellerSku',
+        'fn_sku' => 'setFnSku',
+        'seller_sku' => 'setSellerSku',
         'condition' => 'setCondition',
-        'inventoryDetails' => 'setInventoryDetails',
-        'lastUpdatedTime' => 'setLastUpdatedTime',
-        'productName' => 'setProductName',
-        'totalQuantity' => 'setTotalQuantity',
+        'inventory_details' => 'setInventoryDetails',
+        'last_updated_time' => 'setLastUpdatedTime',
+        'product_name' => 'setProductName',
+        'total_quantity' => 'setTotalQuantity',
     ];
 
     /**
@@ -124,13 +124,13 @@ class InventorySummary implements \ArrayAccess, \JsonSerializable, ModelInterfac
      */
     protected static array $getters = [
         'asin' => 'getAsin',
-        'fnSku' => 'getFnSku',
-        'sellerSku' => 'getSellerSku',
+        'fn_sku' => 'getFnSku',
+        'seller_sku' => 'getSellerSku',
         'condition' => 'getCondition',
-        'inventoryDetails' => 'getInventoryDetails',
-        'lastUpdatedTime' => 'getLastUpdatedTime',
-        'productName' => 'getProductName',
-        'totalQuantity' => 'getTotalQuantity',
+        'inventory_details' => 'getInventoryDetails',
+        'last_updated_time' => 'getLastUpdatedTime',
+        'product_name' => 'getProductName',
+        'total_quantity' => 'getTotalQuantity',
     ];
 
     /**
@@ -149,13 +149,13 @@ class InventorySummary implements \ArrayAccess, \JsonSerializable, ModelInterfac
     public function __construct(array $data = null)
     {
         $this->container['asin'] = $data['asin'] ?? null;
-        $this->container['fnSku'] = $data['fnSku'] ?? null;
-        $this->container['sellerSku'] = $data['sellerSku'] ?? null;
+        $this->container['fn_sku'] = $data['fn_sku'] ?? null;
+        $this->container['seller_sku'] = $data['seller_sku'] ?? null;
         $this->container['condition'] = $data['condition'] ?? null;
-        $this->container['inventoryDetails'] = $data['inventoryDetails'] ?? null;
-        $this->container['lastUpdatedTime'] = $data['lastUpdatedTime'] ?? null;
-        $this->container['productName'] = $data['productName'] ?? null;
-        $this->container['totalQuantity'] = $data['totalQuantity'] ?? null;
+        $this->container['inventory_details'] = $data['inventory_details'] ?? null;
+        $this->container['last_updated_time'] = $data['last_updated_time'] ?? null;
+        $this->container['product_name'] = $data['product_name'] ?? null;
+        $this->container['total_quantity'] = $data['total_quantity'] ?? null;
     }
 
     /**
@@ -270,41 +270,41 @@ public function setAsin(?string $asin) : self
     }
 
     /**
-     * Gets fnSku.
+     * Gets fn_sku.
      */
     public function getFnSku() : ?string
     {
-        return $this->container['fnSku'];
+        return $this->container['fn_sku'];
     }
 
     /**
-     * Sets fnSku.
+     * Sets fn_sku.
      *
-     * @param null|string $fnSku amazon's fulfillment network SKU identifier
+     * @param null|string $fn_sku amazon's fulfillment network SKU identifier
      */
-    public function setFnSku(?string $fnSku) : self
+    public function setFnSku(?string $fn_sku) : self
     {
-        $this->container['fnSku'] = $fnSku;
+        $this->container['fn_sku'] = $fn_sku;
 
         return $this;
     }
 
     /**
-     * Gets sellerSku.
+     * Gets seller_sku.
      */
     public function getSellerSku() : ?string
     {
-        return $this->container['sellerSku'];
+        return $this->container['seller_sku'];
     }
 
     /**
-     * Sets sellerSku.
+     * Sets seller_sku.
      *
-     * @param null|string $sellerSku the seller SKU of the item
+     * @param null|string $seller_sku the seller SKU of the item
      */
-    public function setSellerSku(?string $sellerSku) : self
+    public function setSellerSku(?string $seller_sku) : self
     {
-        $this->container['sellerSku'] = $sellerSku;
+        $this->container['seller_sku'] = $seller_sku;
 
         return $this;
     }
@@ -330,81 +330,81 @@ public function setCondition(?string $condition) : self
     }
 
     /**
-     * Gets inventoryDetails.
+     * Gets inventory_details.
      */
     public function getInventoryDetails() : ?InventoryDetails
     {
-        return $this->container['inventoryDetails'];
+        return $this->container['inventory_details'];
     }
 
     /**
-     * Sets inventoryDetails.
+     * Sets inventory_details.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\InventoryDetails $inventoryDetails inventoryDetails
+     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\InventoryDetails $inventory_details inventory_details
      */
-    public function setInventoryDetails(?InventoryDetails $inventoryDetails) : self
+    public function setInventoryDetails(?InventoryDetails $inventory_details) : self
     {
-        $this->container['inventoryDetails'] = $inventoryDetails;
+        $this->container['inventory_details'] = $inventory_details;
 
         return $this;
     }
 
     /**
-     * Gets lastUpdatedTime.
+     * Gets last_updated_time.
      */
     public function getLastUpdatedTime() : ?\DateTime
     {
-        return $this->container['lastUpdatedTime'];
+        return $this->container['last_updated_time'];
     }
 
     /**
-     * Sets lastUpdatedTime.
+     * Sets last_updated_time.
      *
-     * @param null|\DateTime $lastUpdatedTime the date and time that any quantity was last updated
+     * @param null|\DateTime $last_updated_time the date and time that any quantity was last updated
      */
-    public function setLastUpdatedTime(?\DateTime $lastUpdatedTime) : self
+    public function setLastUpdatedTime(?\DateTime $last_updated_time) : self
     {
-        $this->container['lastUpdatedTime'] = $lastUpdatedTime;
+        $this->container['last_updated_time'] = $last_updated_time;
 
         return $this;
     }
 
     /**
-     * Gets productName.
+     * Gets product_name.
      */
     public function getProductName() : ?string
     {
-        return $this->container['productName'];
+        return $this->container['product_name'];
     }
 
     /**
-     * Sets productName.
+     * Sets product_name.
      *
-     * @param null|string $productName the localized language product title of the item within the specific marketplace
+     * @param null|string $product_name the localized language product title of the item within the specific marketplace
      */
-    public function setProductName(?string $productName) : self
+    public function setProductName(?string $product_name) : self
     {
-        $this->container['productName'] = $productName;
+        $this->container['product_name'] = $product_name;
 
         return $this;
     }
 
     /**
-     * Gets totalQuantity.
+     * Gets total_quantity.
      */
     public function getTotalQuantity() : ?int
     {
-        return $this->container['totalQuantity'];
+        return $this->container['total_quantity'];
     }
 
     /**
-     * Sets totalQuantity.
+     * Sets total_quantity.
      *
-     * @param null|int $totalQuantity the total number of units in an inbound shipment or in Amazon fulfillment centers
+     * @param null|int $total_quantity the total number of units in an inbound shipment or in Amazon fulfillment centers
      */
-    public function setTotalQuantity(?int $totalQuantity) : self
+    public function setTotalQuantity(?int $total_quantity) : self
     {
-        $this->container['totalQuantity'] = $totalQuantity;
+        $this->container['total_quantity'] = $total_quantity;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInventory/Pagination.php b/src/AmazonPHP/SellingPartner/Model/FBAInventory/Pagination.php
index a19e27e2e..52a9bc7b9 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInventory/Pagination.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInventory/Pagination.php
@@ -56,7 +56,7 @@ class Pagination implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'nextToken' => 'string',
+        'next_token' => 'string',
     ];
 
     /**
@@ -67,7 +67,7 @@ class Pagination implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'nextToken' => null,
+        'next_token' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class Pagination implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'nextToken' => 'nextToken',
+        'next_token' => 'nextToken',
     ];
 
     /**
@@ -86,7 +86,7 @@ class Pagination implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'nextToken' => 'setNextToken',
+        'next_token' => 'setNextToken',
     ];
 
     /**
@@ -95,7 +95,7 @@ class Pagination implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'nextToken' => 'getNextToken',
+        'next_token' => 'getNextToken',
     ];
 
     /**
@@ -113,7 +113,7 @@ class Pagination implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['nextToken'] = $data['nextToken'] ?? null;
+        $this->container['next_token'] = $data['next_token'] ?? null;
     }
 
     /**
@@ -208,21 +208,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets nextToken.
+     * Gets next_token.
      */
     public function getNextToken() : ?string
     {
-        return $this->container['nextToken'];
+        return $this->container['next_token'];
     }
 
     /**
-     * Sets nextToken.
+     * Sets next_token.
      *
-     * @param null|string $nextToken A generated string used to retrieve the next page of the result. If nextToken is returned, pass the value of nextToken to the next request. If nextToken is not returned, there are no more items to return.
+     * @param null|string $next_token A generated string used to retrieve the next page of the result. If nextToken is returned, pass the value of nextToken to the next request. If nextToken is not returned, there are no more items to return.
      */
-    public function setNextToken(?string $nextToken) : self
+    public function setNextToken(?string $next_token) : self
     {
-        $this->container['nextToken'] = $nextToken;
+        $this->container['next_token'] = $next_token;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInventory/ResearchingQuantity.php b/src/AmazonPHP/SellingPartner/Model/FBAInventory/ResearchingQuantity.php
index 26cd28a95..1f5433d0f 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInventory/ResearchingQuantity.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInventory/ResearchingQuantity.php
@@ -56,8 +56,8 @@ class ResearchingQuantity implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'totalResearchingQuantity' => 'int',
-        'researchingQuantityBreakdown' => '\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantityEntry[]',
+        'total_researching_quantity' => 'int',
+        'researching_quantity_breakdown' => '\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantityEntry[]',
     ];
 
     /**
@@ -68,8 +68,8 @@ class ResearchingQuantity implements \ArrayAccess, \JsonSerializable, ModelInter
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'totalResearchingQuantity' => null,
-        'researchingQuantityBreakdown' => null,
+        'total_researching_quantity' => null,
+        'researching_quantity_breakdown' => null,
     ];
 
     /**
@@ -79,8 +79,8 @@ class ResearchingQuantity implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $attributeMap = [
-        'totalResearchingQuantity' => 'totalResearchingQuantity',
-        'researchingQuantityBreakdown' => 'researchingQuantityBreakdown',
+        'total_researching_quantity' => 'totalResearchingQuantity',
+        'researching_quantity_breakdown' => 'researchingQuantityBreakdown',
     ];
 
     /**
@@ -89,8 +89,8 @@ class ResearchingQuantity implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $setters = [
-        'totalResearchingQuantity' => 'setTotalResearchingQuantity',
-        'researchingQuantityBreakdown' => 'setResearchingQuantityBreakdown',
+        'total_researching_quantity' => 'setTotalResearchingQuantity',
+        'researching_quantity_breakdown' => 'setResearchingQuantityBreakdown',
     ];
 
     /**
@@ -99,8 +99,8 @@ class ResearchingQuantity implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $getters = [
-        'totalResearchingQuantity' => 'getTotalResearchingQuantity',
-        'researchingQuantityBreakdown' => 'getResearchingQuantityBreakdown',
+        'total_researching_quantity' => 'getTotalResearchingQuantity',
+        'researching_quantity_breakdown' => 'getResearchingQuantityBreakdown',
     ];
 
     /**
@@ -118,8 +118,8 @@ class ResearchingQuantity implements \ArrayAccess, \JsonSerializable, ModelInter
      */
     public function __construct(array $data = null)
     {
-        $this->container['totalResearchingQuantity'] = $data['totalResearchingQuantity'] ?? null;
-        $this->container['researchingQuantityBreakdown'] = $data['researchingQuantityBreakdown'] ?? null;
+        $this->container['total_researching_quantity'] = $data['total_researching_quantity'] ?? null;
+        $this->container['researching_quantity_breakdown'] = $data['researching_quantity_breakdown'] ?? null;
     }
 
     /**
@@ -214,43 +214,43 @@ public function valid() : bool
     }
 
     /**
-     * Gets totalResearchingQuantity.
+     * Gets total_researching_quantity.
      */
     public function getTotalResearchingQuantity() : ?int
     {
-        return $this->container['totalResearchingQuantity'];
+        return $this->container['total_researching_quantity'];
     }
 
     /**
-     * Sets totalResearchingQuantity.
+     * Sets total_researching_quantity.
      *
-     * @param null|int $totalResearchingQuantity the total number of units currently being researched in Amazon's fulfillment network
+     * @param null|int $total_researching_quantity the total number of units currently being researched in Amazon's fulfillment network
      */
-    public function setTotalResearchingQuantity(?int $totalResearchingQuantity) : self
+    public function setTotalResearchingQuantity(?int $total_researching_quantity) : self
     {
-        $this->container['totalResearchingQuantity'] = $totalResearchingQuantity;
+        $this->container['total_researching_quantity'] = $total_researching_quantity;
 
         return $this;
     }
 
     /**
-     * Gets researchingQuantityBreakdown.
+     * Gets researching_quantity_breakdown.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantityEntry[]
      */
     public function getResearchingQuantityBreakdown() : ?array
     {
-        return $this->container['researchingQuantityBreakdown'];
+        return $this->container['researching_quantity_breakdown'];
     }
 
     /**
-     * Sets researchingQuantityBreakdown.
+     * Sets researching_quantity_breakdown.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantityEntry[] $researchingQuantityBreakdown a list of quantity details for items currently being researched
+     * @param null|\AmazonPHP\SellingPartner\Model\FBAInventory\ResearchingQuantityEntry[] $researching_quantity_breakdown a list of quantity details for items currently being researched
      */
-    public function setResearchingQuantityBreakdown(?array $researchingQuantityBreakdown) : self
+    public function setResearchingQuantityBreakdown(?array $researching_quantity_breakdown) : self
     {
-        $this->container['researchingQuantityBreakdown'] = $researchingQuantityBreakdown;
+        $this->container['researching_quantity_breakdown'] = $researching_quantity_breakdown;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInventory/ReservedQuantity.php b/src/AmazonPHP/SellingPartner/Model/FBAInventory/ReservedQuantity.php
index 9c28b1018..7e5a8dea3 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInventory/ReservedQuantity.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInventory/ReservedQuantity.php
@@ -56,10 +56,10 @@ class ReservedQuantity implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'totalReservedQuantity' => 'int',
-        'pendingCustomerOrderQuantity' => 'int',
-        'pendingTransshipmentQuantity' => 'int',
-        'fcProcessingQuantity' => 'int',
+        'total_reserved_quantity' => 'int',
+        'pending_customer_order_quantity' => 'int',
+        'pending_transshipment_quantity' => 'int',
+        'fc_processing_quantity' => 'int',
     ];
 
     /**
@@ -70,10 +70,10 @@ class ReservedQuantity implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'totalReservedQuantity' => null,
-        'pendingCustomerOrderQuantity' => null,
-        'pendingTransshipmentQuantity' => null,
-        'fcProcessingQuantity' => null,
+        'total_reserved_quantity' => null,
+        'pending_customer_order_quantity' => null,
+        'pending_transshipment_quantity' => null,
+        'fc_processing_quantity' => null,
     ];
 
     /**
@@ -83,10 +83,10 @@ class ReservedQuantity implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @var string[]
      */
     protected static array $attributeMap = [
-        'totalReservedQuantity' => 'totalReservedQuantity',
-        'pendingCustomerOrderQuantity' => 'pendingCustomerOrderQuantity',
-        'pendingTransshipmentQuantity' => 'pendingTransshipmentQuantity',
-        'fcProcessingQuantity' => 'fcProcessingQuantity',
+        'total_reserved_quantity' => 'totalReservedQuantity',
+        'pending_customer_order_quantity' => 'pendingCustomerOrderQuantity',
+        'pending_transshipment_quantity' => 'pendingTransshipmentQuantity',
+        'fc_processing_quantity' => 'fcProcessingQuantity',
     ];
 
     /**
@@ -95,10 +95,10 @@ class ReservedQuantity implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @var string[]
      */
     protected static array $setters = [
-        'totalReservedQuantity' => 'setTotalReservedQuantity',
-        'pendingCustomerOrderQuantity' => 'setPendingCustomerOrderQuantity',
-        'pendingTransshipmentQuantity' => 'setPendingTransshipmentQuantity',
-        'fcProcessingQuantity' => 'setFcProcessingQuantity',
+        'total_reserved_quantity' => 'setTotalReservedQuantity',
+        'pending_customer_order_quantity' => 'setPendingCustomerOrderQuantity',
+        'pending_transshipment_quantity' => 'setPendingTransshipmentQuantity',
+        'fc_processing_quantity' => 'setFcProcessingQuantity',
     ];
 
     /**
@@ -107,10 +107,10 @@ class ReservedQuantity implements \ArrayAccess, \JsonSerializable, ModelInterfac
      * @var string[]
      */
     protected static array $getters = [
-        'totalReservedQuantity' => 'getTotalReservedQuantity',
-        'pendingCustomerOrderQuantity' => 'getPendingCustomerOrderQuantity',
-        'pendingTransshipmentQuantity' => 'getPendingTransshipmentQuantity',
-        'fcProcessingQuantity' => 'getFcProcessingQuantity',
+        'total_reserved_quantity' => 'getTotalReservedQuantity',
+        'pending_customer_order_quantity' => 'getPendingCustomerOrderQuantity',
+        'pending_transshipment_quantity' => 'getPendingTransshipmentQuantity',
+        'fc_processing_quantity' => 'getFcProcessingQuantity',
     ];
 
     /**
@@ -128,10 +128,10 @@ class ReservedQuantity implements \ArrayAccess, \JsonSerializable, ModelInterfac
      */
     public function __construct(array $data = null)
     {
-        $this->container['totalReservedQuantity'] = $data['totalReservedQuantity'] ?? null;
-        $this->container['pendingCustomerOrderQuantity'] = $data['pendingCustomerOrderQuantity'] ?? null;
-        $this->container['pendingTransshipmentQuantity'] = $data['pendingTransshipmentQuantity'] ?? null;
-        $this->container['fcProcessingQuantity'] = $data['fcProcessingQuantity'] ?? null;
+        $this->container['total_reserved_quantity'] = $data['total_reserved_quantity'] ?? null;
+        $this->container['pending_customer_order_quantity'] = $data['pending_customer_order_quantity'] ?? null;
+        $this->container['pending_transshipment_quantity'] = $data['pending_transshipment_quantity'] ?? null;
+        $this->container['fc_processing_quantity'] = $data['fc_processing_quantity'] ?? null;
     }
 
     /**
@@ -226,81 +226,81 @@ public function valid() : bool
     }
 
     /**
-     * Gets totalReservedQuantity.
+     * Gets total_reserved_quantity.
      */
     public function getTotalReservedQuantity() : ?int
     {
-        return $this->container['totalReservedQuantity'];
+        return $this->container['total_reserved_quantity'];
     }
 
     /**
-     * Sets totalReservedQuantity.
+     * Sets total_reserved_quantity.
      *
-     * @param null|int $totalReservedQuantity the total number of units in Amazon's fulfillment network that are currently being picked, packed, and shipped; or are sidelined for measurement, sampling, or other internal processes
+     * @param null|int $total_reserved_quantity the total number of units in Amazon's fulfillment network that are currently being picked, packed, and shipped; or are sidelined for measurement, sampling, or other internal processes
      */
-    public function setTotalReservedQuantity(?int $totalReservedQuantity) : self
+    public function setTotalReservedQuantity(?int $total_reserved_quantity) : self
     {
-        $this->container['totalReservedQuantity'] = $totalReservedQuantity;
+        $this->container['total_reserved_quantity'] = $total_reserved_quantity;
 
         return $this;
     }
 
     /**
-     * Gets pendingCustomerOrderQuantity.
+     * Gets pending_customer_order_quantity.
      */
     public function getPendingCustomerOrderQuantity() : ?int
     {
-        return $this->container['pendingCustomerOrderQuantity'];
+        return $this->container['pending_customer_order_quantity'];
     }
 
     /**
-     * Sets pendingCustomerOrderQuantity.
+     * Sets pending_customer_order_quantity.
      *
-     * @param null|int $pendingCustomerOrderQuantity the number of units reserved for customer orders
+     * @param null|int $pending_customer_order_quantity the number of units reserved for customer orders
      */
-    public function setPendingCustomerOrderQuantity(?int $pendingCustomerOrderQuantity) : self
+    public function setPendingCustomerOrderQuantity(?int $pending_customer_order_quantity) : self
     {
-        $this->container['pendingCustomerOrderQuantity'] = $pendingCustomerOrderQuantity;
+        $this->container['pending_customer_order_quantity'] = $pending_customer_order_quantity;
 
         return $this;
     }
 
     /**
-     * Gets pendingTransshipmentQuantity.
+     * Gets pending_transshipment_quantity.
      */
     public function getPendingTransshipmentQuantity() : ?int
     {
-        return $this->container['pendingTransshipmentQuantity'];
+        return $this->container['pending_transshipment_quantity'];
     }
 
     /**
-     * Sets pendingTransshipmentQuantity.
+     * Sets pending_transshipment_quantity.
      *
-     * @param null|int $pendingTransshipmentQuantity the number of units being transferred from one fulfillment center to another
+     * @param null|int $pending_transshipment_quantity the number of units being transferred from one fulfillment center to another
      */
-    public function setPendingTransshipmentQuantity(?int $pendingTransshipmentQuantity) : self
+    public function setPendingTransshipmentQuantity(?int $pending_transshipment_quantity) : self
     {
-        $this->container['pendingTransshipmentQuantity'] = $pendingTransshipmentQuantity;
+        $this->container['pending_transshipment_quantity'] = $pending_transshipment_quantity;
 
         return $this;
     }
 
     /**
-     * Gets fcProcessingQuantity.
+     * Gets fc_processing_quantity.
      */
     public function getFcProcessingQuantity() : ?int
     {
-        return $this->container['fcProcessingQuantity'];
+        return $this->container['fc_processing_quantity'];
     }
 
     /**
-     * Sets fcProcessingQuantity.
+     * Sets fc_processing_quantity.
      *
-     * @param null|int $fcProcessingQuantity the number of units that have been sidelined at the fulfillment center for additional processing
+     * @param null|int $fc_processing_quantity the number of units that have been sidelined at the fulfillment center for additional processing
      */
-    public function setFcProcessingQuantity(?int $fcProcessingQuantity) : self
+    public function setFcProcessingQuantity(?int $fc_processing_quantity) : self
     {
-        $this->container['fcProcessingQuantity'] = $fcProcessingQuantity;
+        $this->container['fc_processing_quantity'] = $fc_processing_quantity;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/FBAInventory/UnfulfillableQuantity.php b/src/AmazonPHP/SellingPartner/Model/FBAInventory/UnfulfillableQuantity.php
index 9d7bbfe53..040233705 100644
--- a/src/AmazonPHP/SellingPartner/Model/FBAInventory/UnfulfillableQuantity.php
+++ b/src/AmazonPHP/SellingPartner/Model/FBAInventory/UnfulfillableQuantity.php
@@ -56,13 +56,13 @@ class UnfulfillableQuantity implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'totalUnfulfillableQuantity' => 'int',
-        'customerDamagedQuantity' => 'int',
-        'warehouseDamagedQuantity' => 'int',
-        'distributorDamagedQuantity' => 'int',
-        'carrierDamagedQuantity' => 'int',
-        'defectiveQuantity' => 'int',
-        'expiredQuantity' => 'int',
+        'total_unfulfillable_quantity' => 'int',
+        'customer_damaged_quantity' => 'int',
+        'warehouse_damaged_quantity' => 'int',
+        'distributor_damaged_quantity' => 'int',
+        'carrier_damaged_quantity' => 'int',
+        'defective_quantity' => 'int',
+        'expired_quantity' => 'int',
     ];
 
     /**
@@ -73,13 +73,13 @@ class UnfulfillableQuantity implements \ArrayAccess, \JsonSerializable, ModelInt
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'totalUnfulfillableQuantity' => null,
-        'customerDamagedQuantity' => null,
-        'warehouseDamagedQuantity' => null,
-        'distributorDamagedQuantity' => null,
-        'carrierDamagedQuantity' => null,
-        'defectiveQuantity' => null,
-        'expiredQuantity' => null,
+        'total_unfulfillable_quantity' => null,
+        'customer_damaged_quantity' => null,
+        'warehouse_damaged_quantity' => null,
+        'distributor_damaged_quantity' => null,
+        'carrier_damaged_quantity' => null,
+        'defective_quantity' => null,
+        'expired_quantity' => null,
     ];
 
     /**
@@ -89,13 +89,13 @@ class UnfulfillableQuantity implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $attributeMap = [
-        'totalUnfulfillableQuantity' => 'totalUnfulfillableQuantity',
-        'customerDamagedQuantity' => 'customerDamagedQuantity',
-        'warehouseDamagedQuantity' => 'warehouseDamagedQuantity',
-        'distributorDamagedQuantity' => 'distributorDamagedQuantity',
-        'carrierDamagedQuantity' => 'carrierDamagedQuantity',
-        'defectiveQuantity' => 'defectiveQuantity',
-        'expiredQuantity' => 'expiredQuantity',
+        'total_unfulfillable_quantity' => 'totalUnfulfillableQuantity',
+        'customer_damaged_quantity' => 'customerDamagedQuantity',
+        'warehouse_damaged_quantity' => 'warehouseDamagedQuantity',
+        'distributor_damaged_quantity' => 'distributorDamagedQuantity',
+        'carrier_damaged_quantity' => 'carrierDamagedQuantity',
+        'defective_quantity' => 'defectiveQuantity',
+        'expired_quantity' => 'expiredQuantity',
     ];
 
     /**
@@ -104,13 +104,13 @@ class UnfulfillableQuantity implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $setters = [
-        'totalUnfulfillableQuantity' => 'setTotalUnfulfillableQuantity',
-        'customerDamagedQuantity' => 'setCustomerDamagedQuantity',
-        'warehouseDamagedQuantity' => 'setWarehouseDamagedQuantity',
-        'distributorDamagedQuantity' => 'setDistributorDamagedQuantity',
-        'carrierDamagedQuantity' => 'setCarrierDamagedQuantity',
-        'defectiveQuantity' => 'setDefectiveQuantity',
-        'expiredQuantity' => 'setExpiredQuantity',
+        'total_unfulfillable_quantity' => 'setTotalUnfulfillableQuantity',
+        'customer_damaged_quantity' => 'setCustomerDamagedQuantity',
+        'warehouse_damaged_quantity' => 'setWarehouseDamagedQuantity',
+        'distributor_damaged_quantity' => 'setDistributorDamagedQuantity',
+        'carrier_damaged_quantity' => 'setCarrierDamagedQuantity',
+        'defective_quantity' => 'setDefectiveQuantity',
+        'expired_quantity' => 'setExpiredQuantity',
     ];
 
     /**
@@ -119,13 +119,13 @@ class UnfulfillableQuantity implements \ArrayAccess, \JsonSerializable, ModelInt
      * @var string[]
      */
     protected static array $getters = [
-        'totalUnfulfillableQuantity' => 'getTotalUnfulfillableQuantity',
-        'customerDamagedQuantity' => 'getCustomerDamagedQuantity',
-        'warehouseDamagedQuantity' => 'getWarehouseDamagedQuantity',
-        'distributorDamagedQuantity' => 'getDistributorDamagedQuantity',
-        'carrierDamagedQuantity' => 'getCarrierDamagedQuantity',
-        'defectiveQuantity' => 'getDefectiveQuantity',
-        'expiredQuantity' => 'getExpiredQuantity',
+        'total_unfulfillable_quantity' => 'getTotalUnfulfillableQuantity',
+        'customer_damaged_quantity' => 'getCustomerDamagedQuantity',
+        'warehouse_damaged_quantity' => 'getWarehouseDamagedQuantity',
+        'distributor_damaged_quantity' => 'getDistributorDamagedQuantity',
+        'carrier_damaged_quantity' => 'getCarrierDamagedQuantity',
+        'defective_quantity' => 'getDefectiveQuantity',
+        'expired_quantity' => 'getExpiredQuantity',
     ];
 
     /**
@@ -143,13 +143,13 @@ class UnfulfillableQuantity implements \ArrayAccess, \JsonSerializable, ModelInt
      */
     public function __construct(array $data = null)
     {
-        $this->container['totalUnfulfillableQuantity'] = $data['totalUnfulfillableQuantity'] ?? null;
-        $this->container['customerDamagedQuantity'] = $data['customerDamagedQuantity'] ?? null;
-        $this->container['warehouseDamagedQuantity'] = $data['warehouseDamagedQuantity'] ?? null;
-        $this->container['distributorDamagedQuantity'] = $data['distributorDamagedQuantity'] ?? null;
-        $this->container['carrierDamagedQuantity'] = $data['carrierDamagedQuantity'] ?? null;
-        $this->container['defectiveQuantity'] = $data['defectiveQuantity'] ?? null;
-        $this->container['expiredQuantity'] = $data['expiredQuantity'] ?? null;
+        $this->container['total_unfulfillable_quantity'] = $data['total_unfulfillable_quantity'] ?? null;
+        $this->container['customer_damaged_quantity'] = $data['customer_damaged_quantity'] ?? null;
+        $this->container['warehouse_damaged_quantity'] = $data['warehouse_damaged_quantity'] ?? null;
+        $this->container['distributor_damaged_quantity'] = $data['distributor_damaged_quantity'] ?? null;
+        $this->container['carrier_damaged_quantity'] = $data['carrier_damaged_quantity'] ?? null;
+        $this->container['defective_quantity'] = $data['defective_quantity'] ?? null;
+        $this->container['expired_quantity'] = $data['expired_quantity'] ?? null;
     }
 
     /**
@@ -244,141 +244,141 @@ public function valid() : bool
     }
 
     /**
-     * Gets totalUnfulfillableQuantity.
+     * Gets total_unfulfillable_quantity.
      */
     public function getTotalUnfulfillableQuantity() : ?int
     {
-        return $this->container['totalUnfulfillableQuantity'];
+        return $this->container['total_unfulfillable_quantity'];
     }
 
     /**
-     * Sets totalUnfulfillableQuantity.
+     * Sets total_unfulfillable_quantity.
      *
-     * @param null|int $totalUnfulfillableQuantity the total number of units in Amazon's fulfillment network in unsellable condition
+     * @param null|int $total_unfulfillable_quantity the total number of units in Amazon's fulfillment network in unsellable condition
      */
-    public function setTotalUnfulfillableQuantity(?int $totalUnfulfillableQuantity) : self
+    public function setTotalUnfulfillableQuantity(?int $total_unfulfillable_quantity) : self
     {
-        $this->container['totalUnfulfillableQuantity'] = $totalUnfulfillableQuantity;
+        $this->container['total_unfulfillable_quantity'] = $total_unfulfillable_quantity;
 
         return $this;
     }
 
     /**
-     * Gets customerDamagedQuantity.
+     * Gets customer_damaged_quantity.
      */
     public function getCustomerDamagedQuantity() : ?int
     {
-        return $this->container['customerDamagedQuantity'];
+        return $this->container['customer_damaged_quantity'];
     }
 
     /**
-     * Sets customerDamagedQuantity.
+     * Sets customer_damaged_quantity.
      *
-     * @param null|int $customerDamagedQuantity the number of units in customer damaged disposition
+     * @param null|int $customer_damaged_quantity the number of units in customer damaged disposition
      */
-    public function setCustomerDamagedQuantity(?int $customerDamagedQuantity) : self
+    public function setCustomerDamagedQuantity(?int $customer_damaged_quantity) : self
     {
-        $this->container['customerDamagedQuantity'] = $customerDamagedQuantity;
+        $this->container['customer_damaged_quantity'] = $customer_damaged_quantity;
 
         return $this;
     }
 
     /**
-     * Gets warehouseDamagedQuantity.
+     * Gets warehouse_damaged_quantity.
      */
     public function getWarehouseDamagedQuantity() : ?int
     {
-        return $this->container['warehouseDamagedQuantity'];
+        return $this->container['warehouse_damaged_quantity'];
     }
 
     /**
-     * Sets warehouseDamagedQuantity.
+     * Sets warehouse_damaged_quantity.
      *
-     * @param null|int $warehouseDamagedQuantity the number of units in warehouse damaged disposition
+     * @param null|int $warehouse_damaged_quantity the number of units in warehouse damaged disposition
      */
-    public function setWarehouseDamagedQuantity(?int $warehouseDamagedQuantity) : self
+    public function setWarehouseDamagedQuantity(?int $warehouse_damaged_quantity) : self
     {
-        $this->container['warehouseDamagedQuantity'] = $warehouseDamagedQuantity;
+        $this->container['warehouse_damaged_quantity'] = $warehouse_damaged_quantity;
 
         return $this;
     }
 
     /**
-     * Gets distributorDamagedQuantity.
+     * Gets distributor_damaged_quantity.
      */
     public function getDistributorDamagedQuantity() : ?int
     {
-        return $this->container['distributorDamagedQuantity'];
+        return $this->container['distributor_damaged_quantity'];
     }
 
     /**
-     * Sets distributorDamagedQuantity.
+     * Sets distributor_damaged_quantity.
      *
-     * @param null|int $distributorDamagedQuantity the number of units in distributor damaged disposition
+     * @param null|int $distributor_damaged_quantity the number of units in distributor damaged disposition
      */
-    public function setDistributorDamagedQuantity(?int $distributorDamagedQuantity) : self
+    public function setDistributorDamagedQuantity(?int $distributor_damaged_quantity) : self
     {
-        $this->container['distributorDamagedQuantity'] = $distributorDamagedQuantity;
+        $this->container['distributor_damaged_quantity'] = $distributor_damaged_quantity;
 
         return $this;
     }
 
     /**
-     * Gets carrierDamagedQuantity.
+     * Gets carrier_damaged_quantity.
      */
     public function getCarrierDamagedQuantity() : ?int
     {
-        return $this->container['carrierDamagedQuantity'];
+        return $this->container['carrier_damaged_quantity'];
     }
 
     /**
-     * Sets carrierDamagedQuantity.
+     * Sets carrier_damaged_quantity.
      *
-     * @param null|int $carrierDamagedQuantity the number of units in carrier damaged disposition
+     * @param null|int $carrier_damaged_quantity the number of units in carrier damaged disposition
      */
-    public function setCarrierDamagedQuantity(?int $carrierDamagedQuantity) : self
+    public function setCarrierDamagedQuantity(?int $carrier_damaged_quantity) : self
     {
-        $this->container['carrierDamagedQuantity'] = $carrierDamagedQuantity;
+        $this->container['carrier_damaged_quantity'] = $carrier_damaged_quantity;
 
         return $this;
     }
 
     /**
-     * Gets defectiveQuantity.
+     * Gets defective_quantity.
      */
     public function getDefectiveQuantity() : ?int
     {
-        return $this->container['defectiveQuantity'];
+        return $this->container['defective_quantity'];
     }
 
     /**
-     * Sets defectiveQuantity.
+     * Sets defective_quantity.
      *
-     * @param null|int $defectiveQuantity the number of units in defective disposition
+     * @param null|int $defective_quantity the number of units in defective disposition
      */
-    public function setDefectiveQuantity(?int $defectiveQuantity) : self
+    public function setDefectiveQuantity(?int $defective_quantity) : self
     {
-        $this->container['defectiveQuantity'] = $defectiveQuantity;
+        $this->container['defective_quantity'] = $defective_quantity;
 
         return $this;
     }
 
     /**
-     * Gets expiredQuantity.
+     * Gets expired_quantity.
      */
     public function getExpiredQuantity() : ?int
     {
-        return $this->container['expiredQuantity'];
+        return $this->container['expired_quantity'];
     }
 
     /**
-     * Sets expiredQuantity.
+     * Sets expired_quantity.
      *
-     * @param null|int $expiredQuantity the number of units in expired disposition
+     * @param null|int $expired_quantity the number of units in expired disposition
      */
-    public function setExpiredQuantity(?int $expiredQuantity) : self
+    public function setExpiredQuantity(?int $expired_quantity) : self
     {
-        $this->container['expiredQuantity'] = $expiredQuantity;
+        $this->container['expired_quantity'] = $expired_quantity;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/Address.php b/src/AmazonPHP/SellingPartner/Model/Orders/Address.php
index a751348f2..34819c952 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/Address.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/Address.php
@@ -61,18 +61,18 @@ class Address implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'name' => 'string',
-        'addressLine1' => 'string',
-        'addressLine2' => 'string',
-        'addressLine3' => 'string',
+        'address_line1' => 'string',
+        'address_line2' => 'string',
+        'address_line3' => 'string',
         'city' => 'string',
         'county' => 'string',
         'district' => 'string',
-        'stateOrRegion' => 'string',
+        'state_or_region' => 'string',
         'municipality' => 'string',
-        'postalCode' => 'string',
-        'countryCode' => 'string',
+        'postal_code' => 'string',
+        'country_code' => 'string',
         'phone' => 'string',
-        'addressType' => 'string',
+        'address_type' => 'string',
     ];
 
     /**
@@ -84,18 +84,18 @@ class Address implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'name' => null,
-        'addressLine1' => null,
-        'addressLine2' => null,
-        'addressLine3' => null,
+        'address_line1' => null,
+        'address_line2' => null,
+        'address_line3' => null,
         'city' => null,
         'county' => null,
         'district' => null,
-        'stateOrRegion' => null,
+        'state_or_region' => null,
         'municipality' => null,
-        'postalCode' => null,
-        'countryCode' => null,
+        'postal_code' => null,
+        'country_code' => null,
         'phone' => null,
-        'addressType' => null,
+        'address_type' => null,
     ];
 
     /**
@@ -106,18 +106,18 @@ class Address implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'name' => 'Name',
-        'addressLine1' => 'AddressLine1',
-        'addressLine2' => 'AddressLine2',
-        'addressLine3' => 'AddressLine3',
+        'address_line1' => 'AddressLine1',
+        'address_line2' => 'AddressLine2',
+        'address_line3' => 'AddressLine3',
         'city' => 'City',
         'county' => 'County',
         'district' => 'District',
-        'stateOrRegion' => 'StateOrRegion',
+        'state_or_region' => 'StateOrRegion',
         'municipality' => 'Municipality',
-        'postalCode' => 'PostalCode',
-        'countryCode' => 'CountryCode',
+        'postal_code' => 'PostalCode',
+        'country_code' => 'CountryCode',
         'phone' => 'Phone',
-        'addressType' => 'AddressType',
+        'address_type' => 'AddressType',
     ];
 
     /**
@@ -127,18 +127,18 @@ class Address implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'name' => 'setName',
-        'addressLine1' => 'setAddressLine1',
-        'addressLine2' => 'setAddressLine2',
-        'addressLine3' => 'setAddressLine3',
+        'address_line1' => 'setAddressLine1',
+        'address_line2' => 'setAddressLine2',
+        'address_line3' => 'setAddressLine3',
         'city' => 'setCity',
         'county' => 'setCounty',
         'district' => 'setDistrict',
-        'stateOrRegion' => 'setStateOrRegion',
+        'state_or_region' => 'setStateOrRegion',
         'municipality' => 'setMunicipality',
-        'postalCode' => 'setPostalCode',
-        'countryCode' => 'setCountryCode',
+        'postal_code' => 'setPostalCode',
+        'country_code' => 'setCountryCode',
         'phone' => 'setPhone',
-        'addressType' => 'setAddressType',
+        'address_type' => 'setAddressType',
     ];
 
     /**
@@ -148,18 +148,18 @@ class Address implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'name' => 'getName',
-        'addressLine1' => 'getAddressLine1',
-        'addressLine2' => 'getAddressLine2',
-        'addressLine3' => 'getAddressLine3',
+        'address_line1' => 'getAddressLine1',
+        'address_line2' => 'getAddressLine2',
+        'address_line3' => 'getAddressLine3',
         'city' => 'getCity',
         'county' => 'getCounty',
         'district' => 'getDistrict',
-        'stateOrRegion' => 'getStateOrRegion',
+        'state_or_region' => 'getStateOrRegion',
         'municipality' => 'getMunicipality',
-        'postalCode' => 'getPostalCode',
-        'countryCode' => 'getCountryCode',
+        'postal_code' => 'getPostalCode',
+        'country_code' => 'getCountryCode',
         'phone' => 'getPhone',
-        'addressType' => 'getAddressType',
+        'address_type' => 'getAddressType',
     ];
 
     /**
@@ -178,18 +178,18 @@ class Address implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['name'] = $data['name'] ?? null;
-        $this->container['addressLine1'] = $data['addressLine1'] ?? null;
-        $this->container['addressLine2'] = $data['addressLine2'] ?? null;
-        $this->container['addressLine3'] = $data['addressLine3'] ?? null;
+        $this->container['address_line1'] = $data['address_line1'] ?? null;
+        $this->container['address_line2'] = $data['address_line2'] ?? null;
+        $this->container['address_line3'] = $data['address_line3'] ?? null;
         $this->container['city'] = $data['city'] ?? null;
         $this->container['county'] = $data['county'] ?? null;
         $this->container['district'] = $data['district'] ?? null;
-        $this->container['stateOrRegion'] = $data['stateOrRegion'] ?? null;
+        $this->container['state_or_region'] = $data['state_or_region'] ?? null;
         $this->container['municipality'] = $data['municipality'] ?? null;
-        $this->container['postalCode'] = $data['postalCode'] ?? null;
-        $this->container['countryCode'] = $data['countryCode'] ?? null;
+        $this->container['postal_code'] = $data['postal_code'] ?? null;
+        $this->container['country_code'] = $data['country_code'] ?? null;
         $this->container['phone'] = $data['phone'] ?? null;
-        $this->container['addressType'] = $data['addressType'] ?? null;
+        $this->container['address_type'] = $data['address_type'] ?? null;
     }
 
     /**
@@ -289,10 +289,10 @@ public function listInvalidProperties() : array
         }
         $allowedValues = $this->getAddressTypeAllowableValues();
 
-        if (null !== $this->container['addressType'] && !\in_array($this->container['addressType'], $allowedValues, true)) {
+        if (null !== $this->container['address_type'] && !\in_array($this->container['address_type'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'addressType', must be one of '%s'",
-                $this->container['addressType'],
+                "invalid value '%s' for 'address_type', must be one of '%s'",
+                $this->container['address_type'],
                 \implode("', '", $allowedValues)
             );
         }
@@ -332,61 +332,61 @@ public function setName(string $name) : self
     }
 
     /**
-     * Gets addressLine1.
+     * Gets address_line1.
      */
     public function getAddressLine1() : ?string
     {
-        return $this->container['addressLine1'];
+        return $this->container['address_line1'];
     }
 
     /**
-     * Sets addressLine1.
+     * Sets address_line1.
      *
-     * @param null|string $addressLine1 the street address
+     * @param null|string $address_line1 the street address
      */
-    public function setAddressLine1(?string $addressLine1) : self
+    public function setAddressLine1(?string $address_line1) : self
     {
-        $this->container['addressLine1'] = $addressLine1;
+        $this->container['address_line1'] = $address_line1;
 
         return $this;
     }
 
     /**
-     * Gets addressLine2.
+     * Gets address_line2.
      */
     public function getAddressLine2() : ?string
     {
-        return $this->container['addressLine2'];
+        return $this->container['address_line2'];
     }
 
     /**
-     * Sets addressLine2.
+     * Sets address_line2.
      *
-     * @param null|string $addressLine2 additional street address information, if required
+     * @param null|string $address_line2 additional street address information, if required
      */
-    public function setAddressLine2(?string $addressLine2) : self
+    public function setAddressLine2(?string $address_line2) : self
     {
-        $this->container['addressLine2'] = $addressLine2;
+        $this->container['address_line2'] = $address_line2;
 
         return $this;
     }
 
     /**
-     * Gets addressLine3.
+     * Gets address_line3.
      */
     public function getAddressLine3() : ?string
     {
-        return $this->container['addressLine3'];
+        return $this->container['address_line3'];
     }
 
     /**
-     * Sets addressLine3.
+     * Sets address_line3.
      *
-     * @param null|string $addressLine3 additional street address information, if required
+     * @param null|string $address_line3 additional street address information, if required
      */
-    public function setAddressLine3(?string $addressLine3) : self
+    public function setAddressLine3(?string $address_line3) : self
     {
-        $this->container['addressLine3'] = $addressLine3;
+        $this->container['address_line3'] = $address_line3;
 
         return $this;
     }
@@ -452,21 +452,21 @@ public function setDistrict(?string $district) : self
     }
 
     /**
-     * Gets stateOrRegion.
+     * Gets state_or_region.
      */
     public function getStateOrRegion() : ?string
     {
-        return $this->container['stateOrRegion'];
+        return $this->container['state_or_region'];
     }
 
     /**
-     * Sets stateOrRegion.
+     * Sets state_or_region.
      *
-     * @param null|string $stateOrRegion the state or region
+     * @param null|string $state_or_region the state or region
      */
-    public function setStateOrRegion(?string $stateOrRegion) : self
+    public function setStateOrRegion(?string $state_or_region) : self
     {
-        $this->container['stateOrRegion'] = $stateOrRegion;
+        $this->container['state_or_region'] = $state_or_region;
 
         return $this;
     }
@@ -492,41 +492,41 @@ public function setMunicipality(?string $municipality) : self
     }
 
     /**
-     * Gets postalCode.
+     * Gets postal_code.
      */
     public function getPostalCode() : ?string
     {
-        return $this->container['postalCode'];
+        return $this->container['postal_code'];
     }
 
     /**
-     * Sets postalCode.
+     * Sets postal_code.
      *
-     * @param null|string $postalCode the postal code
+     * @param null|string $postal_code the postal code
      */
-    public function setPostalCode(?string $postalCode) : self
+    public function setPostalCode(?string $postal_code) : self
     {
-        $this->container['postalCode'] = $postalCode;
+        $this->container['postal_code'] = $postal_code;
 
         return $this;
     }
 
     /**
-     * Gets countryCode.
+     * Gets country_code.
      */
     public function getCountryCode() : ?string
     {
-        return $this->container['countryCode'];
+        return $this->container['country_code'];
     }
 
     /**
-     * Sets countryCode.
+     * Sets country_code.
      *
-     * @param null|string $countryCode The country code. A two-character country code, in ISO 3166-1 alpha-2 format.
+     * @param null|string $country_code The country code. A two-character country code, in ISO 3166-1 alpha-2 format.
      */
-    public function setCountryCode(?string $countryCode) : self
+    public function setCountryCode(?string $country_code) : self
     {
-        $this->container['countryCode'] = $countryCode;
+        $this->container['country_code'] = $country_code;
 
         return $this;
     }
@@ -552,32 +552,32 @@ public function setPhone(?string $phone) : self
     }
 
     /**
-     * Gets addressType.
+     * Gets address_type.
      */
     public function getAddressType() : ?string
     {
-        return $this->container['addressType'];
+        return $this->container['address_type'];
     }
 
     /**
-     * Sets addressType.
+     * Sets address_type.
      *
-     * @param null|string $addressType the address type of the shipping address
+     * @param null|string $address_type the address type of the shipping address
      */
-    public function setAddressType(?string $addressType) : self
+    public function setAddressType(?string $address_type) : self
     {
         $allowedValues = $this->getAddressTypeAllowableValues();
 
-        if (null !== $addressType && !\in_array($addressType, $allowedValues, true)) {
+        if (null !== $address_type && !\in_array($address_type, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'addressType', must be one of '%s'",
-                    $addressType,
+                    "Invalid value '%s' for 'address_type', must be one of '%s'",
+                    $address_type,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['addressType'] = $addressType;
+        $this->container['address_type'] = $address_type;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/BuyerCustomizedInfoDetail.php b/src/AmazonPHP/SellingPartner/Model/Orders/BuyerCustomizedInfoDetail.php
index 09fbe3d02..05a7b67b5 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/BuyerCustomizedInfoDetail.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/BuyerCustomizedInfoDetail.php
@@ -56,7 +56,7 @@ class BuyerCustomizedInfoDetail implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'customizedURL' => 'string',
+        'customized_url' => 'string',
     ];
 
     /**
@@ -67,7 +67,7 @@ class BuyerCustomizedInfoDetail implements \ArrayAccess, \JsonSerializable, Mode
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'customizedURL' => null,
+        'customized_url' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class BuyerCustomizedInfoDetail implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $attributeMap = [
-        'customizedURL' => 'CustomizedURL',
+        'customized_url' => 'CustomizedURL',
     ];
 
     /**
@@ -86,7 +86,7 @@ class BuyerCustomizedInfoDetail implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $setters = [
-        'customizedURL' => 'setCustomizedURL',
+        'customized_url' => 'setCustomizedUrl',
     ];
 
     /**
@@ -95,7 +95,7 @@ class BuyerCustomizedInfoDetail implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $getters = [
-        'customizedURL' => 'getCustomizedURL',
+        'customized_url' => 'getCustomizedUrl',
     ];
 
     /**
@@ -113,7 +113,7 @@ class BuyerCustomizedInfoDetail implements \ArrayAccess, \JsonSerializable, Mode
      */
     public function __construct(array $data = null)
     {
-        $this->container['customizedURL'] = $data['customizedURL'] ?? null;
+        $this->container['customized_url'] = $data['customized_url'] ?? null;
     }
 
     /**
@@ -208,21 +208,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets customizedURL.
+     * Gets customized_url.
      */
-    public function getCustomizedURL() : ?string
+    public function getCustomizedUrl() : ?string
     {
-        return $this->container['customizedURL'];
+        return $this->container['customized_url'];
     }
 
     /**
-     * Sets customizedURL.
+     * Sets customized_url.
      *
-     * @param null|string $customizedURL the location of a zip file containing Amazon Custom data
+     * @param null|string $customized_url the location of a zip file containing Amazon Custom data
      */
-    public function setCustomizedURL(?string $customizedURL) : self
+    public function setCustomizedUrl(?string $customized_url) : self
     {
-        $this->container['customizedURL'] = $customizedURL;
+        $this->container['customized_url'] = $customized_url;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/BuyerTaxInfo.php b/src/AmazonPHP/SellingPartner/Model/Orders/BuyerTaxInfo.php
index 3063c00b8..3b685ca35 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/BuyerTaxInfo.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/BuyerTaxInfo.php
@@ -56,9 +56,9 @@ class BuyerTaxInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'companyLegalName' => 'string',
-        'taxingRegion' => 'string',
-        'taxClassifications' => '\AmazonPHP\SellingPartner\Model\Orders\TaxClassification[]',
+        'company_legal_name' => 'string',
+        'taxing_region' => 'string',
+        'tax_classifications' => '\AmazonPHP\SellingPartner\Model\Orders\TaxClassification[]',
     ];
 
     /**
@@ -69,9 +69,9 @@ class BuyerTaxInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'companyLegalName' => null,
-        'taxingRegion' => null,
-        'taxClassifications' => null,
+        'company_legal_name' => null,
+        'taxing_region' => null,
+        'tax_classifications' => null,
     ];
 
     /**
@@ -81,9 +81,9 @@ class BuyerTaxInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'companyLegalName' => 'CompanyLegalName',
-        'taxingRegion' => 'TaxingRegion',
-        'taxClassifications' => 'TaxClassifications',
+        'company_legal_name' => 'CompanyLegalName',
+        'taxing_region' => 'TaxingRegion',
+        'tax_classifications' => 'TaxClassifications',
     ];
 
     /**
@@ -92,9 +92,9 @@ class BuyerTaxInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'companyLegalName' => 'setCompanyLegalName',
-        'taxingRegion' => 'setTaxingRegion',
-        'taxClassifications' => 'setTaxClassifications',
+        'company_legal_name' => 'setCompanyLegalName',
+        'taxing_region' => 'setTaxingRegion',
+        'tax_classifications' => 'setTaxClassifications',
     ];
 
     /**
@@ -103,9 +103,9 @@ class BuyerTaxInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'companyLegalName' => 'getCompanyLegalName',
-        'taxingRegion' => 'getTaxingRegion',
-        'taxClassifications' => 'getTaxClassifications',
+        'company_legal_name' => 'getCompanyLegalName',
+        'taxing_region' => 'getTaxingRegion',
+        'tax_classifications' => 'getTaxClassifications',
     ];
 
     /**
@@ -123,9 +123,9 @@ class BuyerTaxInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['companyLegalName'] = $data['companyLegalName'] ?? null;
-        $this->container['taxingRegion'] = $data['taxingRegion'] ?? null;
-        $this->container['taxClassifications'] = $data['taxClassifications'] ?? null;
+        $this->container['company_legal_name'] = $data['company_legal_name'] ?? null;
+        $this->container['taxing_region'] = $data['taxing_region'] ?? null;
+        $this->container['tax_classifications'] = $data['tax_classifications'] ?? null;
     }
 
     /**
@@ -220,63 +220,63 @@ public function valid() : bool
     }
 
     /**
-     * Gets companyLegalName.
+     * Gets company_legal_name.
      */
     public function getCompanyLegalName() : ?string
     {
-        return $this->container['companyLegalName'];
+        return $this->container['company_legal_name'];
     }
 
     /**
-     * Sets companyLegalName.
+     * Sets company_legal_name.
      *
-     * @param null|string $companyLegalName the legal name of the company
+     * @param null|string $company_legal_name the legal name of the company
      */
-    public function setCompanyLegalName(?string $companyLegalName) : self
+    public function setCompanyLegalName(?string $company_legal_name) : self
     {
-        $this->container['companyLegalName'] = $companyLegalName;
+        $this->container['company_legal_name'] = $company_legal_name;
 
         return $this;
     }
 
     /**
-     * Gets taxingRegion.
+     * Gets taxing_region.
      */
     public function getTaxingRegion() : ?string
     {
-        return $this->container['taxingRegion'];
+        return $this->container['taxing_region'];
     }
 
     /**
-     * Sets taxingRegion.
+     * Sets taxing_region.
      *
-     * @param null|string $taxingRegion the country or region imposing the tax
+     * @param null|string $taxing_region the country or region imposing the tax
      */
-    public function setTaxingRegion(?string $taxingRegion) : self
+    public function setTaxingRegion(?string $taxing_region) : self
     {
-        $this->container['taxingRegion'] = $taxingRegion;
+        $this->container['taxing_region'] = $taxing_region;
 
         return $this;
     }
 
     /**
-     * Gets taxClassifications.
+     * Gets tax_classifications.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\Orders\TaxClassification[]
      */
     public function getTaxClassifications() : ?array
     {
-        return $this->container['taxClassifications'];
+        return $this->container['tax_classifications'];
     }
 
     /**
-     * Sets taxClassifications.
+     * Sets tax_classifications.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\TaxClassification[] $taxClassifications a list of tax classifications that apply to the order
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\TaxClassification[] $tax_classifications a list of tax classifications that apply to the order
      */
-    public function setTaxClassifications(?array $taxClassifications) : self
+    public function setTaxClassifications(?array $tax_classifications) : self
     {
-        $this->container['taxClassifications'] = $taxClassifications;
+        $this->container['tax_classifications'] = $tax_classifications;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/FulfillmentInstruction.php b/src/AmazonPHP/SellingPartner/Model/Orders/FulfillmentInstruction.php
index 7380c96f1..61922ecbe 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/FulfillmentInstruction.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/FulfillmentInstruction.php
@@ -56,7 +56,7 @@ class FulfillmentInstruction implements \ArrayAccess, \JsonSerializable, ModelIn
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'fulfillmentSupplySourceId' => 'string',
+        'fulfillment_supply_source_id' => 'string',
     ];
 
     /**
@@ -67,7 +67,7 @@ class FulfillmentInstruction implements \ArrayAccess, \JsonSerializable, ModelIn
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'fulfillmentSupplySourceId' => null,
+        'fulfillment_supply_source_id' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class FulfillmentInstruction implements \ArrayAccess, \JsonSerializable, ModelIn
      * @var string[]
      */
     protected static array $attributeMap = [
-        'fulfillmentSupplySourceId' => 'FulfillmentSupplySourceId',
+        'fulfillment_supply_source_id' => 'FulfillmentSupplySourceId',
     ];
 
     /**
@@ -86,7 +86,7 @@ class FulfillmentInstruction implements \ArrayAccess, \JsonSerializable, ModelIn
      * @var string[]
      */
     protected static array $setters = [
-        'fulfillmentSupplySourceId' => 'setFulfillmentSupplySourceId',
+        'fulfillment_supply_source_id' => 'setFulfillmentSupplySourceId',
     ];
 
     /**
@@ -95,7 +95,7 @@ class FulfillmentInstruction implements \ArrayAccess, \JsonSerializable, ModelIn
      * @var string[]
      */
     protected static array $getters = [
-        'fulfillmentSupplySourceId' => 'getFulfillmentSupplySourceId',
+        'fulfillment_supply_source_id' => 'getFulfillmentSupplySourceId',
     ];
 
     /**
@@ -113,7 +113,7 @@ class FulfillmentInstruction implements \ArrayAccess, \JsonSerializable, ModelIn
      */
     public function __construct(array $data = null)
     {
-        $this->container['fulfillmentSupplySourceId'] = $data['fulfillmentSupplySourceId'] ?? null;
+        $this->container['fulfillment_supply_source_id'] = $data['fulfillment_supply_source_id'] ?? null;
     }
 
     /**
@@ -208,21 +208,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets fulfillmentSupplySourceId.
+     * Gets fulfillment_supply_source_id.
      */
     public function getFulfillmentSupplySourceId() : ?string
     {
-        return $this->container['fulfillmentSupplySourceId'];
+        return $this->container['fulfillment_supply_source_id'];
     }
 
     /**
-     * Sets fulfillmentSupplySourceId.
+     * Sets fulfillment_supply_source_id.
      *
-     * @param null|string $fulfillmentSupplySourceId denotes the recommended sourceId where the order should be fulfilled from
+     * @param null|string $fulfillment_supply_source_id denotes the recommended sourceId where the order should be fulfilled from
      */
-    public function setFulfillmentSupplySourceId(?string $fulfillmentSupplySourceId) : self
+    public function setFulfillmentSupplySourceId(?string $fulfillment_supply_source_id) : self
     {
-        $this->container['fulfillmentSupplySourceId'] = $fulfillmentSupplySourceId;
+        $this->container['fulfillment_supply_source_id'] = $fulfillment_supply_source_id;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/Money.php b/src/AmazonPHP/SellingPartner/Model/Orders/Money.php
index 7f7fc2888..863adbad0 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/Money.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/Money.php
@@ -56,7 +56,7 @@ class Money implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'currencyCode' => 'string',
+        'currency_code' => 'string',
         'amount' => 'string',
     ];
 
@@ -68,7 +68,7 @@ class Money implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'currencyCode' => null,
+        'currency_code' => null,
         'amount' => null,
     ];
 
@@ -79,7 +79,7 @@ class Money implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'currencyCode' => 'CurrencyCode',
+        'currency_code' => 'CurrencyCode',
         'amount' => 'Amount',
     ];
 
@@ -89,7 +89,7 @@ class Money implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'currencyCode' => 'setCurrencyCode',
+        'currency_code' => 'setCurrencyCode',
         'amount' => 'setAmount',
     ];
 
@@ -99,7 +99,7 @@ class Money implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'currencyCode' => 'getCurrencyCode',
+        'currency_code' => 'getCurrencyCode',
         'amount' => 'getAmount',
     ];
 
@@ -118,7 +118,7 @@ class Money implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['currencyCode'] = $data['currencyCode'] ?? null;
+        $this->container['currency_code'] = $data['currency_code'] ?? null;
         $this->container['amount'] = $data['amount'] ?? null;
     }
 
@@ -214,21 +214,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets currencyCode.
+     * Gets currency_code.
      */
     public function getCurrencyCode() : ?string
     {
-        return $this->container['currencyCode'];
+        return $this->container['currency_code'];
     }
 
     /**
-     * Sets currencyCode.
+     * Sets currency_code.
      *
-     * @param null|string $currencyCode The three-digit currency code. In ISO 4217 format.
+     * @param null|string $currency_code The three-digit currency code. In ISO 4217 format.
      */
-    public function setCurrencyCode(?string $currencyCode) : self
+    public function setCurrencyCode(?string $currency_code) : self
     {
-        $this->container['currencyCode'] = $currencyCode;
+        $this->container['currency_code'] = $currency_code;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/Order.php b/src/AmazonPHP/SellingPartner/Model/Orders/Order.php
index 1fb9b24a6..586c09cad 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/Order.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/Order.php
@@ -92,42 +92,42 @@ class Order implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'amazonOrderId' => 'string',
-        'sellerOrderId' => 'string',
-        'purchaseDate' => 'string',
-        'lastUpdateDate' => 'string',
-        'orderStatus' => 'string',
-        'fulfillmentChannel' => 'string',
-        'salesChannel' => 'string',
-        'orderChannel' => 'string',
-        'shipServiceLevel' => 'string',
-        'orderTotal' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'numberOfItemsShipped' => 'int',
-        'numberOfItemsUnshipped' => 'int',
-        'paymentExecutionDetail' => '\AmazonPHP\SellingPartner\Model\Orders\PaymentExecutionDetailItem[]',
-        'paymentMethod' => 'string',
-        'paymentMethodDetails' => 'string[]',
-        'marketplaceId' => 'string',
-        'shipmentServiceLevelCategory' => 'string',
-        'easyShipShipmentStatus' => 'string',
-        'cbaDisplayableShippingLabel' => 'string',
-        'orderType' => 'string',
-        'earliestShipDate' => 'string',
-        'latestShipDate' => 'string',
-        'earliestDeliveryDate' => 'string',
-        'latestDeliveryDate' => 'string',
-        'isBusinessOrder' => 'bool',
-        'isPrime' => 'bool',
-        'isPremiumOrder' => 'bool',
-        'isGlobalExpressEnabled' => 'bool',
-        'replacedOrderId' => 'string',
-        'isReplacementOrder' => 'bool',
-        'promiseResponseDueDate' => 'string',
-        'isEstimatedShipDateSet' => 'bool',
-        'isSoldByAB' => 'bool',
-        'defaultShipFromLocationAddress' => '\AmazonPHP\SellingPartner\Model\Orders\Address',
-        'fulfillmentInstruction' => '\AmazonPHP\SellingPartner\Model\Orders\FulfillmentInstruction',
-        'isISPU' => 'bool',
+        'amazon_order_id' => 'string',
+        'seller_order_id' => 'string',
+        'purchase_date' => 'string',
+        'last_update_date' => 'string',
+        'order_status' => 'string',
+        'fulfillment_channel' => 'string',
+        'sales_channel' => 'string',
+        'order_channel' => 'string',
+        'ship_service_level' => 'string',
+        'order_total' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'number_of_items_shipped' => 'int',
+        'number_of_items_unshipped' => 'int',
+        'payment_execution_detail' => '\AmazonPHP\SellingPartner\Model\Orders\PaymentExecutionDetailItem[]',
+        'payment_method' => 'string',
+        'payment_method_details' => 'string[]',
+        'marketplace_id' => 'string',
+        'shipment_service_level_category' => 'string',
+        'easy_ship_shipment_status' => 'string',
+        'cba_displayable_shipping_label' => 'string',
+        'order_type' => 'string',
+        'earliest_ship_date' => 'string',
+        'latest_ship_date' => 'string',
+        'earliest_delivery_date' => 'string',
+        'latest_delivery_date' => 'string',
+        'is_business_order' => 'bool',
+        'is_prime' => 'bool',
+        'is_premium_order' => 'bool',
+        'is_global_express_enabled' => 'bool',
+        'replaced_order_id' => 'string',
+        'is_replacement_order' => 'bool',
+        'promise_response_due_date' => 'string',
+        'is_estimated_ship_date_set' => 'bool',
+        'is_sold_by_ab' => 'bool',
+        'default_ship_from_location_address' => '\AmazonPHP\SellingPartner\Model\Orders\Address',
+        'fulfillment_instruction' => '\AmazonPHP\SellingPartner\Model\Orders\FulfillmentInstruction',
+        'is_ispu' => 'bool',
     ];
 
     /**
@@ -138,42 +138,42 @@ class Order implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'amazonOrderId' => null,
-        'sellerOrderId' => null,
-        'purchaseDate' => null,
-        'lastUpdateDate' => null,
-        'orderStatus' => null,
-        'fulfillmentChannel' => null,
-        'salesChannel' => null,
-        'orderChannel' => null,
-        'shipServiceLevel' => null,
-        'orderTotal' => null,
-        'numberOfItemsShipped' => null,
-        'numberOfItemsUnshipped' => null,
-        'paymentExecutionDetail' => null,
-        'paymentMethod' => null,
-        'paymentMethodDetails' => null,
-        'marketplaceId' => null,
-        'shipmentServiceLevelCategory' => null,
-        'easyShipShipmentStatus' => null,
-        'cbaDisplayableShippingLabel' => null,
-        'orderType' => null,
-        'earliestShipDate' => null,
-        'latestShipDate' => null,
-        'earliestDeliveryDate' => null,
-        'latestDeliveryDate' => null,
-        'isBusinessOrder' => null,
-        'isPrime' => null,
-        'isPremiumOrder' => null,
-        'isGlobalExpressEnabled' => null,
-        'replacedOrderId' => null,
-        'isReplacementOrder' => null,
-        'promiseResponseDueDate' => null,
-        'isEstimatedShipDateSet' => null,
-        'isSoldByAB' => null,
-        'defaultShipFromLocationAddress' => null,
-        'fulfillmentInstruction' => null,
-        'isISPU' => null,
+        'amazon_order_id' => null,
+        'seller_order_id' => null,
+        'purchase_date' => null,
+        'last_update_date' => null,
+        'order_status' => null,
+        'fulfillment_channel' => null,
+        'sales_channel' => null,
+        'order_channel' => null,
+        'ship_service_level' => null,
+        'order_total' => null,
+        'number_of_items_shipped' => null,
+        'number_of_items_unshipped' => null,
+        'payment_execution_detail' => null,
+        'payment_method' => null,
+        'payment_method_details' => null,
+        'marketplace_id' => null,
+        'shipment_service_level_category' => null,
+        'easy_ship_shipment_status' => null,
+        'cba_displayable_shipping_label' => null,
+        'order_type' => null,
+        'earliest_ship_date' => null,
+        'latest_ship_date' => null,
+        'earliest_delivery_date' => null,
+        'latest_delivery_date' => null,
+        'is_business_order' => null,
+        'is_prime' => null,
+        'is_premium_order' => null,
+        'is_global_express_enabled' => null,
+        'replaced_order_id' => null,
+        'is_replacement_order' => null,
+        'promise_response_due_date' => null,
+        'is_estimated_ship_date_set' => null,
+        'is_sold_by_ab' => null,
+        'default_ship_from_location_address' => null,
+        'fulfillment_instruction' => null,
+        'is_ispu' => null,
     ];
 
     /**
@@ -183,42 +183,42 @@ class Order implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'amazonOrderId' => 'AmazonOrderId',
-        'sellerOrderId' => 'SellerOrderId',
-        'purchaseDate' => 'PurchaseDate',
-        'lastUpdateDate' => 'LastUpdateDate',
-        'orderStatus' => 'OrderStatus',
-        'fulfillmentChannel' => 'FulfillmentChannel',
-        'salesChannel' => 'SalesChannel',
-        'orderChannel' => 'OrderChannel',
-        'shipServiceLevel' => 'ShipServiceLevel',
-        'orderTotal' => 'OrderTotal',
-        'numberOfItemsShipped' => 'NumberOfItemsShipped',
-        'numberOfItemsUnshipped' => 'NumberOfItemsUnshipped',
-        'paymentExecutionDetail' => 'PaymentExecutionDetail',
-        'paymentMethod' => 'PaymentMethod',
-        'paymentMethodDetails' => 'PaymentMethodDetails',
-        'marketplaceId' => 'MarketplaceId',
-        'shipmentServiceLevelCategory' => 'ShipmentServiceLevelCategory',
-        'easyShipShipmentStatus' => 'EasyShipShipmentStatus',
-        'cbaDisplayableShippingLabel' => 'CbaDisplayableShippingLabel',
-        'orderType' => 'OrderType',
-        'earliestShipDate' => 'EarliestShipDate',
-        'latestShipDate' => 'LatestShipDate',
-        'earliestDeliveryDate' => 'EarliestDeliveryDate',
-        'latestDeliveryDate' => 'LatestDeliveryDate',
-        'isBusinessOrder' => 'IsBusinessOrder',
-        'isPrime' => 'IsPrime',
-        'isPremiumOrder' => 'IsPremiumOrder',
-        'isGlobalExpressEnabled' => 'IsGlobalExpressEnabled',
-        'replacedOrderId' => 'ReplacedOrderId',
-        'isReplacementOrder' => 'IsReplacementOrder',
-        'promiseResponseDueDate' => 'PromiseResponseDueDate',
-        'isEstimatedShipDateSet' => 'IsEstimatedShipDateSet',
-        'isSoldByAB' => 'IsSoldByAB',
-        'defaultShipFromLocationAddress' => 'DefaultShipFromLocationAddress',
-        'fulfillmentInstruction' => 'FulfillmentInstruction',
-        'isISPU' => 'IsISPU',
+        'amazon_order_id' => 'AmazonOrderId',
+        'seller_order_id' => 'SellerOrderId',
+        'purchase_date' => 'PurchaseDate',
+        'last_update_date' => 'LastUpdateDate',
+        'order_status' => 'OrderStatus',
+        'fulfillment_channel' => 'FulfillmentChannel',
+        'sales_channel' => 'SalesChannel',
+        'order_channel' => 'OrderChannel',
+        'ship_service_level' => 'ShipServiceLevel',
+        'order_total' => 'OrderTotal',
+        'number_of_items_shipped' => 'NumberOfItemsShipped',
+        'number_of_items_unshipped' => 'NumberOfItemsUnshipped',
+        'payment_execution_detail' => 'PaymentExecutionDetail',
+        'payment_method' => 'PaymentMethod',
+        'payment_method_details' => 'PaymentMethodDetails',
+        'marketplace_id' => 'MarketplaceId',
+        'shipment_service_level_category' => 'ShipmentServiceLevelCategory',
+        'easy_ship_shipment_status' => 'EasyShipShipmentStatus',
+        'cba_displayable_shipping_label' => 'CbaDisplayableShippingLabel',
+        'order_type' => 'OrderType',
+        'earliest_ship_date' => 'EarliestShipDate',
+        'latest_ship_date' => 'LatestShipDate',
+        'earliest_delivery_date' => 'EarliestDeliveryDate',
+        'latest_delivery_date' => 'LatestDeliveryDate',
+        'is_business_order' => 'IsBusinessOrder',
+        'is_prime' => 'IsPrime',
+        'is_premium_order' => 'IsPremiumOrder',
+        'is_global_express_enabled' => 'IsGlobalExpressEnabled',
+        'replaced_order_id' => 'ReplacedOrderId',
+        'is_replacement_order' => 'IsReplacementOrder',
+        'promise_response_due_date' => 'PromiseResponseDueDate',
+        'is_estimated_ship_date_set' => 'IsEstimatedShipDateSet',
+        'is_sold_by_ab' => 'IsSoldByAB',
+        'default_ship_from_location_address' => 'DefaultShipFromLocationAddress',
+        'fulfillment_instruction' => 'FulfillmentInstruction',
+        'is_ispu' => 'IsISPU',
     ];
 
     /**
@@ -227,42 +227,42 @@ class Order implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'amazonOrderId' => 'setAmazonOrderId',
-        'sellerOrderId' => 'setSellerOrderId',
-        'purchaseDate' => 'setPurchaseDate',
-        'lastUpdateDate' => 'setLastUpdateDate',
-        'orderStatus' => 'setOrderStatus',
-        'fulfillmentChannel' => 'setFulfillmentChannel',
-        'salesChannel' => 'setSalesChannel',
-        'orderChannel' => 'setOrderChannel',
-        'shipServiceLevel' => 'setShipServiceLevel',
-        'orderTotal' => 'setOrderTotal',
-        'numberOfItemsShipped' => 'setNumberOfItemsShipped',
-        'numberOfItemsUnshipped' => 'setNumberOfItemsUnshipped',
-        'paymentExecutionDetail' => 'setPaymentExecutionDetail',
-        'paymentMethod' => 'setPaymentMethod',
-        'paymentMethodDetails' => 'setPaymentMethodDetails',
-        'marketplaceId' => 'setMarketplaceId',
-        'shipmentServiceLevelCategory' => 'setShipmentServiceLevelCategory',
-        'easyShipShipmentStatus' => 'setEasyShipShipmentStatus',
-        'cbaDisplayableShippingLabel' => 'setCbaDisplayableShippingLabel',
-        'orderType' => 'setOrderType',
-        'earliestShipDate' => 'setEarliestShipDate',
-        'latestShipDate' => 'setLatestShipDate',
-        'earliestDeliveryDate' => 'setEarliestDeliveryDate',
-        'latestDeliveryDate' => 'setLatestDeliveryDate',
-        'isBusinessOrder' => 'setIsBusinessOrder',
-        'isPrime' => 'setIsPrime',
-        'isPremiumOrder' => 'setIsPremiumOrder',
-        'isGlobalExpressEnabled' => 'setIsGlobalExpressEnabled',
-        'replacedOrderId' => 'setReplacedOrderId',
-        'isReplacementOrder' => 'setIsReplacementOrder',
-        'promiseResponseDueDate' => 'setPromiseResponseDueDate',
-        'isEstimatedShipDateSet' => 'setIsEstimatedShipDateSet',
-        'isSoldByAB' => 'setIsSoldByAB',
-        'defaultShipFromLocationAddress' => 'setDefaultShipFromLocationAddress',
-        'fulfillmentInstruction' => 'setFulfillmentInstruction',
-        'isISPU' => 'setIsISPU',
+        'amazon_order_id' => 'setAmazonOrderId',
+        'seller_order_id' => 'setSellerOrderId',
+        'purchase_date' => 'setPurchaseDate',
+        'last_update_date' => 'setLastUpdateDate',
+        'order_status' => 'setOrderStatus',
+        'fulfillment_channel' => 'setFulfillmentChannel',
+        'sales_channel' => 'setSalesChannel',
+        'order_channel' => 'setOrderChannel',
+        'ship_service_level' => 'setShipServiceLevel',
+        'order_total' => 'setOrderTotal',
+        'number_of_items_shipped' => 'setNumberOfItemsShipped',
+        'number_of_items_unshipped' => 'setNumberOfItemsUnshipped',
+        'payment_execution_detail' => 'setPaymentExecutionDetail',
+        'payment_method' => 'setPaymentMethod',
+        'payment_method_details' => 'setPaymentMethodDetails',
+        'marketplace_id' => 'setMarketplaceId',
+        'shipment_service_level_category' => 'setShipmentServiceLevelCategory',
+        'easy_ship_shipment_status' => 'setEasyShipShipmentStatus',
+        'cba_displayable_shipping_label' => 'setCbaDisplayableShippingLabel',
+        'order_type' => 'setOrderType',
+        'earliest_ship_date' => 'setEarliestShipDate',
+        'latest_ship_date' => 'setLatestShipDate',
+        'earliest_delivery_date' => 'setEarliestDeliveryDate',
+        'latest_delivery_date' => 'setLatestDeliveryDate',
+        'is_business_order' => 'setIsBusinessOrder',
+        'is_prime' => 'setIsPrime',
+        'is_premium_order' => 'setIsPremiumOrder',
+        'is_global_express_enabled' => 'setIsGlobalExpressEnabled',
+        'replaced_order_id' => 'setReplacedOrderId',
+        'is_replacement_order' => 'setIsReplacementOrder',
+        'promise_response_due_date' => 'setPromiseResponseDueDate',
+        'is_estimated_ship_date_set' => 'setIsEstimatedShipDateSet',
+        'is_sold_by_ab' => 'setIsSoldByAb',
+        'default_ship_from_location_address' => 'setDefaultShipFromLocationAddress',
+        'fulfillment_instruction' => 'setFulfillmentInstruction',
+        'is_ispu' => 'setIsIspu',
     ];
 
     /**
@@ -271,42 +271,42 @@ class Order implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'amazonOrderId' => 'getAmazonOrderId',
-        'sellerOrderId' => 'getSellerOrderId',
-        'purchaseDate' => 'getPurchaseDate',
-        'lastUpdateDate' => 'getLastUpdateDate',
-        'orderStatus' => 'getOrderStatus',
-        'fulfillmentChannel' => 'getFulfillmentChannel',
-        'salesChannel' => 'getSalesChannel',
-        'orderChannel' => 'getOrderChannel',
-        'shipServiceLevel' => 'getShipServiceLevel',
-        'orderTotal' => 'getOrderTotal',
-        'numberOfItemsShipped' => 'getNumberOfItemsShipped',
-        'numberOfItemsUnshipped' => 'getNumberOfItemsUnshipped',
-        'paymentExecutionDetail' => 'getPaymentExecutionDetail',
-        'paymentMethod' => 'getPaymentMethod',
-        'paymentMethodDetails' => 'getPaymentMethodDetails',
-        'marketplaceId' => 'getMarketplaceId',
-        'shipmentServiceLevelCategory' => 'getShipmentServiceLevelCategory',
-        'easyShipShipmentStatus' => 'getEasyShipShipmentStatus',
-        'cbaDisplayableShippingLabel' => 'getCbaDisplayableShippingLabel',
-        'orderType' => 'getOrderType',
-        'earliestShipDate' => 'getEarliestShipDate',
-        'latestShipDate' => 'getLatestShipDate',
-        'earliestDeliveryDate' => 'getEarliestDeliveryDate',
-        'latestDeliveryDate' => 'getLatestDeliveryDate',
-        'isBusinessOrder' => 'getIsBusinessOrder',
-        'isPrime' => 'getIsPrime',
-        'isPremiumOrder' => 'getIsPremiumOrder',
-        'isGlobalExpressEnabled' => 'getIsGlobalExpressEnabled',
-        'replacedOrderId' => 'getReplacedOrderId',
-        'isReplacementOrder' => 'getIsReplacementOrder',
-        'promiseResponseDueDate' => 'getPromiseResponseDueDate',
-        'isEstimatedShipDateSet' => 'getIsEstimatedShipDateSet',
-        'isSoldByAB' => 'getIsSoldByAB',
-        'defaultShipFromLocationAddress' => 'getDefaultShipFromLocationAddress',
-        'fulfillmentInstruction' => 'getFulfillmentInstruction',
-        'isISPU' => 'getIsISPU',
+        'amazon_order_id' => 'getAmazonOrderId',
+        'seller_order_id' => 'getSellerOrderId',
+        'purchase_date' => 'getPurchaseDate',
+        'last_update_date' => 'getLastUpdateDate',
+        'order_status' => 'getOrderStatus',
+        'fulfillment_channel' => 'getFulfillmentChannel',
+        'sales_channel' => 'getSalesChannel',
+        'order_channel' => 'getOrderChannel',
+        'ship_service_level' => 'getShipServiceLevel',
+        'order_total' => 'getOrderTotal',
+        'number_of_items_shipped' => 'getNumberOfItemsShipped',
+        'number_of_items_unshipped' => 'getNumberOfItemsUnshipped',
+        'payment_execution_detail' => 'getPaymentExecutionDetail',
+        'payment_method' => 'getPaymentMethod',
+        'payment_method_details' => 'getPaymentMethodDetails',
+        'marketplace_id' => 'getMarketplaceId',
+        'shipment_service_level_category' => 'getShipmentServiceLevelCategory',
+        'easy_ship_shipment_status' => 'getEasyShipShipmentStatus',
+        'cba_displayable_shipping_label' => 'getCbaDisplayableShippingLabel',
+        'order_type' => 'getOrderType',
+        'earliest_ship_date' => 'getEarliestShipDate',
+        'latest_ship_date' => 'getLatestShipDate',
+        'earliest_delivery_date' => 'getEarliestDeliveryDate',
+        'latest_delivery_date' => 'getLatestDeliveryDate',
+        'is_business_order' => 'getIsBusinessOrder',
+        'is_prime' => 'getIsPrime',
+        'is_premium_order' => 'getIsPremiumOrder',
+        'is_global_express_enabled' => 'getIsGlobalExpressEnabled',
+        'replaced_order_id' => 'getReplacedOrderId',
+        'is_replacement_order' => 'getIsReplacementOrder',
+        'promise_response_due_date' => 'getPromiseResponseDueDate',
+        'is_estimated_ship_date_set' => 'getIsEstimatedShipDateSet',
+        'is_sold_by_ab' => 'getIsSoldByAb',
+        'default_ship_from_location_address' => 'getDefaultShipFromLocationAddress',
+        'fulfillment_instruction' => 'getFulfillmentInstruction',
+        'is_ispu' => 'getIsIspu',
     ];
 
     /**
@@ -324,42 +324,42 @@ class Order implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['amazonOrderId'] = $data['amazonOrderId'] ?? null;
-        $this->container['sellerOrderId'] = $data['sellerOrderId'] ?? null;
-        $this->container['purchaseDate'] = $data['purchaseDate'] ?? null;
-        $this->container['lastUpdateDate'] = $data['lastUpdateDate'] ?? null;
-        $this->container['orderStatus'] = $data['orderStatus'] ?? null;
-        $this->container['fulfillmentChannel'] = $data['fulfillmentChannel'] ?? null;
-        $this->container['salesChannel'] = $data['salesChannel'] ?? null;
-        $this->container['orderChannel'] = $data['orderChannel'] ?? null;
-        $this->container['shipServiceLevel'] = $data['shipServiceLevel'] ?? null;
-        $this->container['orderTotal'] = $data['orderTotal'] ?? null;
-        $this->container['numberOfItemsShipped'] = $data['numberOfItemsShipped'] ?? null;
-        $this->container['numberOfItemsUnshipped'] = $data['numberOfItemsUnshipped'] ?? null;
-        $this->container['paymentExecutionDetail'] = $data['paymentExecutionDetail'] ?? null;
-        $this->container['paymentMethod'] = $data['paymentMethod'] ?? null;
-        $this->container['paymentMethodDetails'] = $data['paymentMethodDetails'] ?? null;
-        $this->container['marketplaceId'] = $data['marketplaceId'] ?? null;
-        $this->container['shipmentServiceLevelCategory'] = $data['shipmentServiceLevelCategory'] ?? null;
-        $this->container['easyShipShipmentStatus'] = $data['easyShipShipmentStatus'] ?? null;
-        $this->container['cbaDisplayableShippingLabel'] = $data['cbaDisplayableShippingLabel'] ?? null;
-        $this->container['orderType'] = $data['orderType'] ?? null;
-        $this->container['earliestShipDate'] = $data['earliestShipDate'] ?? null;
-        $this->container['latestShipDate'] = $data['latestShipDate'] ?? null;
-        $this->container['earliestDeliveryDate'] = $data['earliestDeliveryDate'] ?? null;
-        $this->container['latestDeliveryDate'] = $data['latestDeliveryDate'] ?? null;
-        $this->container['isBusinessOrder'] = $data['isBusinessOrder'] ?? null;
-        $this->container['isPrime'] = $data['isPrime'] ?? null;
-        $this->container['isPremiumOrder'] = $data['isPremiumOrder'] ?? null;
-        $this->container['isGlobalExpressEnabled'] = $data['isGlobalExpressEnabled'] ?? null;
-        $this->container['replacedOrderId'] = $data['replacedOrderId'] ?? null;
-        $this->container['isReplacementOrder'] = $data['isReplacementOrder'] ?? null;
-        $this->container['promiseResponseDueDate'] = $data['promiseResponseDueDate'] ?? null;
-        $this->container['isEstimatedShipDateSet'] = $data['isEstimatedShipDateSet'] ?? null;
-        $this->container['isSoldByAB'] = $data['isSoldByAB'] ?? null;
-        $this->container['defaultShipFromLocationAddress'] = $data['defaultShipFromLocationAddress'] ?? null;
-        $this->container['fulfillmentInstruction'] = $data['fulfillmentInstruction'] ?? null;
-        $this->container['isISPU'] = $data['isISPU'] ?? null;
+        $this->container['amazon_order_id'] = $data['amazon_order_id'] ?? null;
+        $this->container['seller_order_id'] = $data['seller_order_id'] ?? null;
+        $this->container['purchase_date'] = $data['purchase_date'] ?? null;
+        $this->container['last_update_date'] = $data['last_update_date'] ?? null;
+        $this->container['order_status'] = $data['order_status'] ?? null;
+        $this->container['fulfillment_channel'] = $data['fulfillment_channel'] ?? null;
+        $this->container['sales_channel'] = $data['sales_channel'] ?? null;
+        $this->container['order_channel'] = $data['order_channel'] ?? null;
+        $this->container['ship_service_level'] = $data['ship_service_level'] ?? null;
+        $this->container['order_total'] = $data['order_total'] ?? null;
+        $this->container['number_of_items_shipped'] = $data['number_of_items_shipped'] ?? null;
+        $this->container['number_of_items_unshipped'] = $data['number_of_items_unshipped'] ?? null;
+        $this->container['payment_execution_detail'] = $data['payment_execution_detail'] ?? null;
+        $this->container['payment_method'] = $data['payment_method'] ?? null;
+        $this->container['payment_method_details'] = $data['payment_method_details'] ?? null;
+        $this->container['marketplace_id'] = $data['marketplace_id'] ?? null;
+        $this->container['shipment_service_level_category'] = $data['shipment_service_level_category'] ?? null;
+        $this->container['easy_ship_shipment_status'] = $data['easy_ship_shipment_status'] ?? null;
+        $this->container['cba_displayable_shipping_label'] = $data['cba_displayable_shipping_label'] ?? null;
+        $this->container['order_type'] = $data['order_type'] ?? null;
+        $this->container['earliest_ship_date'] = $data['earliest_ship_date'] ?? null;
+        $this->container['latest_ship_date'] = $data['latest_ship_date'] ?? null;
+        $this->container['earliest_delivery_date'] = $data['earliest_delivery_date'] ?? null;
+        $this->container['latest_delivery_date'] = $data['latest_delivery_date'] ?? null;
+        $this->container['is_business_order'] = $data['is_business_order'] ?? null;
+        $this->container['is_prime'] = $data['is_prime'] ?? null;
+        $this->container['is_premium_order'] = $data['is_premium_order'] ?? null;
+        $this->container['is_global_express_enabled'] = $data['is_global_express_enabled'] ?? null;
+        $this->container['replaced_order_id'] = $data['replaced_order_id'] ?? null;
+        $this->container['is_replacement_order'] = $data['is_replacement_order'] ?? null;
+        $this->container['promise_response_due_date'] = $data['promise_response_due_date'] ?? null;
+        $this->container['is_estimated_ship_date_set'] = $data['is_estimated_ship_date_set'] ?? null;
+        $this->container['is_sold_by_ab'] = $data['is_sold_by_ab'] ?? null;
+        $this->container['default_ship_from_location_address'] = $data['default_ship_from_location_address'] ?? null;
+        $this->container['fulfillment_instruction'] = $data['fulfillment_instruction'] ?? null;
+        $this->container['is_ispu'] = $data['is_ispu'] ?? null;
     }
 
     /**
@@ -503,57 +503,57 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['amazonOrderId'] === null) {
-            $invalidProperties[] = "'amazonOrderId' can't be null";
+        if ($this->container['amazon_order_id'] === null) {
+            $invalidProperties[] = "'amazon_order_id' can't be null";
         }
 
-        if ($this->container['purchaseDate'] === null) {
-            $invalidProperties[] = "'purchaseDate' can't be null";
+        if ($this->container['purchase_date'] === null) {
+            $invalidProperties[] = "'purchase_date' can't be null";
         }
 
-        if ($this->container['lastUpdateDate'] === null) {
-            $invalidProperties[] = "'lastUpdateDate' can't be null";
+        if ($this->container['last_update_date'] === null) {
+            $invalidProperties[] = "'last_update_date' can't be null";
         }
 
-        if ($this->container['orderStatus'] === null) {
-            $invalidProperties[] = "'orderStatus' can't be null";
+        if ($this->container['order_status'] === null) {
+            $invalidProperties[] = "'order_status' can't be null";
         }
         $allowedValues = $this->getOrderStatusAllowableValues();
 
-        if (null !== $this->container['orderStatus'] && !\in_array($this->container['orderStatus'], $allowedValues, true)) {
+        if (null !== $this->container['order_status'] && !\in_array($this->container['order_status'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'orderStatus', must be one of '%s'",
-                $this->container['orderStatus'],
+                "invalid value '%s' for 'order_status', must be one of '%s'",
+                $this->container['order_status'],
                 \implode("', '", $allowedValues)
             );
         }
 
         $allowedValues = $this->getFulfillmentChannelAllowableValues();
 
-        if (null !== $this->container['fulfillmentChannel'] && !\in_array($this->container['fulfillmentChannel'], $allowedValues, true)) {
+        if (null !== $this->container['fulfillment_channel'] && !\in_array($this->container['fulfillment_channel'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'fulfillmentChannel', must be one of '%s'",
-                $this->container['fulfillmentChannel'],
+                "invalid value '%s' for 'fulfillment_channel', must be one of '%s'",
+                $this->container['fulfillment_channel'],
                 \implode("', '", $allowedValues)
             );
         }
 
         $allowedValues = $this->getPaymentMethodAllowableValues();
 
-        if (null !== $this->container['paymentMethod'] && !\in_array($this->container['paymentMethod'], $allowedValues, true)) {
+        if (null !== $this->container['payment_method'] && !\in_array($this->container['payment_method'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'paymentMethod', must be one of '%s'",
-                $this->container['paymentMethod'],
+                "invalid value '%s' for 'payment_method', must be one of '%s'",
+                $this->container['payment_method'],
                 \implode("', '", $allowedValues)
             );
         }
 
         $allowedValues = $this->getOrderTypeAllowableValues();
 
-        if (null !== $this->container['orderType'] && !\in_array($this->container['orderType'], $allowedValues, true)) {
+        if (null !== $this->container['order_type'] && !\in_array($this->container['order_type'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'orderType', must be one of '%s'",
-                $this->container['orderType'],
+                "invalid value '%s' for 'order_type', must be one of '%s'",
+                $this->container['order_type'],
                 \implode("', '", $allowedValues)
             );
         }
@@ -573,769 +573,769 @@ public function valid() : bool
     }
 
     /**
-     * Gets amazonOrderId.
+     * Gets amazon_order_id.
      */
     public function getAmazonOrderId() : string
     {
-        return $this->container['amazonOrderId'];
+        return $this->container['amazon_order_id'];
     }
 
     /**
-     * Sets amazonOrderId.
+     * Sets amazon_order_id.
      *
-     * @param string $amazonOrderId an Amazon-defined order identifier, in 3-7-7 format
+     * @param string $amazon_order_id an Amazon-defined order identifier, in 3-7-7 format
      */
-    public function setAmazonOrderId(string $amazonOrderId) : self
+    public function setAmazonOrderId(string $amazon_order_id) : self
     {
-        $this->container['amazonOrderId'] = $amazonOrderId;
+        $this->container['amazon_order_id'] = $amazon_order_id;
 
         return $this;
     }
 
     /**
-     * Gets sellerOrderId.
+     * Gets seller_order_id.
      */
     public function getSellerOrderId() : ?string
     {
-        return $this->container['sellerOrderId'];
+        return $this->container['seller_order_id'];
     }
 
     /**
-     * Sets sellerOrderId.
+     * Sets seller_order_id.
      *
-     * @param null|string $sellerOrderId a seller-defined order identifier
+     * @param null|string $seller_order_id a seller-defined order identifier
      */
-    public function setSellerOrderId(?string $sellerOrderId) : self
+    public function setSellerOrderId(?string $seller_order_id) : self
     {
-        $this->container['sellerOrderId'] = $sellerOrderId;
+        $this->container['seller_order_id'] = $seller_order_id;
 
         return $this;
     }
 
     /**
-     * Gets purchaseDate.
+     * Gets purchase_date.
      */
     public function getPurchaseDate() : string
     {
-        return $this->container['purchaseDate'];
+        return $this->container['purchase_date'];
     }
 
     /**
-     * Sets purchaseDate.
+     * Sets purchase_date.
      *
-     * @param string $purchaseDate the date when the order was created
+     * @param string $purchase_date the date when the order was created
      */
-    public function setPurchaseDate(string $purchaseDate) : self
+    public function setPurchaseDate(string $purchase_date) : self
     {
-        $this->container['purchaseDate'] = $purchaseDate;
+        $this->container['purchase_date'] = $purchase_date;
 
         return $this;
     }
 
     /**
-     * Gets lastUpdateDate.
+     * Gets last_update_date.
      */
     public function getLastUpdateDate() : string
     {
-        return $this->container['lastUpdateDate'];
+        return $this->container['last_update_date'];
     }
 
     /**
-     * Sets lastUpdateDate.
+     * Sets last_update_date.
      *
-     * @param string $lastUpdateDate The date when the order was last updated.  Note: LastUpdateDate is returned with an incorrect date for orders that were last updated before 2009-04-01.
+     * @param string $last_update_date The date when the order was last updated.  Note: LastUpdateDate is returned with an incorrect date for orders that were last updated before 2009-04-01.
      */
-    public function setLastUpdateDate(string $lastUpdateDate) : self
+    public function setLastUpdateDate(string $last_update_date) : self
     {
-        $this->container['lastUpdateDate'] = $lastUpdateDate;
+        $this->container['last_update_date'] = $last_update_date;
 
         return $this;
     }
 
     /**
-     * Gets orderStatus.
+     * Gets order_status.
      */
     public function getOrderStatus() : string
     {
-        return $this->container['orderStatus'];
+        return $this->container['order_status'];
     }
 
     /**
-     * Sets orderStatus.
+     * Sets order_status.
      *
-     * @param string $orderStatus the current order status
+     * @param string $order_status the current order status
      */
-    public function setOrderStatus(string $orderStatus) : self
+    public function setOrderStatus(string $order_status) : self
     {
         $allowedValues = $this->getOrderStatusAllowableValues();
 
-        if (!\in_array($orderStatus, $allowedValues, true)) {
+        if (!\in_array($order_status, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'orderStatus', must be one of '%s'",
-                    $orderStatus,
+                    "Invalid value '%s' for 'order_status', must be one of '%s'",
+                    $order_status,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['orderStatus'] = $orderStatus;
+        $this->container['order_status'] = $order_status;
 
         return $this;
     }
 
     /**
-     * Gets fulfillmentChannel.
+     * Gets fulfillment_channel.
      */
     public function getFulfillmentChannel() : ?string
     {
-        return $this->container['fulfillmentChannel'];
+        return $this->container['fulfillment_channel'];
     }
 
     /**
-     * Sets fulfillmentChannel.
+     * Sets fulfillment_channel.
      *
-     * @param null|string $fulfillmentChannel whether the order was fulfilled by Amazon (AFN) or by the seller (MFN)
+     * @param null|string $fulfillment_channel whether the order was fulfilled by Amazon (AFN) or by the seller (MFN)
      */
-    public function setFulfillmentChannel(?string $fulfillmentChannel) : self
+    public function setFulfillmentChannel(?string $fulfillment_channel) : self
     {
         $allowedValues = $this->getFulfillmentChannelAllowableValues();
 
-        if (null !== $fulfillmentChannel && !\in_array($fulfillmentChannel, $allowedValues, true)) {
+        if (null !== $fulfillment_channel && !\in_array($fulfillment_channel, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'fulfillmentChannel', must be one of '%s'",
-                    $fulfillmentChannel,
+                    "Invalid value '%s' for 'fulfillment_channel', must be one of '%s'",
+                    $fulfillment_channel,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['fulfillmentChannel'] = $fulfillmentChannel;
+        $this->container['fulfillment_channel'] = $fulfillment_channel;
 
         return $this;
     }
 
     /**
-     * Gets salesChannel.
+     * Gets sales_channel.
      */
     public function getSalesChannel() : ?string
     {
-        return $this->container['salesChannel'];
+        return $this->container['sales_channel'];
     }
 
     /**
-     * Sets salesChannel.
+     * Sets sales_channel.
      *
-     * @param null|string $salesChannel the sales channel of the first item in the order
+     * @param null|string $sales_channel the sales channel of the first item in the order
      */
-    public function setSalesChannel(?string $salesChannel) : self
+    public function setSalesChannel(?string $sales_channel) : self
     {
-        $this->container['salesChannel'] = $salesChannel;
+        $this->container['sales_channel'] = $sales_channel;
 
         return $this;
     }
 
     /**
-     * Gets orderChannel.
+     * Gets order_channel.
      */
     public function getOrderChannel() : ?string
     {
-        return $this->container['orderChannel'];
+        return $this->container['order_channel'];
     }
 
     /**
-     * Sets orderChannel.
+     * Sets order_channel.
      *
-     * @param null|string $orderChannel the order channel of the first item in the order
+     * @param null|string $order_channel the order channel of the first item in the order
      */
-    public function setOrderChannel(?string $orderChannel) : self
+    public function setOrderChannel(?string $order_channel) : self
     {
-        $this->container['orderChannel'] = $orderChannel;
+        $this->container['order_channel'] = $order_channel;
 
         return $this;
     }
 
     /**
-     * Gets shipServiceLevel.
+     * Gets ship_service_level.
      */
     public function getShipServiceLevel() : ?string
     {
-        return $this->container['shipServiceLevel'];
+        return $this->container['ship_service_level'];
     }
 
     /**
-     * Sets shipServiceLevel.
+     * Sets ship_service_level.
      *
-     * @param null|string $shipServiceLevel the shipment service level of the order
+     * @param null|string $ship_service_level the shipment service level of the order
      */
-    public function setShipServiceLevel(?string $shipServiceLevel) : self
+    public function setShipServiceLevel(?string $ship_service_level) : self
     {
-        $this->container['shipServiceLevel'] = $shipServiceLevel;
+        $this->container['ship_service_level'] = $ship_service_level;
 
         return $this;
     }
 
     /**
-     * Gets orderTotal.
+     * Gets order_total.
      */
     public function getOrderTotal() : ?Money
     {
-        return $this->container['orderTotal'];
+        return $this->container['order_total'];
     }
 
     /**
-     * Sets orderTotal.
+     * Sets order_total.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $orderTotal orderTotal
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $order_total order_total
      */
-    public function setOrderTotal(?Money $orderTotal) : self
+    public function setOrderTotal(?Money $order_total) : self
     {
-        $this->container['orderTotal'] = $orderTotal;
+        $this->container['order_total'] = $order_total;
 
         return $this;
     }
 
     /**
-     * Gets numberOfItemsShipped.
+     * Gets number_of_items_shipped.
      */
     public function getNumberOfItemsShipped() : ?int
     {
-        return $this->container['numberOfItemsShipped'];
+        return $this->container['number_of_items_shipped'];
     }
 
     /**
-     * Sets numberOfItemsShipped.
+     * Sets number_of_items_shipped.
      *
-     * @param null|int $numberOfItemsShipped the number of items shipped
+     * @param null|int $number_of_items_shipped the number of items shipped
      */
-    public function setNumberOfItemsShipped(?int $numberOfItemsShipped) : self
+    public function setNumberOfItemsShipped(?int $number_of_items_shipped) : self
     {
-        $this->container['numberOfItemsShipped'] = $numberOfItemsShipped;
+        $this->container['number_of_items_shipped'] = $number_of_items_shipped;
 
         return $this;
     }
 
     /**
-     * Gets numberOfItemsUnshipped.
+     * Gets number_of_items_unshipped.
      */
     public function getNumberOfItemsUnshipped() : ?int
     {
-        return $this->container['numberOfItemsUnshipped'];
+        return $this->container['number_of_items_unshipped'];
     }
 
     /**
-     * Sets numberOfItemsUnshipped.
+     * Sets number_of_items_unshipped.
      *
-     * @param null|int $numberOfItemsUnshipped the number of items unshipped
+     * @param null|int $number_of_items_unshipped the number of items unshipped
      */
-    public function setNumberOfItemsUnshipped(?int $numberOfItemsUnshipped) : self
+    public function setNumberOfItemsUnshipped(?int $number_of_items_unshipped) : self
     {
-        $this->container['numberOfItemsUnshipped'] = $numberOfItemsUnshipped;
+        $this->container['number_of_items_unshipped'] = $number_of_items_unshipped;
 
         return $this;
     }
 
     /**
-     * Gets paymentExecutionDetail.
+     * Gets payment_execution_detail.
      *
      * @return null|\AmazonPHP\SellingPartner\Model\Orders\PaymentExecutionDetailItem[]
      */
     public function getPaymentExecutionDetail() : ?array
     {
-        return $this->container['paymentExecutionDetail'];
+        return $this->container['payment_execution_detail'];
     }
 
     /**
-     * Sets paymentExecutionDetail.
+     * Sets payment_execution_detail.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\PaymentExecutionDetailItem[] $paymentExecutionDetail a list of payment execution detail items
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\PaymentExecutionDetailItem[] $payment_execution_detail a list of payment execution detail items
      */
-    public function setPaymentExecutionDetail(?array $paymentExecutionDetail) : self
+    public function setPaymentExecutionDetail(?array $payment_execution_detail) : self
     {
-        $this->container['paymentExecutionDetail'] = $paymentExecutionDetail;
+        $this->container['payment_execution_detail'] = $payment_execution_detail;
 
         return $this;
     }
 
     /**
-     * Gets paymentMethod.
+     * Gets payment_method.
      */
     public function getPaymentMethod() : ?string
     {
-        return $this->container['paymentMethod'];
+        return $this->container['payment_method'];
     }
 
     /**
-     * Sets paymentMethod.
+     * Sets payment_method.
      *
-     * @param null|string $paymentMethod The payment method for the order. This property is limited to Cash On Delivery (COD) and Convenience Store (CVS) payment methods. Unless you need the specific COD payment information provided by the PaymentExecutionDetailItem object, we recommend using the PaymentMethodDetails property to get payment method information.
+     * @param null|string $payment_method The payment method for the order. This property is limited to Cash On Delivery (COD) and Convenience Store (CVS) payment methods. Unless you need the specific COD payment information provided by the PaymentExecutionDetailItem object, we recommend using the PaymentMethodDetails property to get payment method information.
      */
-    public function setPaymentMethod(?string $paymentMethod) : self
+    public function setPaymentMethod(?string $payment_method) : self
     {
         $allowedValues = $this->getPaymentMethodAllowableValues();
 
-        if (null !== $paymentMethod && !\in_array($paymentMethod, $allowedValues, true)) {
+        if (null !== $payment_method && !\in_array($payment_method, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'paymentMethod', must be one of '%s'",
-                    $paymentMethod,
+                    "Invalid value '%s' for 'payment_method', must be one of '%s'",
+                    $payment_method,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['paymentMethod'] = $paymentMethod;
+        $this->container['payment_method'] = $payment_method;
 
         return $this;
     }
 
     /**
-     * Gets paymentMethodDetails.
+     * Gets payment_method_details.
      *
      * @return null|string[]
      */
     public function getPaymentMethodDetails() : ?array
     {
-        return $this->container['paymentMethodDetails'];
+        return $this->container['payment_method_details'];
     }
 
     /**
-     * Sets paymentMethodDetails.
+     * Sets payment_method_details.
      *
-     * @param null|string[] $paymentMethodDetails a list of payment method detail items
+     * @param null|string[] $payment_method_details a list of payment method detail items
      */
-    public function setPaymentMethodDetails(?array $paymentMethodDetails) : self
+    public function setPaymentMethodDetails(?array $payment_method_details) : self
     {
-        $this->container['paymentMethodDetails'] = $paymentMethodDetails;
+        $this->container['payment_method_details'] = $payment_method_details;
 
         return $this;
     }
 
     /**
-     * Gets marketplaceId.
+     * Gets marketplace_id.
      */
     public function getMarketplaceId() : ?string
     {
-        return $this->container['marketplaceId'];
+        return $this->container['marketplace_id'];
     }
 
     /**
-     * Sets marketplaceId.
+     * Sets marketplace_id.
      *
-     * @param null|string $marketplaceId the identifier for the marketplace where the order was placed
+     * @param null|string $marketplace_id the identifier for the marketplace where the order was placed
      */
-    public function setMarketplaceId(?string $marketplaceId) : self
+    public function setMarketplaceId(?string $marketplace_id) : self
     {
-        $this->container['marketplaceId'] = $marketplaceId;
+        $this->container['marketplace_id'] = $marketplace_id;
 
         return $this;
     }
 
     /**
-     * Gets shipmentServiceLevelCategory.
+     * Gets shipment_service_level_category.
      */
     public function getShipmentServiceLevelCategory() : ?string
     {
-        return $this->container['shipmentServiceLevelCategory'];
+        return $this->container['shipment_service_level_category'];
     }
 
     /**
-     * Sets shipmentServiceLevelCategory.
+     * Sets shipment_service_level_category.
      *
-     * @param null|string $shipmentServiceLevelCategory The shipment service level category of the order.  Possible values: Expedited, FreeEconomy, NextDay, SameDay, SecondDay, Scheduled, Standard.
+     * @param null|string $shipment_service_level_category The shipment service level category of the order.  Possible values: Expedited, FreeEconomy, NextDay, SameDay, SecondDay, Scheduled, Standard.
      */
-    public function setShipmentServiceLevelCategory(?string $shipmentServiceLevelCategory) : self
+    public function setShipmentServiceLevelCategory(?string $shipment_service_level_category) : self
     {
-        $this->container['shipmentServiceLevelCategory'] = $shipmentServiceLevelCategory;
+        $this->container['shipment_service_level_category'] = $shipment_service_level_category;
 
         return $this;
     }
 
     /**
-     * Gets easyShipShipmentStatus.
+     * Gets easy_ship_shipment_status.
      */
     public function getEasyShipShipmentStatus() : ?string
     {
-        return $this->container['easyShipShipmentStatus'];
+        return $this->container['easy_ship_shipment_status'];
     }
 
     /**
-     * Sets easyShipShipmentStatus.
+     * Sets easy_ship_shipment_status.
      *
-     * @param null|string $easyShipShipmentStatus The status of the Amazon Easy Ship order. This property is included only for Amazon Easy Ship orders.  Possible values: PendingPickUp, LabelCanceled, PickedUp, OutForDelivery, Damaged, Delivered, RejectedByBuyer, Undeliverable, ReturnedToSeller, ReturningToSeller.
+     * @param null|string $easy_ship_shipment_status The status of the Amazon Easy Ship order. This property is included only for Amazon Easy Ship orders.  Possible values: PendingPickUp, LabelCanceled, PickedUp, OutForDelivery, Damaged, Delivered, RejectedByBuyer, Undeliverable, ReturnedToSeller, ReturningToSeller.
      */
-    public function setEasyShipShipmentStatus(?string $easyShipShipmentStatus) : self
+    public function setEasyShipShipmentStatus(?string $easy_ship_shipment_status) : self
     {
-        $this->container['easyShipShipmentStatus'] = $easyShipShipmentStatus;
+        $this->container['easy_ship_shipment_status'] = $easy_ship_shipment_status;
 
         return $this;
     }
 
     /**
-     * Gets cbaDisplayableShippingLabel.
+     * Gets cba_displayable_shipping_label.
      */
     public function getCbaDisplayableShippingLabel() : ?string
     {
-        return $this->container['cbaDisplayableShippingLabel'];
+        return $this->container['cba_displayable_shipping_label'];
     }
 
     /**
-     * Sets cbaDisplayableShippingLabel.
+     * Sets cba_displayable_shipping_label.
      *
-     * @param null|string $cbaDisplayableShippingLabel custom ship label for Checkout by Amazon (CBA)
+     * @param null|string $cba_displayable_shipping_label custom ship label for Checkout by Amazon (CBA)
      */
-    public function setCbaDisplayableShippingLabel(?string $cbaDisplayableShippingLabel) : self
+    public function setCbaDisplayableShippingLabel(?string $cba_displayable_shipping_label) : self
     {
-        $this->container['cbaDisplayableShippingLabel'] = $cbaDisplayableShippingLabel;
+        $this->container['cba_displayable_shipping_label'] = $cba_displayable_shipping_label;
 
         return $this;
     }
 
     /**
-     * Gets orderType.
+     * Gets order_type.
      */
     public function getOrderType() : ?string
     {
-        return $this->container['orderType'];
+        return $this->container['order_type'];
     }
 
     /**
-     * Sets orderType.
+     * Sets order_type.
      *
-     * @param null|string $orderType the type of the order
+     * @param null|string $order_type the type of the order
      */
-    public function setOrderType(?string $orderType) : self
+    public function setOrderType(?string $order_type) : self
     {
         $allowedValues = $this->getOrderTypeAllowableValues();
 
-        if (null !== $orderType && !\in_array($orderType, $allowedValues, true)) {
+        if (null !== $order_type && !\in_array($order_type, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'orderType', must be one of '%s'",
-                    $orderType,
+                    "Invalid value '%s' for 'order_type', must be one of '%s'",
+                    $order_type,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['orderType'] = $orderType;
+        $this->container['order_type'] = $order_type;
 
         return $this;
     }
 
     /**
-     * Gets earliestShipDate.
+     * Gets earliest_ship_date.
      */
     public function getEarliestShipDate() : ?string
     {
-        return $this->container['earliestShipDate'];
+        return $this->container['earliest_ship_date'];
     }
 
     /**
-     * Sets earliestShipDate.
+     * Sets earliest_ship_date.
      *
-     * @param null|string $earliestShipDate The start of the time period within which you have committed to ship the order. In ISO 8601 date time format. Returned only for seller-fulfilled orders.  Note: EarliestShipDate might not be returned for orders placed before February 1, 2013.
+     * @param null|string $earliest_ship_date The start of the time period within which you have committed to ship the order. In ISO 8601 date time format. Returned only for seller-fulfilled orders.  Note: EarliestShipDate might not be returned for orders placed before February 1, 2013.
      */
-    public function setEarliestShipDate(?string $earliestShipDate) : self
+    public function setEarliestShipDate(?string $earliest_ship_date) : self
     {
-        $this->container['earliestShipDate'] = $earliestShipDate;
+        $this->container['earliest_ship_date'] = $earliest_ship_date;
 
         return $this;
     }
 
     /**
-     * Gets latestShipDate.
+     * Gets latest_ship_date.
      */
     public function getLatestShipDate() : ?string
     {
-        return $this->container['latestShipDate'];
+        return $this->container['latest_ship_date'];
     }
 
     /**
-     * Sets latestShipDate.
+     * Sets latest_ship_date.
      *
-     * @param null|string $latestShipDate The end of the time period within which you have committed to ship the order. In ISO 8601 date time format. Returned only for seller-fulfilled orders.  Note: LatestShipDate might not be returned for orders placed before February 1, 2013.
+     * @param null|string $latest_ship_date The end of the time period within which you have committed to ship the order. In ISO 8601 date time format. Returned only for seller-fulfilled orders.  Note: LatestShipDate might not be returned for orders placed before February 1, 2013.
      */
-    public function setLatestShipDate(?string $latestShipDate) : self
+    public function setLatestShipDate(?string $latest_ship_date) : self
     {
-        $this->container['latestShipDate'] = $latestShipDate;
+        $this->container['latest_ship_date'] = $latest_ship_date;
 
         return $this;
     }
 
     /**
-     * Gets earliestDeliveryDate.
+     * Gets earliest_delivery_date.
      */
     public function getEarliestDeliveryDate() : ?string
     {
-        return $this->container['earliestDeliveryDate'];
+        return $this->container['earliest_delivery_date'];
     }
 
     /**
-     * Sets earliestDeliveryDate.
+     * Sets earliest_delivery_date.
      *
-     * @param null|string $earliestDeliveryDate The start of the time period within which you have committed to fulfill the order. In ISO 8601 date time format. Returned only for seller-fulfilled orders.
+     * @param null|string $earliest_delivery_date The start of the time period within which you have committed to fulfill the order. In ISO 8601 date time format. Returned only for seller-fulfilled orders.
      */
-    public function setEarliestDeliveryDate(?string $earliestDeliveryDate) : self
+    public function setEarliestDeliveryDate(?string $earliest_delivery_date) : self
     {
-        $this->container['earliestDeliveryDate'] = $earliestDeliveryDate;
+        $this->container['earliest_delivery_date'] = $earliest_delivery_date;
 
         return $this;
     }
 
     /**
-     * Gets latestDeliveryDate.
+     * Gets latest_delivery_date.
      */
     public function getLatestDeliveryDate() : ?string
     {
-        return $this->container['latestDeliveryDate'];
+        return $this->container['latest_delivery_date'];
     }
 
     /**
-     * Sets latestDeliveryDate.
+     * Sets latest_delivery_date.
      *
-     * @param null|string $latestDeliveryDate The end of the time period within which you have committed to fulfill the order. In ISO 8601 date time format. Returned only for seller-fulfilled orders that do not have a PendingAvailability, Pending, or Canceled status.
+     * @param null|string $latest_delivery_date The end of the time period within which you have committed to fulfill the order. In ISO 8601 date time format. Returned only for seller-fulfilled orders that do not have a PendingAvailability, Pending, or Canceled status.
      */
-    public function setLatestDeliveryDate(?string $latestDeliveryDate) : self
+    public function setLatestDeliveryDate(?string $latest_delivery_date) : self
     {
-        $this->container['latestDeliveryDate'] = $latestDeliveryDate;
+        $this->container['latest_delivery_date'] = $latest_delivery_date;
 
         return $this;
     }
 
     /**
-     * Gets isBusinessOrder.
+     * Gets is_business_order.
      */
     public function getIsBusinessOrder() : ?bool
     {
-        return $this->container['isBusinessOrder'];
+        return $this->container['is_business_order'];
     }
 
     /**
-     * Sets isBusinessOrder.
+     * Sets is_business_order.
      *
-     * @param null|bool $isBusinessOrder When true, the order is an Amazon Business order. An Amazon Business order is an order where the buyer is a Verified Business Buyer.
+     * @param null|bool $is_business_order When true, the order is an Amazon Business order. An Amazon Business order is an order where the buyer is a Verified Business Buyer.
      */
-    public function setIsBusinessOrder(?bool $isBusinessOrder) : self
+    public function setIsBusinessOrder(?bool $is_business_order) : self
     {
-        $this->container['isBusinessOrder'] = $isBusinessOrder;
+        $this->container['is_business_order'] = $is_business_order;
 
         return $this;
     }
 
     /**
-     * Gets isPrime.
+     * Gets is_prime.
      */
     public function getIsPrime() : ?bool
     {
-        return $this->container['isPrime'];
+        return $this->container['is_prime'];
     }
 
     /**
-     * Sets isPrime.
+     * Sets is_prime.
      *
-     * @param null|bool $isPrime when true, the order is a seller-fulfilled Amazon Prime order
+     * @param null|bool $is_prime when true, the order is a seller-fulfilled Amazon Prime order
      */
-    public function setIsPrime(?bool $isPrime) : self
+    public function setIsPrime(?bool $is_prime) : self
     {
-        $this->container['isPrime'] = $isPrime;
+        $this->container['is_prime'] = $is_prime;
 
         return $this;
     }
 
     /**
-     * Gets isPremiumOrder.
+     * Gets is_premium_order.
      */
     public function getIsPremiumOrder() : ?bool
     {
-        return $this->container['isPremiumOrder'];
+        return $this->container['is_premium_order'];
     }
 
     /**
-     * Sets isPremiumOrder.
+     * Sets is_premium_order.
      *
-     * @param null|bool $isPremiumOrder When true, the order has a Premium Shipping Service Level Agreement. For more information about Premium Shipping orders, see \"Premium Shipping Options\" in the Seller Central Help for your marketplace.
+     * @param null|bool $is_premium_order When true, the order has a Premium Shipping Service Level Agreement. For more information about Premium Shipping orders, see \"Premium Shipping Options\" in the Seller Central Help for your marketplace.
      */
-    public function setIsPremiumOrder(?bool $isPremiumOrder) : self
+    public function setIsPremiumOrder(?bool $is_premium_order) : self
     {
-        $this->container['isPremiumOrder'] = $isPremiumOrder;
+        $this->container['is_premium_order'] = $is_premium_order;
 
         return $this;
     }
 
     /**
-     * Gets isGlobalExpressEnabled.
+     * Gets is_global_express_enabled.
      */
     public function getIsGlobalExpressEnabled() : ?bool
     {
-        return $this->container['isGlobalExpressEnabled'];
+        return $this->container['is_global_express_enabled'];
     }
 
     /**
-     * Sets isGlobalExpressEnabled.
+     * Sets is_global_express_enabled.
      *
-     * @param null|bool $isGlobalExpressEnabled when true, the order is a GlobalExpress order
+     * @param null|bool $is_global_express_enabled when true, the order is a GlobalExpress order
      */
-    public function setIsGlobalExpressEnabled(?bool $isGlobalExpressEnabled) : self
+    public function setIsGlobalExpressEnabled(?bool $is_global_express_enabled) : self
     {
-        $this->container['isGlobalExpressEnabled'] = $isGlobalExpressEnabled;
+        $this->container['is_global_express_enabled'] = $is_global_express_enabled;
 
         return $this;
     }
 
     /**
-     * Gets replacedOrderId.
+     * Gets replaced_order_id.
      */
     public function getReplacedOrderId() : ?string
     {
-        return $this->container['replacedOrderId'];
+        return $this->container['replaced_order_id'];
     }
 
     /**
-     * Sets replacedOrderId.
+     * Sets replaced_order_id.
      *
-     * @param null|string $replacedOrderId The order ID value for the order that is being replaced. Returned only if IsReplacementOrder = true.
+     * @param null|string $replaced_order_id The order ID value for the order that is being replaced. Returned only if IsReplacementOrder = true.
      */
-    public function setReplacedOrderId(?string $replacedOrderId) : self
+    public function setReplacedOrderId(?string $replaced_order_id) : self
     {
-        $this->container['replacedOrderId'] = $replacedOrderId;
+        $this->container['replaced_order_id'] = $replaced_order_id;
 
         return $this;
     }
 
     /**
-     * Gets isReplacementOrder.
+     * Gets is_replacement_order.
      */
     public function getIsReplacementOrder() : ?bool
     {
-        return $this->container['isReplacementOrder'];
+        return $this->container['is_replacement_order'];
     }
 
     /**
-     * Sets isReplacementOrder.
+     * Sets is_replacement_order.
      *
-     * @param null|bool $isReplacementOrder when true, this is a replacement order
+     * @param null|bool $is_replacement_order when true, this is a replacement order
      */
-    public function setIsReplacementOrder(?bool $isReplacementOrder) : self
+    public function setIsReplacementOrder(?bool $is_replacement_order) : self
     {
-        $this->container['isReplacementOrder'] = $isReplacementOrder;
+        $this->container['is_replacement_order'] = $is_replacement_order;
 
         return $this;
     }
 
     /**
-     * Gets promiseResponseDueDate.
+     * Gets promise_response_due_date.
      */
     public function getPromiseResponseDueDate() : ?string
     {
-        return $this->container['promiseResponseDueDate'];
+        return $this->container['promise_response_due_date'];
     }
 
     /**
-     * Sets promiseResponseDueDate.
+     * Sets promise_response_due_date.
      *
-     * @param null|string $promiseResponseDueDate Indicates the date by which the seller must respond to the buyer with an estimated ship date. Returned only for Sourcing on Demand orders.
+     * @param null|string $promise_response_due_date Indicates the date by which the seller must respond to the buyer with an estimated ship date. Returned only for Sourcing on Demand orders.
      */
-    public function setPromiseResponseDueDate(?string $promiseResponseDueDate) : self
+    public function setPromiseResponseDueDate(?string $promise_response_due_date) : self
     {
-        $this->container['promiseResponseDueDate'] = $promiseResponseDueDate;
+        $this->container['promise_response_due_date'] = $promise_response_due_date;
 
         return $this;
     }
 
     /**
-     * Gets isEstimatedShipDateSet.
+     * Gets is_estimated_ship_date_set.
      */
     public function getIsEstimatedShipDateSet() : ?bool
     {
-        return $this->container['isEstimatedShipDateSet'];
+        return $this->container['is_estimated_ship_date_set'];
     }
 
     /**
-     * Sets isEstimatedShipDateSet.
+     * Sets is_estimated_ship_date_set.
      *
-     * @param null|bool $isEstimatedShipDateSet When true, the estimated ship date is set for the order. Returned only for Sourcing on Demand orders.
+     * @param null|bool $is_estimated_ship_date_set When true, the estimated ship date is set for the order. Returned only for Sourcing on Demand orders.
      */
-    public function setIsEstimatedShipDateSet(?bool $isEstimatedShipDateSet) : self
+    public function setIsEstimatedShipDateSet(?bool $is_estimated_ship_date_set) : self
     {
-        $this->container['isEstimatedShipDateSet'] = $isEstimatedShipDateSet;
+        $this->container['is_estimated_ship_date_set'] = $is_estimated_ship_date_set;
 
         return $this;
     }
 
     /**
-     * Gets isSoldByAB.
+     * Gets is_sold_by_ab.
      */
-    public function getIsSoldByAB() : ?bool
+    public function getIsSoldByAb() : ?bool
     {
-        return $this->container['isSoldByAB'];
+        return $this->container['is_sold_by_ab'];
     }
 
     /**
-     * Sets isSoldByAB.
+     * Sets is_sold_by_ab.
      *
-     * @param null|bool $isSoldByAB When true, the item within this order was bought and re-sold by Amazon Business EU SARL (ABEU). By buying and instantly re-selling your items, ABEU becomes the seller of record, making your inventory available for sale to customers who would not otherwise purchase from a third-party seller.
+     * @param null|bool $is_sold_by_ab When true, the item within this order was bought and re-sold by Amazon Business EU SARL (ABEU). By buying and instantly re-selling your items, ABEU becomes the seller of record, making your inventory available for sale to customers who would not otherwise purchase from a third-party seller.
      */
-    public function setIsSoldByAB(?bool $isSoldByAB) : self
+    public function setIsSoldByAb(?bool $is_sold_by_ab) : self
     {
-        $this->container['isSoldByAB'] = $isSoldByAB;
+        $this->container['is_sold_by_ab'] = $is_sold_by_ab;
 
         return $this;
     }
 
     /**
-     * Gets defaultShipFromLocationAddress.
+     * Gets default_ship_from_location_address.
      */
     public function getDefaultShipFromLocationAddress() : ?Address
     {
-        return $this->container['defaultShipFromLocationAddress'];
+        return $this->container['default_ship_from_location_address'];
     }
 
     /**
-     * Sets defaultShipFromLocationAddress.
+     * Sets default_ship_from_location_address.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Address $defaultShipFromLocationAddress defaultShipFromLocationAddress
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Address $default_ship_from_location_address default_ship_from_location_address
      */
-    public function setDefaultShipFromLocationAddress(?Address $defaultShipFromLocationAddress) : self
+    public function setDefaultShipFromLocationAddress(?Address $default_ship_from_location_address) : self
     {
-        $this->container['defaultShipFromLocationAddress'] = $defaultShipFromLocationAddress;
+        $this->container['default_ship_from_location_address'] = $default_ship_from_location_address;
 
         return $this;
     }
 
     /**
-     * Gets fulfillmentInstruction.
+     * Gets fulfillment_instruction.
      */
     public function getFulfillmentInstruction() : ?FulfillmentInstruction
     {
-        return $this->container['fulfillmentInstruction'];
+        return $this->container['fulfillment_instruction'];
     }
 
     /**
-     * Sets fulfillmentInstruction.
+     * Sets fulfillment_instruction.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\FulfillmentInstruction $fulfillmentInstruction fulfillmentInstruction
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\FulfillmentInstruction $fulfillment_instruction fulfillment_instruction
      */
-    public function setFulfillmentInstruction(?FulfillmentInstruction $fulfillmentInstruction) : self
+    public function setFulfillmentInstruction(?FulfillmentInstruction $fulfillment_instruction) : self
     {
-        $this->container['fulfillmentInstruction'] = $fulfillmentInstruction;
+        $this->container['fulfillment_instruction'] = $fulfillment_instruction;
 
         return $this;
     }
 
     /**
-     * Gets isISPU.
+     * Gets is_ispu.
      */
-    public function getIsISPU() : ?bool
+    public function getIsIspu() : ?bool
     {
-        return $this->container['isISPU'];
+        return $this->container['is_ispu'];
     }
 
     /**
-     * Sets isISPU.
+     * Sets is_ispu.
      *
-     * @param null|bool $isISPU when true, this order is marked to be picked up from a store rather than delivered
+     * @param null|bool $is_ispu when true, this order is marked to be picked up from a store rather than delivered
      */
-    public function setIsISPU(?bool $isISPU) : self
+    public function setIsIspu(?bool $is_ispu) : self
     {
-        $this->container['isISPU'] = $isISPU;
+        $this->container['is_ispu'] = $is_ispu;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/OrderAddress.php b/src/AmazonPHP/SellingPartner/Model/Orders/OrderAddress.php
index a833b928c..0e0697252 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/OrderAddress.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/OrderAddress.php
@@ -56,8 +56,8 @@ class OrderAddress implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'amazonOrderId' => 'string',
-        'shippingAddress' => '\AmazonPHP\SellingPartner\Model\Orders\Address',
+        'amazon_order_id' => 'string',
+        'shipping_address' => '\AmazonPHP\SellingPartner\Model\Orders\Address',
     ];
 
     /**
@@ -68,8 +68,8 @@ class OrderAddress implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'amazonOrderId' => null,
-        'shippingAddress' => null,
+        'amazon_order_id' => null,
+        'shipping_address' => null,
     ];
 
     /**
@@ -79,8 +79,8 @@ class OrderAddress implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'amazonOrderId' => 'AmazonOrderId',
-        'shippingAddress' => 'ShippingAddress',
+        'amazon_order_id' => 'AmazonOrderId',
+        'shipping_address' => 'ShippingAddress',
     ];
 
     /**
@@ -89,8 +89,8 @@ class OrderAddress implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'amazonOrderId' => 'setAmazonOrderId',
-        'shippingAddress' => 'setShippingAddress',
+        'amazon_order_id' => 'setAmazonOrderId',
+        'shipping_address' => 'setShippingAddress',
     ];
 
     /**
@@ -99,8 +99,8 @@ class OrderAddress implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'amazonOrderId' => 'getAmazonOrderId',
-        'shippingAddress' => 'getShippingAddress',
+        'amazon_order_id' => 'getAmazonOrderId',
+        'shipping_address' => 'getShippingAddress',
     ];
 
     /**
@@ -118,8 +118,8 @@ class OrderAddress implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['amazonOrderId'] = $data['amazonOrderId'] ?? null;
-        $this->container['shippingAddress'] = $data['shippingAddress'] ?? null;
+        $this->container['amazon_order_id'] = $data['amazon_order_id'] ?? null;
+        $this->container['shipping_address'] = $data['shipping_address'] ?? null;
     }
 
     /**
@@ -201,8 +201,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['amazonOrderId'] === null) {
-            $invalidProperties[] = "'amazonOrderId' can't be null";
+        if ($this->container['amazon_order_id'] === null) {
+            $invalidProperties[] = "'amazon_order_id' can't be null";
         }
 
         return $invalidProperties;
@@ -220,41 +220,41 @@ public function valid() : bool
     }
 
     /**
-     * Gets amazonOrderId.
+     * Gets amazon_order_id.
      */
     public function getAmazonOrderId() : string
     {
-        return $this->container['amazonOrderId'];
+        return $this->container['amazon_order_id'];
     }
 
     /**
-     * Sets amazonOrderId.
+     * Sets amazon_order_id.
      *
-     * @param string $amazonOrderId an Amazon-defined order identifier, in 3-7-7 format
+     * @param string $amazon_order_id an Amazon-defined order identifier, in 3-7-7 format
      */
-    public function setAmazonOrderId(string $amazonOrderId) : self
+    public function setAmazonOrderId(string $amazon_order_id) : self
     {
-        $this->container['amazonOrderId'] = $amazonOrderId;
+        $this->container['amazon_order_id'] = $amazon_order_id;
 
         return $this;
     }
 
     /**
-     * Gets shippingAddress.
+     * Gets shipping_address.
      */
     public function getShippingAddress() : ?Address
     {
-        return $this->container['shippingAddress'];
+        return $this->container['shipping_address'];
     }
 
     /**
-     * Sets shippingAddress.
+     * Sets shipping_address.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Address $shippingAddress shippingAddress
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Address $shipping_address shipping_address
      */
-    public function setShippingAddress(?Address $shippingAddress) : self
+    public function setShippingAddress(?Address $shipping_address) : self
     {
-        $this->container['shippingAddress'] = $shippingAddress;
+        $this->container['shipping_address'] = $shipping_address;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/OrderBuyerInfo.php b/src/AmazonPHP/SellingPartner/Model/Orders/OrderBuyerInfo.php
index 4a7eed57f..32f6c45cf 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/OrderBuyerInfo.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/OrderBuyerInfo.php
@@ -56,12 +56,12 @@ class OrderBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'amazonOrderId' => 'string',
-        'buyerEmail' => 'string',
-        'buyerName' => 'string',
-        'buyerCounty' => 'string',
-        'buyerTaxInfo' => '\AmazonPHP\SellingPartner\Model\Orders\BuyerTaxInfo',
-        'purchaseOrderNumber' => 'string',
+        'amazon_order_id' => 'string',
+        'buyer_email' => 'string',
+        'buyer_name' => 'string',
+        'buyer_county' => 'string',
+        'buyer_tax_info' => '\AmazonPHP\SellingPartner\Model\Orders\BuyerTaxInfo',
+        'purchase_order_number' => 'string',
     ];
 
     /**
@@ -72,12 +72,12 @@ class OrderBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'amazonOrderId' => null,
-        'buyerEmail' => null,
-        'buyerName' => null,
-        'buyerCounty' => null,
-        'buyerTaxInfo' => null,
-        'purchaseOrderNumber' => null,
+        'amazon_order_id' => null,
+        'buyer_email' => null,
+        'buyer_name' => null,
+        'buyer_county' => null,
+        'buyer_tax_info' => null,
+        'purchase_order_number' => null,
     ];
 
     /**
@@ -87,12 +87,12 @@ class OrderBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'amazonOrderId' => 'AmazonOrderId',
-        'buyerEmail' => 'BuyerEmail',
-        'buyerName' => 'BuyerName',
-        'buyerCounty' => 'BuyerCounty',
-        'buyerTaxInfo' => 'BuyerTaxInfo',
-        'purchaseOrderNumber' => 'PurchaseOrderNumber',
+        'amazon_order_id' => 'AmazonOrderId',
+        'buyer_email' => 'BuyerEmail',
+        'buyer_name' => 'BuyerName',
+        'buyer_county' => 'BuyerCounty',
+        'buyer_tax_info' => 'BuyerTaxInfo',
+        'purchase_order_number' => 'PurchaseOrderNumber',
     ];
 
     /**
@@ -101,12 +101,12 @@ class OrderBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'amazonOrderId' => 'setAmazonOrderId',
-        'buyerEmail' => 'setBuyerEmail',
-        'buyerName' => 'setBuyerName',
-        'buyerCounty' => 'setBuyerCounty',
-        'buyerTaxInfo' => 'setBuyerTaxInfo',
-        'purchaseOrderNumber' => 'setPurchaseOrderNumber',
+        'amazon_order_id' => 'setAmazonOrderId',
+        'buyer_email' => 'setBuyerEmail',
+        'buyer_name' => 'setBuyerName',
+        'buyer_county' => 'setBuyerCounty',
+        'buyer_tax_info' => 'setBuyerTaxInfo',
+        'purchase_order_number' => 'setPurchaseOrderNumber',
     ];
 
     /**
@@ -115,12 +115,12 @@ class OrderBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'amazonOrderId' => 'getAmazonOrderId',
-        'buyerEmail' => 'getBuyerEmail',
-        'buyerName' => 'getBuyerName',
-        'buyerCounty' => 'getBuyerCounty',
-        'buyerTaxInfo' => 'getBuyerTaxInfo',
-        'purchaseOrderNumber' => 'getPurchaseOrderNumber',
+        'amazon_order_id' => 'getAmazonOrderId',
+        'buyer_email' => 'getBuyerEmail',
+        'buyer_name' => 'getBuyerName',
+        'buyer_county' => 'getBuyerCounty',
+        'buyer_tax_info' => 'getBuyerTaxInfo',
+        'purchase_order_number' => 'getPurchaseOrderNumber',
     ];
 
     /**
@@ -138,12 +138,12 @@ class OrderBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['amazonOrderId'] = $data['amazonOrderId'] ?? null;
-        $this->container['buyerEmail'] = $data['buyerEmail'] ?? null;
-        $this->container['buyerName'] = $data['buyerName'] ?? null;
-        $this->container['buyerCounty'] = $data['buyerCounty'] ?? null;
-        $this->container['buyerTaxInfo'] = $data['buyerTaxInfo'] ?? null;
-        $this->container['purchaseOrderNumber'] = $data['purchaseOrderNumber'] ?? null;
+        $this->container['amazon_order_id'] = $data['amazon_order_id'] ?? null;
+        $this->container['buyer_email'] = $data['buyer_email'] ?? null;
+        $this->container['buyer_name'] = $data['buyer_name'] ?? null;
+        $this->container['buyer_county'] = $data['buyer_county'] ?? null;
+        $this->container['buyer_tax_info'] = $data['buyer_tax_info'] ?? null;
+        $this->container['purchase_order_number'] = $data['purchase_order_number'] ?? null;
     }
 
     /**
@@ -225,8 +225,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['amazonOrderId'] === null) {
-            $invalidProperties[] = "'amazonOrderId' can't be null";
+        if ($this->container['amazon_order_id'] === null) {
+            $invalidProperties[] = "'amazon_order_id' can't be null";
         }
 
         return $invalidProperties;
@@ -244,121 +244,121 @@ public function valid() : bool
     }
 
     /**
-     * Gets amazonOrderId.
+     * Gets amazon_order_id.
      */
     public function getAmazonOrderId() : string
     {
-        return $this->container['amazonOrderId'];
+        return $this->container['amazon_order_id'];
     }
 
     /**
-     * Sets amazonOrderId.
+     * Sets amazon_order_id.
      *
-     * @param string $amazonOrderId an Amazon-defined order identifier, in 3-7-7 format
+     * @param string $amazon_order_id an Amazon-defined order identifier, in 3-7-7 format
      */
-    public function setAmazonOrderId(string $amazonOrderId) : self
+    public function setAmazonOrderId(string $amazon_order_id) : self
     {
-        $this->container['amazonOrderId'] = $amazonOrderId;
+        $this->container['amazon_order_id'] = $amazon_order_id;
 
         return $this;
     }
 
     /**
-     * Gets buyerEmail.
+     * Gets buyer_email.
      */
     public function getBuyerEmail() : ?string
     {
-        return $this->container['buyerEmail'];
+        return $this->container['buyer_email'];
     }
 
     /**
-     * Sets buyerEmail.
+     * Sets buyer_email.
      *
-     * @param null|string $buyerEmail the anonymized email address of the buyer
+     * @param null|string $buyer_email the anonymized email address of the buyer
      */
-    public function setBuyerEmail(?string $buyerEmail) : self
+    public function setBuyerEmail(?string $buyer_email) : self
     {
-        $this->container['buyerEmail'] = $buyerEmail;
+        $this->container['buyer_email'] = $buyer_email;
 
         return $this;
     }
 
     /**
-     * Gets buyerName.
+     * Gets buyer_name.
      */
     public function getBuyerName() : ?string
     {
-        return $this->container['buyerName'];
+        return $this->container['buyer_name'];
     }
 
     /**
-     * Sets buyerName.
+     * Sets buyer_name.
      *
-     * @param null|string $buyerName the name of the buyer
+     * @param null|string $buyer_name the name of the buyer
      */
-    public function setBuyerName(?string $buyerName) : self
+    public function setBuyerName(?string $buyer_name) : self
     {
-        $this->container['buyerName'] = $buyerName;
+        $this->container['buyer_name'] = $buyer_name;
 
         return $this;
     }
 
     /**
-     * Gets buyerCounty.
+     * Gets buyer_county.
      */
     public function getBuyerCounty() : ?string
     {
-        return $this->container['buyerCounty'];
+        return $this->container['buyer_county'];
     }
 
     /**
-     * Sets buyerCounty.
+     * Sets buyer_county.
      *
-     * @param null|string $buyerCounty the county of the buyer
+     * @param null|string $buyer_county the county of the buyer
      */
-    public function setBuyerCounty(?string $buyerCounty) : self
+    public function setBuyerCounty(?string $buyer_county) : self
     {
-        $this->container['buyerCounty'] = $buyerCounty;
+        $this->container['buyer_county'] = $buyer_county;
 
         return $this;
     }
 
     /**
-     * Gets buyerTaxInfo.
+     * Gets buyer_tax_info.
      */
     public function getBuyerTaxInfo() : ?BuyerTaxInfo
     {
-        return $this->container['buyerTaxInfo'];
+        return $this->container['buyer_tax_info'];
     }
 
     /**
-     * Sets buyerTaxInfo.
+     * Sets buyer_tax_info.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\BuyerTaxInfo $buyerTaxInfo buyerTaxInfo
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\BuyerTaxInfo $buyer_tax_info buyer_tax_info
      */
-    public function setBuyerTaxInfo(?BuyerTaxInfo $buyerTaxInfo) : self
+    public function setBuyerTaxInfo(?BuyerTaxInfo $buyer_tax_info) : self
     {
-        $this->container['buyerTaxInfo'] = $buyerTaxInfo;
+        $this->container['buyer_tax_info'] = $buyer_tax_info;
 
         return $this;
     }
 
     /**
-     * Gets purchaseOrderNumber.
+     * Gets purchase_order_number.
      */
     public function getPurchaseOrderNumber() : ?string
     {
-        return $this->container['purchaseOrderNumber'];
+        return $this->container['purchase_order_number'];
     }
 
     /**
-     * Sets purchaseOrderNumber.
+     * Sets purchase_order_number.
      *
-     * @param null|string $purchaseOrderNumber The purchase order (PO) number entered by the buyer at checkout. Returned only for orders where the buyer entered a PO number at checkout.
+     * @param null|string $purchase_order_number The purchase order (PO) number entered by the buyer at checkout. Returned only for orders where the buyer entered a PO number at checkout.
      */
-    public function setPurchaseOrderNumber(?string $purchaseOrderNumber) : self
+    public function setPurchaseOrderNumber(?string $purchase_order_number) : self
     {
-        $this->container['purchaseOrderNumber'] = $purchaseOrderNumber;
+        $this->container['purchase_order_number'] = $purchase_order_number;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/OrderItem.php b/src/AmazonPHP/SellingPartner/Model/Orders/OrderItem.php
index 5ddbc2dfb..1da3afdce 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/OrderItem.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/OrderItem.php
@@ -60,38 +60,38 @@ class OrderItem implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'aSIN' => 'string',
-        'sellerSKU' => 'string',
-        'orderItemId' => 'string',
+        'asin' => 'string',
+        'seller_sku' => 'string',
+        'order_item_id' => 'string',
         'title' => 'string',
-        'quantityOrdered' => 'int',
-        'quantityShipped' => 'int',
-        'productInfo' => '\AmazonPHP\SellingPartner\Model\Orders\ProductInfoDetail',
-        'pointsGranted' => '\AmazonPHP\SellingPartner\Model\Orders\PointsGrantedDetail',
-        'itemPrice' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'shippingPrice' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'itemTax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'shippingTax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'shippingDiscount' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'shippingDiscountTax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'promotionDiscount' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'promotionDiscountTax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'promotionIds' => 'string[]',
-        'cODFee' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'cODFeeDiscount' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'isGift' => 'bool',
-        'conditionNote' => 'string',
-        'conditionId' => 'string',
-        'conditionSubtypeId' => 'string',
-        'scheduledDeliveryStartDate' => 'string',
-        'scheduledDeliveryEndDate' => 'string',
-        'priceDesignation' => 'string',
-        'taxCollection' => '\AmazonPHP\SellingPartner\Model\Orders\TaxCollection',
-        'serialNumberRequired' => 'bool',
-        'isTransparency' => 'bool',
-        'iossNumber' => 'string',
-        'storeChainStoreId' => 'string',
-        'deemedResellerCategory' => 'string',
+        'quantity_ordered' => 'int',
+        'quantity_shipped' => 'int',
+        'product_info' => '\AmazonPHP\SellingPartner\Model\Orders\ProductInfoDetail',
+        'points_granted' => '\AmazonPHP\SellingPartner\Model\Orders\PointsGrantedDetail',
+        'item_price' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'shipping_price' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'item_tax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'shipping_tax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'shipping_discount' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'shipping_discount_tax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'promotion_discount' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'promotion_discount_tax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'promotion_ids' => 'string[]',
+        'cod_fee' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'cod_fee_discount' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'is_gift' => 'bool',
+        'condition_note' => 'string',
+        'condition_id' => 'string',
+        'condition_subtype_id' => 'string',
+        'scheduled_delivery_start_date' => 'string',
+        'scheduled_delivery_end_date' => 'string',
+        'price_designation' => 'string',
+        'tax_collection' => '\AmazonPHP\SellingPartner\Model\Orders\TaxCollection',
+        'serial_number_required' => 'bool',
+        'is_transparency' => 'bool',
+        'ioss_number' => 'string',
+        'store_chain_store_id' => 'string',
+        'deemed_reseller_category' => 'string',
     ];
 
     /**
@@ -102,38 +102,38 @@ class OrderItem implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'aSIN' => null,
-        'sellerSKU' => null,
-        'orderItemId' => null,
+        'asin' => null,
+        'seller_sku' => null,
+        'order_item_id' => null,
         'title' => null,
-        'quantityOrdered' => null,
-        'quantityShipped' => null,
-        'productInfo' => null,
-        'pointsGranted' => null,
-        'itemPrice' => null,
-        'shippingPrice' => null,
-        'itemTax' => null,
-        'shippingTax' => null,
-        'shippingDiscount' => null,
-        'shippingDiscountTax' => null,
-        'promotionDiscount' => null,
-        'promotionDiscountTax' => null,
-        'promotionIds' => null,
-        'cODFee' => null,
-        'cODFeeDiscount' => null,
-        'isGift' => null,
-        'conditionNote' => null,
-        'conditionId' => null,
-        'conditionSubtypeId' => null,
-        'scheduledDeliveryStartDate' => null,
-        'scheduledDeliveryEndDate' => null,
-        'priceDesignation' => null,
-        'taxCollection' => null,
-        'serialNumberRequired' => null,
-        'isTransparency' => null,
-        'iossNumber' => null,
-        'storeChainStoreId' => null,
-        'deemedResellerCategory' => null,
+        'quantity_ordered' => null,
+        'quantity_shipped' => null,
+        'product_info' => null,
+        'points_granted' => null,
+        'item_price' => null,
+        'shipping_price' => null,
+        'item_tax' => null,
+        'shipping_tax' => null,
+        'shipping_discount' => null,
+        'shipping_discount_tax' => null,
+        'promotion_discount' => null,
+        'promotion_discount_tax' => null,
+        'promotion_ids' => null,
+        'cod_fee' => null,
+        'cod_fee_discount' => null,
+        'is_gift' => null,
+        'condition_note' => null,
+        'condition_id' => null,
+        'condition_subtype_id' => null,
+        'scheduled_delivery_start_date' => null,
+        'scheduled_delivery_end_date' => null,
+        'price_designation' => null,
+        'tax_collection' => null,
+        'serial_number_required' => null,
+        'is_transparency' => null,
+        'ioss_number' => null,
+        'store_chain_store_id' => null,
+        'deemed_reseller_category' => null,
     ];
 
     /**
@@ -143,38 +143,38 @@ class OrderItem implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'aSIN' => 'ASIN',
-        'sellerSKU' => 'SellerSKU',
-        'orderItemId' => 'OrderItemId',
+        'asin' => 'ASIN',
+        'seller_sku' => 'SellerSKU',
+        'order_item_id' => 'OrderItemId',
         'title' => 'Title',
-        'quantityOrdered' => 'QuantityOrdered',
-        'quantityShipped' => 'QuantityShipped',
-        'productInfo' => 'ProductInfo',
-        'pointsGranted' => 'PointsGranted',
-        'itemPrice' => 'ItemPrice',
-        'shippingPrice' => 'ShippingPrice',
-        'itemTax' => 'ItemTax',
-        'shippingTax' => 'ShippingTax',
-        'shippingDiscount' => 'ShippingDiscount',
-        'shippingDiscountTax' => 'ShippingDiscountTax',
-        'promotionDiscount' => 'PromotionDiscount',
-        'promotionDiscountTax' => 'PromotionDiscountTax',
-        'promotionIds' => 'PromotionIds',
-        'cODFee' => 'CODFee',
-        'cODFeeDiscount' => 'CODFeeDiscount',
-        'isGift' => 'IsGift',
-        'conditionNote' => 'ConditionNote',
-        'conditionId' => 'ConditionId',
-        'conditionSubtypeId' => 'ConditionSubtypeId',
-        'scheduledDeliveryStartDate' => 'ScheduledDeliveryStartDate',
-        'scheduledDeliveryEndDate' => 'ScheduledDeliveryEndDate',
-        'priceDesignation' => 'PriceDesignation',
-        'taxCollection' => 'TaxCollection',
-        'serialNumberRequired' => 'SerialNumberRequired',
-        'isTransparency' => 'IsTransparency',
-        'iossNumber' => 'IossNumber',
-        'storeChainStoreId' => 'StoreChainStoreId',
-        'deemedResellerCategory' => 'DeemedResellerCategory',
+        'quantity_ordered' => 'QuantityOrdered',
+        'quantity_shipped' => 'QuantityShipped',
+        'product_info' => 'ProductInfo',
+        'points_granted' => 'PointsGranted',
+        'item_price' => 'ItemPrice',
+        'shipping_price' => 'ShippingPrice',
+        'item_tax' => 'ItemTax',
+        'shipping_tax' => 'ShippingTax',
+        'shipping_discount' => 'ShippingDiscount',
+        'shipping_discount_tax' => 'ShippingDiscountTax',
+        'promotion_discount' => 'PromotionDiscount',
+        'promotion_discount_tax' => 'PromotionDiscountTax',
+        'promotion_ids' => 'PromotionIds',
+        'cod_fee' => 'CODFee',
+        'cod_fee_discount' => 'CODFeeDiscount',
+        'is_gift' => 'IsGift',
+        'condition_note' => 'ConditionNote',
+        'condition_id' => 'ConditionId',
+        'condition_subtype_id' => 'ConditionSubtypeId',
+        'scheduled_delivery_start_date' => 'ScheduledDeliveryStartDate',
+        'scheduled_delivery_end_date' => 'ScheduledDeliveryEndDate',
+        'price_designation' => 'PriceDesignation',
+        'tax_collection' => 'TaxCollection',
+        'serial_number_required' => 'SerialNumberRequired',
+        'is_transparency' => 'IsTransparency',
+        'ioss_number' => 'IossNumber',
+        'store_chain_store_id' => 'StoreChainStoreId',
+        'deemed_reseller_category' => 'DeemedResellerCategory',
     ];
 
     /**
@@ -183,38 +183,38 @@ class OrderItem implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'aSIN' => 'setASIN',
-        'sellerSKU' => 'setSellerSKU',
-        'orderItemId' => 'setOrderItemId',
+        'asin' => 'setAsin',
+        'seller_sku' => 'setSellerSku',
+        'order_item_id' => 'setOrderItemId',
         'title' => 'setTitle',
-        'quantityOrdered' => 'setQuantityOrdered',
-        'quantityShipped' => 'setQuantityShipped',
-        'productInfo' => 'setProductInfo',
-        'pointsGranted' => 'setPointsGranted',
-        'itemPrice' => 'setItemPrice',
-        'shippingPrice' => 'setShippingPrice',
-        'itemTax' => 'setItemTax',
-        'shippingTax' => 'setShippingTax',
-        'shippingDiscount' => 'setShippingDiscount',
-        'shippingDiscountTax' => 'setShippingDiscountTax',
-        'promotionDiscount' => 'setPromotionDiscount',
-        'promotionDiscountTax' => 'setPromotionDiscountTax',
-        'promotionIds' => 'setPromotionIds',
-        'cODFee' => 'setCODFee',
-        'cODFeeDiscount' => 'setCODFeeDiscount',
-        'isGift' => 'setIsGift',
-        'conditionNote' => 'setConditionNote',
-        'conditionId' => 'setConditionId',
-        'conditionSubtypeId' => 'setConditionSubtypeId',
-        'scheduledDeliveryStartDate' => 'setScheduledDeliveryStartDate',
-        'scheduledDeliveryEndDate' => 'setScheduledDeliveryEndDate',
-        'priceDesignation' => 'setPriceDesignation',
-        'taxCollection' => 'setTaxCollection',
-        'serialNumberRequired' => 'setSerialNumberRequired',
-        'isTransparency' => 'setIsTransparency',
-        'iossNumber' => 'setIossNumber',
-        'storeChainStoreId' => 'setStoreChainStoreId',
-        'deemedResellerCategory' => 'setDeemedResellerCategory',
+        'quantity_ordered' => 'setQuantityOrdered',
+        'quantity_shipped' => 'setQuantityShipped',
+        'product_info' => 'setProductInfo',
+        'points_granted' => 'setPointsGranted',
+        'item_price' => 'setItemPrice',
+        'shipping_price' => 'setShippingPrice',
+        'item_tax' => 'setItemTax',
+        'shipping_tax' => 'setShippingTax',
+        'shipping_discount' => 'setShippingDiscount',
+        'shipping_discount_tax' => 'setShippingDiscountTax',
+        'promotion_discount' => 'setPromotionDiscount',
+        'promotion_discount_tax' => 'setPromotionDiscountTax',
+        'promotion_ids' => 'setPromotionIds',
+        'cod_fee' => 'setCodFee',
+        'cod_fee_discount' => 'setCodFeeDiscount',
+        'is_gift' => 'setIsGift',
+        'condition_note' => 'setConditionNote',
+        'condition_id' => 'setConditionId',
+        'condition_subtype_id' => 'setConditionSubtypeId',
+        'scheduled_delivery_start_date' => 'setScheduledDeliveryStartDate',
+        'scheduled_delivery_end_date' => 'setScheduledDeliveryEndDate',
+        'price_designation' => 'setPriceDesignation',
+        'tax_collection' => 'setTaxCollection',
+        'serial_number_required' => 'setSerialNumberRequired',
+        'is_transparency' => 'setIsTransparency',
+        'ioss_number' => 'setIossNumber',
+        'store_chain_store_id' => 'setStoreChainStoreId',
+        'deemed_reseller_category' => 'setDeemedResellerCategory',
     ];
 
     /**
@@ -223,38 +223,38 @@ class OrderItem implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'aSIN' => 'getASIN',
-        'sellerSKU' => 'getSellerSKU',
-        'orderItemId' => 'getOrderItemId',
+        'asin' => 'getAsin',
+        'seller_sku' => 'getSellerSku',
+        'order_item_id' => 'getOrderItemId',
         'title' => 'getTitle',
-        'quantityOrdered' => 'getQuantityOrdered',
-        'quantityShipped' => 'getQuantityShipped',
-        'productInfo' => 'getProductInfo',
-        'pointsGranted' => 'getPointsGranted',
-        'itemPrice' => 'getItemPrice',
-        'shippingPrice' => 'getShippingPrice',
-        'itemTax' => 'getItemTax',
-        'shippingTax' => 'getShippingTax',
-        'shippingDiscount' => 'getShippingDiscount',
-        'shippingDiscountTax' => 'getShippingDiscountTax',
-        'promotionDiscount' => 'getPromotionDiscount',
-        'promotionDiscountTax' => 'getPromotionDiscountTax',
-        'promotionIds' => 'getPromotionIds',
-        'cODFee' => 'getCODFee',
-        'cODFeeDiscount' => 'getCODFeeDiscount',
-        'isGift' => 'getIsGift',
-        'conditionNote' => 'getConditionNote',
-        'conditionId' => 'getConditionId',
-        'conditionSubtypeId' => 'getConditionSubtypeId',
-        'scheduledDeliveryStartDate' => 'getScheduledDeliveryStartDate',
-        'scheduledDeliveryEndDate' => 'getScheduledDeliveryEndDate',
-        'priceDesignation' => 'getPriceDesignation',
-        'taxCollection' => 'getTaxCollection',
-        'serialNumberRequired' => 'getSerialNumberRequired',
-        'isTransparency' => 'getIsTransparency',
-        'iossNumber' => 'getIossNumber',
-        'storeChainStoreId' => 'getStoreChainStoreId',
-        'deemedResellerCategory' => 'getDeemedResellerCategory',
+        'quantity_ordered' => 'getQuantityOrdered',
+        'quantity_shipped' => 'getQuantityShipped',
+        'product_info' => 'getProductInfo',
+        'points_granted' => 'getPointsGranted',
+        'item_price' => 'getItemPrice',
+        'shipping_price' => 'getShippingPrice',
+        'item_tax' => 'getItemTax',
+        'shipping_tax' => 'getShippingTax',
+        'shipping_discount' => 'getShippingDiscount',
+        'shipping_discount_tax' => 'getShippingDiscountTax',
+        'promotion_discount' => 'getPromotionDiscount',
+        'promotion_discount_tax' => 'getPromotionDiscountTax',
+        'promotion_ids' => 'getPromotionIds',
+        'cod_fee' => 'getCodFee',
+        'cod_fee_discount' => 'getCodFeeDiscount',
+        'is_gift' => 'getIsGift',
+        'condition_note' => 'getConditionNote',
+        'condition_id' => 'getConditionId',
+        'condition_subtype_id' => 'getConditionSubtypeId',
+        'scheduled_delivery_start_date' => 'getScheduledDeliveryStartDate',
+        'scheduled_delivery_end_date' => 'getScheduledDeliveryEndDate',
+        'price_designation' => 'getPriceDesignation',
+        'tax_collection' => 'getTaxCollection',
+        'serial_number_required' => 'getSerialNumberRequired',
+        'is_transparency' => 'getIsTransparency',
+        'ioss_number' => 'getIossNumber',
+        'store_chain_store_id' => 'getStoreChainStoreId',
+        'deemed_reseller_category' => 'getDeemedResellerCategory',
     ];
 
     /**
@@ -272,38 +272,38 @@ class OrderItem implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['aSIN'] = $data['aSIN'] ?? null;
-        $this->container['sellerSKU'] = $data['sellerSKU'] ?? null;
-        $this->container['orderItemId'] = $data['orderItemId'] ?? null;
+        $this->container['asin'] = $data['asin'] ?? null;
+        $this->container['seller_sku'] = $data['seller_sku'] ?? null;
+        $this->container['order_item_id'] = $data['order_item_id'] ?? null;
         $this->container['title'] = $data['title'] ?? null;
-        $this->container['quantityOrdered'] = $data['quantityOrdered'] ?? null;
-        $this->container['quantityShipped'] = $data['quantityShipped'] ?? null;
-        $this->container['productInfo'] = $data['productInfo'] ?? null;
-        $this->container['pointsGranted'] = $data['pointsGranted'] ?? null;
-        $this->container['itemPrice'] = $data['itemPrice'] ?? null;
-        $this->container['shippingPrice'] = $data['shippingPrice'] ?? null;
-        $this->container['itemTax'] = $data['itemTax'] ?? null;
-        $this->container['shippingTax'] = $data['shippingTax'] ?? null;
-        $this->container['shippingDiscount'] = $data['shippingDiscount'] ?? null;
-        $this->container['shippingDiscountTax'] = $data['shippingDiscountTax'] ?? null;
-        $this->container['promotionDiscount'] = $data['promotionDiscount'] ?? null;
-        $this->container['promotionDiscountTax'] = $data['promotionDiscountTax'] ?? null;
-        $this->container['promotionIds'] = $data['promotionIds'] ?? null;
-        $this->container['cODFee'] = $data['cODFee'] ?? null;
-        $this->container['cODFeeDiscount'] = $data['cODFeeDiscount'] ?? null;
-        $this->container['isGift'] = $data['isGift'] ?? null;
-        $this->container['conditionNote'] = $data['conditionNote'] ?? null;
-        $this->container['conditionId'] = $data['conditionId'] ?? null;
-        $this->container['conditionSubtypeId'] = $data['conditionSubtypeId'] ?? null;
-        $this->container['scheduledDeliveryStartDate'] = $data['scheduledDeliveryStartDate'] ?? null;
-        $this->container['scheduledDeliveryEndDate'] = $data['scheduledDeliveryEndDate'] ?? null;
-        $this->container['priceDesignation'] = $data['priceDesignation'] ?? null;
-        $this->container['taxCollection'] = $data['taxCollection'] ?? null;
-        $this->container['serialNumberRequired'] = $data['serialNumberRequired'] ?? null;
-        $this->container['isTransparency'] = $data['isTransparency'] ?? null;
-        $this->container['iossNumber'] = $data['iossNumber'] ?? null;
-        $this->container['storeChainStoreId'] = $data['storeChainStoreId'] ?? null;
-        $this->container['deemedResellerCategory'] = $data['deemedResellerCategory'] ?? null;
+        $this->container['quantity_ordered'] = $data['quantity_ordered'] ?? null;
+        $this->container['quantity_shipped'] = $data['quantity_shipped'] ?? null;
+        $this->container['product_info'] = $data['product_info'] ?? null;
+        $this->container['points_granted'] = $data['points_granted'] ?? null;
+        $this->container['item_price'] = $data['item_price'] ?? null;
+        $this->container['shipping_price'] = $data['shipping_price'] ?? null;
+        $this->container['item_tax'] = $data['item_tax'] ?? null;
+        $this->container['shipping_tax'] = $data['shipping_tax'] ?? null;
+        $this->container['shipping_discount'] = $data['shipping_discount'] ?? null;
+        $this->container['shipping_discount_tax'] = $data['shipping_discount_tax'] ?? null;
+        $this->container['promotion_discount'] = $data['promotion_discount'] ?? null;
+        $this->container['promotion_discount_tax'] = $data['promotion_discount_tax'] ?? null;
+        $this->container['promotion_ids'] = $data['promotion_ids'] ?? null;
+        $this->container['cod_fee'] = $data['cod_fee'] ?? null;
+        $this->container['cod_fee_discount'] = $data['cod_fee_discount'] ?? null;
+        $this->container['is_gift'] = $data['is_gift'] ?? null;
+        $this->container['condition_note'] = $data['condition_note'] ?? null;
+        $this->container['condition_id'] = $data['condition_id'] ?? null;
+        $this->container['condition_subtype_id'] = $data['condition_subtype_id'] ?? null;
+        $this->container['scheduled_delivery_start_date'] = $data['scheduled_delivery_start_date'] ?? null;
+        $this->container['scheduled_delivery_end_date'] = $data['scheduled_delivery_end_date'] ?? null;
+        $this->container['price_designation'] = $data['price_designation'] ?? null;
+        $this->container['tax_collection'] = $data['tax_collection'] ?? null;
+        $this->container['serial_number_required'] = $data['serial_number_required'] ?? null;
+        $this->container['is_transparency'] = $data['is_transparency'] ?? null;
+        $this->container['ioss_number'] = $data['ioss_number'] ?? null;
+        $this->container['store_chain_store_id'] = $data['store_chain_store_id'] ?? null;
+        $this->container['deemed_reseller_category'] = $data['deemed_reseller_category'] ?? null;
     }
 
     /**
@@ -398,23 +398,23 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['aSIN'] === null) {
-            $invalidProperties[] = "'aSIN' can't be null";
+        if ($this->container['asin'] === null) {
+            $invalidProperties[] = "'asin' can't be null";
         }
 
-        if ($this->container['orderItemId'] === null) {
-            $invalidProperties[] = "'orderItemId' can't be null";
+        if ($this->container['order_item_id'] === null) {
+            $invalidProperties[] = "'order_item_id' can't be null";
         }
 
-        if ($this->container['quantityOrdered'] === null) {
-            $invalidProperties[] = "'quantityOrdered' can't be null";
+        if ($this->container['quantity_ordered'] === null) {
+            $invalidProperties[] = "'quantity_ordered' can't be null";
         }
         $allowedValues = $this->getDeemedResellerCategoryAllowableValues();
 
-        if (null !== $this->container['deemedResellerCategory'] && !\in_array($this->container['deemedResellerCategory'], $allowedValues, true)) {
+        if (null !== $this->container['deemed_reseller_category'] && !\in_array($this->container['deemed_reseller_category'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'deemedResellerCategory', must be one of '%s'",
-                $this->container['deemedResellerCategory'],
+                "invalid value '%s' for 'deemed_reseller_category', must be one of '%s'",
+                $this->container['deemed_reseller_category'],
                 \implode("', '", $allowedValues)
             );
         }
@@ -434,61 +434,61 @@ public function valid() : bool
     }
 
     /**
-     * Gets aSIN.
+     * Gets asin.
      */
-    public function getASIN() : string
+    public function getAsin() : string
     {
-        return $this->container['aSIN'];
+        return $this->container['asin'];
     }
 
     /**
-     * Sets aSIN.
+     * Sets asin.
      *
-     * @param string $aSIN the Amazon Standard Identification Number (ASIN) of the item
+     * @param string $asin the Amazon Standard Identification Number (ASIN) of the item
      */
-    public function setASIN(string $aSIN) : self
+    public function setAsin(string $asin) : self
     {
-        $this->container['aSIN'] = $aSIN;
+        $this->container['asin'] = $asin;
 
         return $this;
     }
 
     /**
-     * Gets sellerSKU.
+     * Gets seller_sku.
      */
-    public function getSellerSKU() : ?string
+    public function getSellerSku() : ?string
     {
-        return $this->container['sellerSKU'];
+        return $this->container['seller_sku'];
     }
 
     /**
-     * Sets sellerSKU.
+     * Sets seller_sku.
      *
-     * @param null|string $sellerSKU the seller stock keeping unit (SKU) of the item
+     * @param null|string $seller_sku the seller stock keeping unit (SKU) of the item
      */
-    public function setSellerSKU(?string $sellerSKU) : self
+    public function setSellerSku(?string $seller_sku) : self
     {
-        $this->container['sellerSKU'] = $sellerSKU;
+        $this->container['seller_sku'] = $seller_sku;
 
         return $this;
     }
 
     /**
-     * Gets orderItemId.
+     * Gets order_item_id.
      */
     public function getOrderItemId() : string
     {
-        return $this->container['orderItemId'];
+        return $this->container['order_item_id'];
     }
 
     /**
-     * Sets orderItemId.
+     * Sets order_item_id.
      *
-     * @param string $orderItemId an Amazon-defined order item identifier
+     * @param string $order_item_id an Amazon-defined order item identifier
      */
-    public function setOrderItemId(string $orderItemId) : self
+    public function setOrderItemId(string $order_item_id) : self
     {
-        $this->container['orderItemId'] = $orderItemId;
+        $this->container['order_item_id'] = $order_item_id;
 
         return $this;
     }
@@ -514,574 +514,574 @@ public function setTitle(?string $title) : self
     }
 
     /**
-     * Gets quantityOrdered.
+     * Gets quantity_ordered.
      */
     public function getQuantityOrdered() : int
     {
-        return $this->container['quantityOrdered'];
+        return $this->container['quantity_ordered'];
     }
 
     /**
-     * Sets quantityOrdered.
+     * Sets quantity_ordered.
      *
-     * @param int $quantityOrdered the number of items in the order
+     * @param int $quantity_ordered the number of items in the order
      */
-    public function setQuantityOrdered(int $quantityOrdered) : self
+    public function setQuantityOrdered(int $quantity_ordered) : self
     {
-        $this->container['quantityOrdered'] = $quantityOrdered;
+        $this->container['quantity_ordered'] = $quantity_ordered;
 
         return $this;
     }
 
     /**
-     * Gets quantityShipped.
+     * Gets quantity_shipped.
      */
     public function getQuantityShipped() : ?int
     {
-        return $this->container['quantityShipped'];
+        return $this->container['quantity_shipped'];
     }
 
     /**
-     * Sets quantityShipped.
+     * Sets quantity_shipped.
      *
-     * @param null|int $quantityShipped the number of items shipped
+     * @param null|int $quantity_shipped the number of items shipped
      */
-    public function setQuantityShipped(?int $quantityShipped) : self
+    public function setQuantityShipped(?int $quantity_shipped) : self
     {
-        $this->container['quantityShipped'] = $quantityShipped;
+        $this->container['quantity_shipped'] = $quantity_shipped;
 
         return $this;
     }
 
     /**
-     * Gets productInfo.
+     * Gets product_info.
      */
     public function getProductInfo() : ?ProductInfoDetail
     {
-        return $this->container['productInfo'];
+        return $this->container['product_info'];
     }
 
     /**
-     * Sets productInfo.
+     * Sets product_info.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\ProductInfoDetail $productInfo productInfo
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\ProductInfoDetail $product_info product_info
      */
-    public function setProductInfo(?ProductInfoDetail $productInfo) : self
+    public function setProductInfo(?ProductInfoDetail $product_info) : self
     {
-        $this->container['productInfo'] = $productInfo;
+        $this->container['product_info'] = $product_info;
 
         return $this;
     }
 
     /**
-     * Gets pointsGranted.
+     * Gets points_granted.
      */
     public function getPointsGranted() : ?PointsGrantedDetail
     {
-        return $this->container['pointsGranted'];
+        return $this->container['points_granted'];
     }
 
     /**
-     * Sets pointsGranted.
+     * Sets points_granted.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\PointsGrantedDetail $pointsGranted pointsGranted
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\PointsGrantedDetail $points_granted points_granted
      */
-    public function setPointsGranted(?PointsGrantedDetail $pointsGranted) : self
+    public function setPointsGranted(?PointsGrantedDetail $points_granted) : self
     {
-        $this->container['pointsGranted'] = $pointsGranted;
+        $this->container['points_granted'] = $points_granted;
 
         return $this;
     }
 
     /**
-     * Gets itemPrice.
+     * Gets item_price.
      */
     public function getItemPrice() : ?Money
     {
-        return $this->container['itemPrice'];
+        return $this->container['item_price'];
     }
 
     /**
-     * Sets itemPrice.
+     * Sets item_price.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $itemPrice itemPrice
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $item_price item_price
      */
-    public function setItemPrice(?Money $itemPrice) : self
+    public function setItemPrice(?Money $item_price) : self
     {
-        $this->container['itemPrice'] = $itemPrice;
+        $this->container['item_price'] = $item_price;
 
         return $this;
     }
 
     /**
-     * Gets shippingPrice.
+     * Gets shipping_price.
      */
     public function getShippingPrice() : ?Money
     {
-        return $this->container['shippingPrice'];
+        return $this->container['shipping_price'];
     }
 
     /**
-     * Sets shippingPrice.
+     * Sets shipping_price.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $shippingPrice shippingPrice
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $shipping_price shipping_price
      */
-    public function setShippingPrice(?Money $shippingPrice) : self
+    public function setShippingPrice(?Money $shipping_price) : self
     {
-        $this->container['shippingPrice'] = $shippingPrice;
+        $this->container['shipping_price'] = $shipping_price;
 
         return $this;
     }
 
     /**
-     * Gets itemTax.
+     * Gets item_tax.
      */
     public function getItemTax() : ?Money
     {
-        return $this->container['itemTax'];
+        return $this->container['item_tax'];
     }
 
     /**
-     * Sets itemTax.
+     * Sets item_tax.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $itemTax itemTax
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $item_tax item_tax
      */
-    public function setItemTax(?Money $itemTax) : self
+    public function setItemTax(?Money $item_tax) : self
     {
-        $this->container['itemTax'] = $itemTax;
+        $this->container['item_tax'] = $item_tax;
 
         return $this;
     }
 
     /**
-     * Gets shippingTax.
+     * Gets shipping_tax.
      */
     public function getShippingTax() : ?Money
     {
-        return $this->container['shippingTax'];
+        return $this->container['shipping_tax'];
     }
 
     /**
-     * Sets shippingTax.
+     * Sets shipping_tax.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $shippingTax shippingTax
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $shipping_tax shipping_tax
      */
-    public function setShippingTax(?Money $shippingTax) : self
+    public function setShippingTax(?Money $shipping_tax) : self
     {
-        $this->container['shippingTax'] = $shippingTax;
+        $this->container['shipping_tax'] = $shipping_tax;
 
         return $this;
     }
 
     /**
-     * Gets shippingDiscount.
+     * Gets shipping_discount.
      */
     public function getShippingDiscount() : ?Money
     {
-        return $this->container['shippingDiscount'];
+        return $this->container['shipping_discount'];
     }
 
     /**
-     * Sets shippingDiscount.
+     * Sets shipping_discount.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $shippingDiscount shippingDiscount
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $shipping_discount shipping_discount
      */
-    public function setShippingDiscount(?Money $shippingDiscount) : self
+    public function setShippingDiscount(?Money $shipping_discount) : self
     {
-        $this->container['shippingDiscount'] = $shippingDiscount;
+        $this->container['shipping_discount'] = $shipping_discount;
 
         return $this;
     }
 
     /**
-     * Gets shippingDiscountTax.
+     * Gets shipping_discount_tax.
      */
     public function getShippingDiscountTax() : ?Money
     {
-        return $this->container['shippingDiscountTax'];
+        return $this->container['shipping_discount_tax'];
     }
 
     /**
-     * Sets shippingDiscountTax.
+     * Sets shipping_discount_tax.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $shippingDiscountTax shippingDiscountTax
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $shipping_discount_tax shipping_discount_tax
      */
-    public function setShippingDiscountTax(?Money $shippingDiscountTax) : self
+    public function setShippingDiscountTax(?Money $shipping_discount_tax) : self
     {
-        $this->container['shippingDiscountTax'] = $shippingDiscountTax;
+        $this->container['shipping_discount_tax'] = $shipping_discount_tax;
 
         return $this;
     }
 
     /**
-     * Gets promotionDiscount.
+     * Gets promotion_discount.
      */
     public function getPromotionDiscount() : ?Money
     {
-        return $this->container['promotionDiscount'];
+        return $this->container['promotion_discount'];
     }
 
     /**
-     * Sets promotionDiscount.
+     * Sets promotion_discount.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $promotionDiscount promotionDiscount
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $promotion_discount promotion_discount
      */
-    public function setPromotionDiscount(?Money $promotionDiscount) : self
+    public function setPromotionDiscount(?Money $promotion_discount) : self
     {
-        $this->container['promotionDiscount'] = $promotionDiscount;
+        $this->container['promotion_discount'] = $promotion_discount;
 
         return $this;
     }
 
     /**
-     * Gets promotionDiscountTax.
+     * Gets promotion_discount_tax.
      */
     public function getPromotionDiscountTax() : ?Money
     {
-        return $this->container['promotionDiscountTax'];
+        return $this->container['promotion_discount_tax'];
     }
 
     /**
-     * Sets promotionDiscountTax.
+     * Sets promotion_discount_tax.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $promotionDiscountTax promotionDiscountTax
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $promotion_discount_tax promotion_discount_tax
      */
-    public function setPromotionDiscountTax(?Money $promotionDiscountTax) : self
+    public function setPromotionDiscountTax(?Money $promotion_discount_tax) : self
     {
-        $this->container['promotionDiscountTax'] = $promotionDiscountTax;
+        $this->container['promotion_discount_tax'] = $promotion_discount_tax;
 
         return $this;
     }
 
     /**
-     * Gets promotionIds.
+     * Gets promotion_ids.
      *
      * @return null|string[]
      */
     public function getPromotionIds() : ?array
     {
-        return $this->container['promotionIds'];
+        return $this->container['promotion_ids'];
     }
 
     /**
-     * Sets promotionIds.
+     * Sets promotion_ids.
      *
-     * @param null|string[] $promotionIds a list of promotion identifiers provided by the seller when the promotions were created
+     * @param null|string[] $promotion_ids a list of promotion identifiers provided by the seller when the promotions were created
      */
-    public function setPromotionIds(?array $promotionIds) : self
+    public function setPromotionIds(?array $promotion_ids) : self
     {
-        $this->container['promotionIds'] = $promotionIds;
+        $this->container['promotion_ids'] = $promotion_ids;
 
         return $this;
     }
 
     /**
-     * Gets cODFee.
+     * Gets cod_fee.
      */
-    public function getCODFee() : ?Money
+    public function getCodFee() : ?Money
     {
-        return $this->container['cODFee'];
+        return $this->container['cod_fee'];
     }
 
     /**
-     * Sets cODFee.
+     * Sets cod_fee.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $cODFee cODFee
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $cod_fee cod_fee
      */
-    public function setCODFee(?Money $cODFee) : self
+    public function setCodFee(?Money $cod_fee) : self
     {
-        $this->container['cODFee'] = $cODFee;
+        $this->container['cod_fee'] = $cod_fee;
 
         return $this;
     }
 
     /**
-     * Gets cODFeeDiscount.
+     * Gets cod_fee_discount.
      */
-    public function getCODFeeDiscount() : ?Money
+    public function getCodFeeDiscount() : ?Money
     {
-        return $this->container['cODFeeDiscount'];
+        return $this->container['cod_fee_discount'];
     }
 
     /**
-     * Sets cODFeeDiscount.
+     * Sets cod_fee_discount.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $cODFeeDiscount cODFeeDiscount
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $cod_fee_discount cod_fee_discount
      */
-    public function setCODFeeDiscount(?Money $cODFeeDiscount) : self
+    public function setCodFeeDiscount(?Money $cod_fee_discount) : self
     {
-        $this->container['cODFeeDiscount'] = $cODFeeDiscount;
+        $this->container['cod_fee_discount'] = $cod_fee_discount;
 
         return $this;
     }
 
     /**
-     * Gets isGift.
+     * Gets is_gift.
      */
     public function getIsGift() : ?bool
     {
-        return $this->container['isGift'];
+        return $this->container['is_gift'];
     }
 
     /**
-     * Sets isGift.
+     * Sets is_gift.
      *
-     * @param null|bool $isGift when true, the item is a gift
+     * @param null|bool $is_gift when true, the item is a gift
      */
-    public function setIsGift(?bool $isGift) : self
+    public function setIsGift(?bool $is_gift) : self
     {
-        $this->container['isGift'] = $isGift;
+        $this->container['is_gift'] = $is_gift;
 
         return $this;
     }
 
     /**
-     * Gets conditionNote.
+     * Gets condition_note.
      */
     public function getConditionNote() : ?string
     {
-        return $this->container['conditionNote'];
+        return $this->container['condition_note'];
     }
 
     /**
-     * Sets conditionNote.
+     * Sets condition_note.
      *
-     * @param null|string $conditionNote the condition of the item as described by the seller
+     * @param null|string $condition_note the condition of the item as described by the seller
      */
-    public function setConditionNote(?string $conditionNote) : self
+    public function setConditionNote(?string $condition_note) : self
     {
-        $this->container['conditionNote'] = $conditionNote;
+        $this->container['condition_note'] = $condition_note;
 
         return $this;
     }
 
     /**
-     * Gets conditionId.
+     * Gets condition_id.
      */
     public function getConditionId() : ?string
     {
-        return $this->container['conditionId'];
+        return $this->container['condition_id'];
     }
 
     /**
-     * Sets conditionId.
+     * Sets condition_id.
      *
-     * @param null|string $conditionId The condition of the item.  Possible values: New, Used, Collectible, Refurbished, Preorder, Club.
+     * @param null|string $condition_id The condition of the item.  Possible values: New, Used, Collectible, Refurbished, Preorder, Club.
      */
-    public function setConditionId(?string $conditionId) : self
+    public function setConditionId(?string $condition_id) : self
     {
-        $this->container['conditionId'] = $conditionId;
+        $this->container['condition_id'] = $condition_id;
 
         return $this;
     }
 
     /**
-     * Gets conditionSubtypeId.
+     * Gets condition_subtype_id.
      */
     public function getConditionSubtypeId() : ?string
     {
-        return $this->container['conditionSubtypeId'];
+        return $this->container['condition_subtype_id'];
     }
 
     /**
-     * Sets conditionSubtypeId.
+     * Sets condition_subtype_id.
      *
-     * @param null|string $conditionSubtypeId The subcondition of the item.  Possible values: New, Mint, Very Good, Good, Acceptable, Poor, Club, OEM, Warranty, Refurbished Warranty, Refurbished, Open Box, Any, Other.
+     * @param null|string $condition_subtype_id The subcondition of the item.  Possible values: New, Mint, Very Good, Good, Acceptable, Poor, Club, OEM, Warranty, Refurbished Warranty, Refurbished, Open Box, Any, Other.
      */
-    public function setConditionSubtypeId(?string $conditionSubtypeId) : self
+    public function setConditionSubtypeId(?string $condition_subtype_id) : self
     {
-        $this->container['conditionSubtypeId'] = $conditionSubtypeId;
+        $this->container['condition_subtype_id'] = $condition_subtype_id;
 
         return $this;
     }
 
     /**
-     * Gets scheduledDeliveryStartDate.
+     * Gets scheduled_delivery_start_date.
      */
     public function getScheduledDeliveryStartDate() : ?string
     {
-        return $this->container['scheduledDeliveryStartDate'];
+        return $this->container['scheduled_delivery_start_date'];
     }
 
     /**
-     * Sets scheduledDeliveryStartDate.
+     * Sets scheduled_delivery_start_date.
      *
-     * @param null|string $scheduledDeliveryStartDate The start date of the scheduled delivery window in the time zone of the order destination. In ISO 8601 date time format.
+     * @param null|string $scheduled_delivery_start_date The start date of the scheduled delivery window in the time zone of the order destination. In ISO 8601 date time format.
      */
-    public function setScheduledDeliveryStartDate(?string $scheduledDeliveryStartDate) : self
+    public function setScheduledDeliveryStartDate(?string $scheduled_delivery_start_date) : self
     {
-        $this->container['scheduledDeliveryStartDate'] = $scheduledDeliveryStartDate;
+        $this->container['scheduled_delivery_start_date'] = $scheduled_delivery_start_date;
 
         return $this;
     }
 
     /**
-     * Gets scheduledDeliveryEndDate.
+     * Gets scheduled_delivery_end_date.
      */
     public function getScheduledDeliveryEndDate() : ?string
     {
-        return $this->container['scheduledDeliveryEndDate'];
+        return $this->container['scheduled_delivery_end_date'];
     }
 
     /**
-     * Sets scheduledDeliveryEndDate.
+     * Sets scheduled_delivery_end_date.
      *
-     * @param null|string $scheduledDeliveryEndDate The end date of the scheduled delivery window in the time zone of the order destination. In ISO 8601 date time format.
+     * @param null|string $scheduled_delivery_end_date The end date of the scheduled delivery window in the time zone of the order destination. In ISO 8601 date time format.
      */
-    public function setScheduledDeliveryEndDate(?string $scheduledDeliveryEndDate) : self
+    public function setScheduledDeliveryEndDate(?string $scheduled_delivery_end_date) : self
     {
-        $this->container['scheduledDeliveryEndDate'] = $scheduledDeliveryEndDate;
+        $this->container['scheduled_delivery_end_date'] = $scheduled_delivery_end_date;
 
         return $this;
     }
 
     /**
-     * Gets priceDesignation.
+     * Gets price_designation.
      */
     public function getPriceDesignation() : ?string
     {
-        return $this->container['priceDesignation'];
+        return $this->container['price_designation'];
     }
 
     /**
-     * Sets priceDesignation.
+     * Sets price_designation.
      *
-     * @param null|string $priceDesignation Indicates that the selling price is a special price that is available only for Amazon Business orders. For more information about the Amazon Business Seller Program, see the [Amazon Business website](https://www.amazon.com/b2b/info/amazon-business).   Possible values: BusinessPrice - A special price that is available only for Amazon Business orders.
+     * @param null|string $price_designation Indicates that the selling price is a special price that is available only for Amazon Business orders. For more information about the Amazon Business Seller Program, see the [Amazon Business website](https://www.amazon.com/b2b/info/amazon-business).   Possible values: BusinessPrice - A special price that is available only for Amazon Business orders.
      */
-    public function setPriceDesignation(?string $priceDesignation) : self
+    public function setPriceDesignation(?string $price_designation) : self
     {
-        $this->container['priceDesignation'] = $priceDesignation;
+        $this->container['price_designation'] = $price_designation;
 
         return $this;
     }
 
     /**
-     * Gets taxCollection.
+     * Gets tax_collection.
      */
     public function getTaxCollection() : ?TaxCollection
     {
-        return $this->container['taxCollection'];
+        return $this->container['tax_collection'];
     }
 
     /**
-     * Sets taxCollection.
+     * Sets tax_collection.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\TaxCollection $taxCollection taxCollection
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\TaxCollection $tax_collection tax_collection
      */
-    public function setTaxCollection(?TaxCollection $taxCollection) : self
+    public function setTaxCollection(?TaxCollection $tax_collection) : self
     {
-        $this->container['taxCollection'] = $taxCollection;
+        $this->container['tax_collection'] = $tax_collection;
 
         return $this;
     }
 
     /**
-     * Gets serialNumberRequired.
+     * Gets serial_number_required.
      */
     public function getSerialNumberRequired() : ?bool
     {
-        return $this->container['serialNumberRequired'];
+        return $this->container['serial_number_required'];
     }
 
     /**
-     * Sets serialNumberRequired.
+     * Sets serial_number_required.
      *
-     * @param null|bool $serialNumberRequired When true, the product type for this item has a serial number.  Returned only for Amazon Easy Ship orders.
+     * @param null|bool $serial_number_required When true, the product type for this item has a serial number.  Returned only for Amazon Easy Ship orders.
      */
-    public function setSerialNumberRequired(?bool $serialNumberRequired) : self
+    public function setSerialNumberRequired(?bool $serial_number_required) : self
     {
-        $this->container['serialNumberRequired'] = $serialNumberRequired;
+        $this->container['serial_number_required'] = $serial_number_required;
 
         return $this;
     }
 
     /**
-     * Gets isTransparency.
+     * Gets is_transparency.
      */
     public function getIsTransparency() : ?bool
     {
-        return $this->container['isTransparency'];
+        return $this->container['is_transparency'];
     }
 
     /**
-     * Sets isTransparency.
+     * Sets is_transparency.
      *
-     * @param null|bool $isTransparency when true, transparency codes are required
+     * @param null|bool $is_transparency when true, transparency codes are required
      */
-    public function setIsTransparency(?bool $isTransparency) : self
+    public function setIsTransparency(?bool $is_transparency) : self
     {
-        $this->container['isTransparency'] = $isTransparency;
+        $this->container['is_transparency'] = $is_transparency;
 
         return $this;
     }
 
     /**
-     * Gets iossNumber.
+     * Gets ioss_number.
      */
     public function getIossNumber() : ?string
     {
-        return $this->container['iossNumber'];
+        return $this->container['ioss_number'];
     }
 
     /**
-     * Sets iossNumber.
+     * Sets ioss_number.
      *
-     * @param null|string $iossNumber The IOSS number of the seller. Sellers selling in the EU will be assigned a unique IOSS number that must be listed on all packages sent to the EU.
+     * @param null|string $ioss_number The IOSS number of the seller. Sellers selling in the EU will be assigned a unique IOSS number that must be listed on all packages sent to the EU.
      */
-    public function setIossNumber(?string $iossNumber) : self
+    public function setIossNumber(?string $ioss_number) : self
     {
-        $this->container['iossNumber'] = $iossNumber;
+        $this->container['ioss_number'] = $ioss_number;
 
         return $this;
     }
 
     /**
-     * Gets storeChainStoreId.
+     * Gets store_chain_store_id.
      */
     public function getStoreChainStoreId() : ?string
     {
-        return $this->container['storeChainStoreId'];
+        return $this->container['store_chain_store_id'];
     }
 
     /**
-     * Sets storeChainStoreId.
+     * Sets store_chain_store_id.
      *
-     * @param null|string $storeChainStoreId The store chain store identifier. Linked to a specific store in a store chain.
+     * @param null|string $store_chain_store_id The store chain store identifier. Linked to a specific store in a store chain.
      */
-    public function setStoreChainStoreId(?string $storeChainStoreId) : self
+    public function setStoreChainStoreId(?string $store_chain_store_id) : self
     {
-        $this->container['storeChainStoreId'] = $storeChainStoreId;
+        $this->container['store_chain_store_id'] = $store_chain_store_id;
 
         return $this;
     }
 
     /**
-     * Gets deemedResellerCategory.
+     * Gets deemed_reseller_category.
      */
     public function getDeemedResellerCategory() : ?string
     {
-        return $this->container['deemedResellerCategory'];
+        return $this->container['deemed_reseller_category'];
     }
 
     /**
-     * Sets deemedResellerCategory.
+     * Sets deemed_reseller_category.
      *
-     * @param null|string $deemedResellerCategory The category of deemed reseller. This applies to selling partners that are not based in the EU and is used to help them meet the VAT Deemed Reseller tax laws in the EU and UK.
+     * @param null|string $deemed_reseller_category The category of deemed reseller. This applies to selling partners that are not based in the EU and is used to help them meet the VAT Deemed Reseller tax laws in the EU and UK.
      */
-    public function setDeemedResellerCategory(?string $deemedResellerCategory) : self
+    public function setDeemedResellerCategory(?string $deemed_reseller_category) : self
     {
         $allowedValues = $this->getDeemedResellerCategoryAllowableValues();
 
-        if (null !== $deemedResellerCategory && !\in_array($deemedResellerCategory, $allowedValues, true)) {
+        if (null !== $deemed_reseller_category && !\in_array($deemed_reseller_category, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'deemedResellerCategory', must be one of '%s'",
-                    $deemedResellerCategory,
+                    "Invalid value '%s' for 'deemed_reseller_category', must be one of '%s'",
+                    $deemed_reseller_category,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['deemedResellerCategory'] = $deemedResellerCategory;
+        $this->container['deemed_reseller_category'] = $deemed_reseller_category;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemBuyerInfo.php b/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemBuyerInfo.php
index 96476582a..f9bf481d1 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemBuyerInfo.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemBuyerInfo.php
@@ -56,12 +56,12 @@ class OrderItemBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'orderItemId' => 'string',
-        'buyerCustomizedInfo' => '\AmazonPHP\SellingPartner\Model\Orders\BuyerCustomizedInfoDetail',
-        'giftWrapPrice' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'giftWrapTax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'giftMessageText' => 'string',
-        'giftWrapLevel' => 'string',
+        'order_item_id' => 'string',
+        'buyer_customized_info' => '\AmazonPHP\SellingPartner\Model\Orders\BuyerCustomizedInfoDetail',
+        'gift_wrap_price' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'gift_wrap_tax' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'gift_message_text' => 'string',
+        'gift_wrap_level' => 'string',
     ];
 
     /**
@@ -72,12 +72,12 @@ class OrderItemBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'orderItemId' => null,
-        'buyerCustomizedInfo' => null,
-        'giftWrapPrice' => null,
-        'giftWrapTax' => null,
-        'giftMessageText' => null,
-        'giftWrapLevel' => null,
+        'order_item_id' => null,
+        'buyer_customized_info' => null,
+        'gift_wrap_price' => null,
+        'gift_wrap_tax' => null,
+        'gift_message_text' => null,
+        'gift_wrap_level' => null,
     ];
 
     /**
@@ -87,12 +87,12 @@ class OrderItemBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $attributeMap = [
-        'orderItemId' => 'OrderItemId',
-        'buyerCustomizedInfo' => 'BuyerCustomizedInfo',
-        'giftWrapPrice' => 'GiftWrapPrice',
-        'giftWrapTax' => 'GiftWrapTax',
-        'giftMessageText' => 'GiftMessageText',
-        'giftWrapLevel' => 'GiftWrapLevel',
+        'order_item_id' => 'OrderItemId',
+        'buyer_customized_info' => 'BuyerCustomizedInfo',
+        'gift_wrap_price' => 'GiftWrapPrice',
+        'gift_wrap_tax' => 'GiftWrapTax',
+        'gift_message_text' => 'GiftMessageText',
+        'gift_wrap_level' => 'GiftWrapLevel',
     ];
 
     /**
@@ -101,12 +101,12 @@ class OrderItemBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $setters = [
-        'orderItemId' => 'setOrderItemId',
-        'buyerCustomizedInfo' => 'setBuyerCustomizedInfo',
-        'giftWrapPrice' => 'setGiftWrapPrice',
-        'giftWrapTax' => 'setGiftWrapTax',
-        'giftMessageText' => 'setGiftMessageText',
-        'giftWrapLevel' => 'setGiftWrapLevel',
+        'order_item_id' => 'setOrderItemId',
+        'buyer_customized_info' => 'setBuyerCustomizedInfo',
+        'gift_wrap_price' => 'setGiftWrapPrice',
+        'gift_wrap_tax' => 'setGiftWrapTax',
+        'gift_message_text' => 'setGiftMessageText',
+        'gift_wrap_level' => 'setGiftWrapLevel',
     ];
 
     /**
@@ -115,12 +115,12 @@ class OrderItemBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $getters = [
-        'orderItemId' => 'getOrderItemId',
-        'buyerCustomizedInfo' => 'getBuyerCustomizedInfo',
-        'giftWrapPrice' => 'getGiftWrapPrice',
-        'giftWrapTax' => 'getGiftWrapTax',
-        'giftMessageText' => 'getGiftMessageText',
-        'giftWrapLevel' => 'getGiftWrapLevel',
+        'order_item_id' => 'getOrderItemId',
+        'buyer_customized_info' => 'getBuyerCustomizedInfo',
+        'gift_wrap_price' => 'getGiftWrapPrice',
+        'gift_wrap_tax' => 'getGiftWrapTax',
+        'gift_message_text' => 'getGiftMessageText',
+        'gift_wrap_level' => 'getGiftWrapLevel',
     ];
 
     /**
@@ -138,12 +138,12 @@ class OrderItemBuyerInfo implements \ArrayAccess, \JsonSerializable, ModelInterf
      */
     public function __construct(array $data = null)
     {
-        $this->container['orderItemId'] = $data['orderItemId'] ?? null;
-        $this->container['buyerCustomizedInfo'] = $data['buyerCustomizedInfo'] ?? null;
-        $this->container['giftWrapPrice'] = $data['giftWrapPrice'] ?? null;
-        $this->container['giftWrapTax'] = $data['giftWrapTax'] ?? null;
-        $this->container['giftMessageText'] = $data['giftMessageText'] ?? null;
-        $this->container['giftWrapLevel'] = $data['giftWrapLevel'] ?? null;
+        $this->container['order_item_id'] = $data['order_item_id'] ?? null;
+        $this->container['buyer_customized_info'] = $data['buyer_customized_info'] ?? null;
+        $this->container['gift_wrap_price'] = $data['gift_wrap_price'] ?? null;
+        $this->container['gift_wrap_tax'] = $data['gift_wrap_tax'] ?? null;
+        $this->container['gift_message_text'] = $data['gift_message_text'] ?? null;
+        $this->container['gift_wrap_level'] = $data['gift_wrap_level'] ?? null;
     }
 
     /**
@@ -225,8 +225,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['orderItemId'] === null) {
-            $invalidProperties[] = "'orderItemId' can't be null";
+        if ($this->container['order_item_id'] === null) {
+            $invalidProperties[] = "'order_item_id' can't be null";
         }
 
         return $invalidProperties;
@@ -244,121 +244,121 @@ public function valid() : bool
     }
 
     /**
-     * Gets orderItemId.
+     * Gets order_item_id.
      */
     public function getOrderItemId() : string
     {
-        return $this->container['orderItemId'];
+        return $this->container['order_item_id'];
     }
 
     /**
-     * Sets orderItemId.
+     * Sets order_item_id.
      *
-     * @param string $orderItemId an Amazon-defined order item identifier
+     * @param string $order_item_id an Amazon-defined order item identifier
      */
-    public function setOrderItemId(string $orderItemId) : self
+    public function setOrderItemId(string $order_item_id) : self
     {
-        $this->container['orderItemId'] = $orderItemId;
+        $this->container['order_item_id'] = $order_item_id;
 
         return $this;
     }
 
     /**
-     * Gets buyerCustomizedInfo.
+     * Gets buyer_customized_info.
      */
     public function getBuyerCustomizedInfo() : ?BuyerCustomizedInfoDetail
     {
-        return $this->container['buyerCustomizedInfo'];
+        return $this->container['buyer_customized_info'];
     }
 
     /**
-     * Sets buyerCustomizedInfo.
+     * Sets buyer_customized_info.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\BuyerCustomizedInfoDetail $buyerCustomizedInfo buyerCustomizedInfo
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\BuyerCustomizedInfoDetail $buyer_customized_info buyer_customized_info
      */
-    public function setBuyerCustomizedInfo(?BuyerCustomizedInfoDetail $buyerCustomizedInfo) : self
+    public function setBuyerCustomizedInfo(?BuyerCustomizedInfoDetail $buyer_customized_info) : self
     {
-        $this->container['buyerCustomizedInfo'] = $buyerCustomizedInfo;
+        $this->container['buyer_customized_info'] = $buyer_customized_info;
 
         return $this;
     }
 
     /**
-     * Gets giftWrapPrice.
+     * Gets gift_wrap_price.
      */
     public function getGiftWrapPrice() : ?Money
     {
-        return $this->container['giftWrapPrice'];
+        return $this->container['gift_wrap_price'];
     }
 
     /**
-     * Sets giftWrapPrice.
+     * Sets gift_wrap_price.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $giftWrapPrice giftWrapPrice
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $gift_wrap_price gift_wrap_price
      */
-    public function setGiftWrapPrice(?Money $giftWrapPrice) : self
+    public function setGiftWrapPrice(?Money $gift_wrap_price) : self
     {
-        $this->container['giftWrapPrice'] = $giftWrapPrice;
+        $this->container['gift_wrap_price'] = $gift_wrap_price;
 
         return $this;
     }
 
     /**
-     * Gets giftWrapTax.
+     * Gets gift_wrap_tax.
      */
     public function getGiftWrapTax() : ?Money
     {
-        return $this->container['giftWrapTax'];
+        return $this->container['gift_wrap_tax'];
     }
 
     /**
-     * Sets giftWrapTax.
+     * Sets gift_wrap_tax.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $giftWrapTax giftWrapTax
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $gift_wrap_tax gift_wrap_tax
      */
-    public function setGiftWrapTax(?Money $giftWrapTax) : self
+    public function setGiftWrapTax(?Money $gift_wrap_tax) : self
     {
-        $this->container['giftWrapTax'] = $giftWrapTax;
+        $this->container['gift_wrap_tax'] = $gift_wrap_tax;
 
         return $this;
     }
 
     /**
-     * Gets giftMessageText.
+     * Gets gift_message_text.
      */
     public function getGiftMessageText() : ?string
     {
-        return $this->container['giftMessageText'];
+        return $this->container['gift_message_text'];
     }
 
     /**
-     * Sets giftMessageText.
+     * Sets gift_message_text.
      *
-     * @param null|string $giftMessageText a gift message provided by the buyer
+     * @param null|string $gift_message_text a gift message provided by the buyer
      */
-    public function setGiftMessageText(?string $giftMessageText) : self
+    public function setGiftMessageText(?string $gift_message_text) : self
     {
-        $this->container['giftMessageText'] = $giftMessageText;
+        $this->container['gift_message_text'] = $gift_message_text;
 
         return $this;
     }
 
     /**
-     * Gets giftWrapLevel.
+     * Gets gift_wrap_level.
      */
     public function getGiftWrapLevel() : ?string
     {
-        return $this->container['giftWrapLevel'];
+        return $this->container['gift_wrap_level'];
     }
 
     /**
-     * Sets giftWrapLevel.
+     * Sets gift_wrap_level.
      *
-     * @param null|string $giftWrapLevel the gift wrap level specified by the buyer
+     * @param null|string $gift_wrap_level the gift wrap level specified by the buyer
      */
-    public function setGiftWrapLevel(?string $giftWrapLevel) : self
+    public function setGiftWrapLevel(?string $gift_wrap_level) : self
     {
-        $this->container['giftWrapLevel'] = $giftWrapLevel;
+        $this->container['gift_wrap_level'] = $gift_wrap_level;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemsBuyerInfoList.php b/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemsBuyerInfoList.php
index dc0a04def..a4fa250e0 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemsBuyerInfoList.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemsBuyerInfoList.php
@@ -56,9 +56,9 @@ class OrderItemsBuyerInfoList implements \ArrayAccess, \JsonSerializable, ModelI
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'orderItems' => '\AmazonPHP\SellingPartner\Model\Orders\OrderItemBuyerInfo[]',
-        'nextToken' => 'string',
-        'amazonOrderId' => 'string',
+        'order_items' => '\AmazonPHP\SellingPartner\Model\Orders\OrderItemBuyerInfo[]',
+        'next_token' => 'string',
+        'amazon_order_id' => 'string',
     ];
 
     /**
@@ -69,9 +69,9 @@ class OrderItemsBuyerInfoList implements \ArrayAccess, \JsonSerializable, ModelI
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'orderItems' => null,
-        'nextToken' => null,
-        'amazonOrderId' => null,
+        'order_items' => null,
+        'next_token' => null,
+        'amazon_order_id' => null,
     ];
 
     /**
@@ -81,9 +81,9 @@ class OrderItemsBuyerInfoList implements \ArrayAccess, \JsonSerializable, ModelI
      * @var string[]
      */
     protected static array $attributeMap = [
-        'orderItems' => 'OrderItems',
-        'nextToken' => 'NextToken',
-        'amazonOrderId' => 'AmazonOrderId',
+        'order_items' => 'OrderItems',
+        'next_token' => 'NextToken',
+        'amazon_order_id' => 'AmazonOrderId',
     ];
 
     /**
@@ -92,9 +92,9 @@ class OrderItemsBuyerInfoList implements \ArrayAccess, \JsonSerializable, ModelI
      * @var string[]
      */
     protected static array $setters = [
-        'orderItems' => 'setOrderItems',
-        'nextToken' => 'setNextToken',
-        'amazonOrderId' => 'setAmazonOrderId',
+        'order_items' => 'setOrderItems',
+        'next_token' => 'setNextToken',
+        'amazon_order_id' => 'setAmazonOrderId',
     ];
 
     /**
@@ -103,9 +103,9 @@ class OrderItemsBuyerInfoList implements \ArrayAccess, \JsonSerializable, ModelI
      * @var string[]
      */
     protected static array $getters = [
-        'orderItems' => 'getOrderItems',
-        'nextToken' => 'getNextToken',
-        'amazonOrderId' => 'getAmazonOrderId',
+        'order_items' => 'getOrderItems',
+        'next_token' => 'getNextToken',
+        'amazon_order_id' => 'getAmazonOrderId',
     ];
 
     /**
@@ -123,9 +123,9 @@ class OrderItemsBuyerInfoList implements \ArrayAccess, \JsonSerializable, ModelI
      */
     public function __construct(array $data = null)
     {
-        $this->container['orderItems'] = $data['orderItems'] ?? null;
-        $this->container['nextToken'] = $data['nextToken'] ?? null;
-        $this->container['amazonOrderId'] = $data['amazonOrderId'] ?? null;
+        $this->container['order_items'] = $data['order_items'] ?? null;
+        $this->container['next_token'] = $data['next_token'] ?? null;
+        $this->container['amazon_order_id'] = $data['amazon_order_id'] ?? null;
     }
 
     /**
@@ -207,12 +207,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['orderItems'] === null) {
-            $invalidProperties[] = "'orderItems' can't be null";
+        if ($this->container['order_items'] === null) {
+            $invalidProperties[] = "'order_items' can't be null";
         }
 
-        if ($this->container['amazonOrderId'] === null) {
-            $invalidProperties[] = "'amazonOrderId' can't be null";
+        if ($this->container['amazon_order_id'] === null) {
+            $invalidProperties[] = "'amazon_order_id' can't be null";
         }
 
         return $invalidProperties;
@@ -230,63 +230,63 @@ public function valid() : bool
     }
 
     /**
-     * Gets orderItems.
+     * Gets order_items.
      *
      * @return \AmazonPHP\SellingPartner\Model\Orders\OrderItemBuyerInfo[]
      */
     public function getOrderItems() : array
     {
-        return $this->container['orderItems'];
+        return $this->container['order_items'];
     }
 
     /**
-     * Sets orderItems.
+     * Sets order_items.
      *
-     * @param \AmazonPHP\SellingPartner\Model\Orders\OrderItemBuyerInfo[] $orderItems a single order item's buyer information list
+     * @param \AmazonPHP\SellingPartner\Model\Orders\OrderItemBuyerInfo[] $order_items a single order item's buyer information list
      */
-    public function setOrderItems(array $orderItems) : self
+    public function setOrderItems(array $order_items) : self
     {
-        $this->container['orderItems'] = $orderItems;
+        $this->container['order_items'] = $order_items;
 
         return $this;
     }
 
     /**
-     * Gets nextToken.
+     * Gets next_token.
      */
     public function getNextToken() : ?string
     {
-        return $this->container['nextToken'];
+        return $this->container['next_token'];
     }
 
     /**
-     * Sets nextToken.
+     * Sets next_token.
      *
-     * @param null|string $nextToken when present and not empty, pass this string token in the next request to return the next response page
+     * @param null|string $next_token when present and not empty, pass this string token in the next request to return the next response page
      */
-    public function setNextToken(?string $nextToken) : self
+    public function setNextToken(?string $next_token) : self
     {
-        $this->container['nextToken'] = $nextToken;
+        $this->container['next_token'] = $next_token;
 
         return $this;
     }
 
     /**
-     * Gets amazonOrderId.
+     * Gets amazon_order_id.
      */
     public function getAmazonOrderId() : string
     {
-        return $this->container['amazonOrderId'];
+        return $this->container['amazon_order_id'];
     }
 
     /**
-     * Sets amazonOrderId.
+     * Sets amazon_order_id.
      *
-     * @param string $amazonOrderId an Amazon-defined order identifier, in 3-7-7 format
+     * @param string $amazon_order_id an Amazon-defined order identifier, in 3-7-7 format
      */
-    public function setAmazonOrderId(string $amazonOrderId) : self
+    public function setAmazonOrderId(string $amazon_order_id) : self
     {
-        $this->container['amazonOrderId'] = $amazonOrderId;
+        $this->container['amazon_order_id'] = $amazon_order_id;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemsList.php b/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemsList.php
index 4e54c1332..4cf0a2c30 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemsList.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/OrderItemsList.php
@@ -56,9 +56,9 @@ class OrderItemsList implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'orderItems' => '\AmazonPHP\SellingPartner\Model\Orders\OrderItem[]',
-        'nextToken' => 'string',
-        'amazonOrderId' => 'string',
+        'order_items' => '\AmazonPHP\SellingPartner\Model\Orders\OrderItem[]',
+        'next_token' => 'string',
+        'amazon_order_id' => 'string',
     ];
 
     /**
@@ -69,9 +69,9 @@ class OrderItemsList implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'orderItems' => null,
-        'nextToken' => null,
-        'amazonOrderId' => null,
+        'order_items' => null,
+        'next_token' => null,
+        'amazon_order_id' => null,
     ];
 
     /**
@@ -81,9 +81,9 @@ class OrderItemsList implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'orderItems' => 'OrderItems',
-        'nextToken' => 'NextToken',
-        'amazonOrderId' => 'AmazonOrderId',
+        'order_items' => 'OrderItems',
+        'next_token' => 'NextToken',
+        'amazon_order_id' => 'AmazonOrderId',
     ];
 
     /**
@@ -92,9 +92,9 @@ class OrderItemsList implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'orderItems' => 'setOrderItems',
-        'nextToken' => 'setNextToken',
-        'amazonOrderId' => 'setAmazonOrderId',
+        'order_items' => 'setOrderItems',
+        'next_token' => 'setNextToken',
+        'amazon_order_id' => 'setAmazonOrderId',
     ];
 
     /**
@@ -103,9 +103,9 @@ class OrderItemsList implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'orderItems' => 'getOrderItems',
-        'nextToken' => 'getNextToken',
-        'amazonOrderId' => 'getAmazonOrderId',
+        'order_items' => 'getOrderItems',
+        'next_token' => 'getNextToken',
+        'amazon_order_id' => 'getAmazonOrderId',
     ];
 
     /**
@@ -123,9 +123,9 @@ class OrderItemsList implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['orderItems'] = $data['orderItems'] ?? null;
-        $this->container['nextToken'] = $data['nextToken'] ?? null;
-        $this->container['amazonOrderId'] = $data['amazonOrderId'] ?? null;
+        $this->container['order_items'] = $data['order_items'] ?? null;
+        $this->container['next_token'] = $data['next_token'] ?? null;
+        $this->container['amazon_order_id'] = $data['amazon_order_id'] ?? null;
     }
 
     /**
@@ -207,12 +207,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['orderItems'] === null) {
-            $invalidProperties[] = "'orderItems' can't be null";
+        if ($this->container['order_items'] === null) {
+            $invalidProperties[] = "'order_items' can't be null";
         }
 
-        if ($this->container['amazonOrderId'] === null) {
-            $invalidProperties[] = "'amazonOrderId' can't be null";
+        if ($this->container['amazon_order_id'] === null) {
+            $invalidProperties[] = "'amazon_order_id' can't be null";
         }
 
         return $invalidProperties;
@@ -230,63 +230,63 @@ public function valid() : bool
     }
 
     /**
-     * Gets orderItems.
+     * Gets order_items.
      *
      * @return \AmazonPHP\SellingPartner\Model\Orders\OrderItem[]
      */
     public function getOrderItems() : array
     {
-        return $this->container['orderItems'];
+        return $this->container['order_items'];
     }
 
     /**
-     * Sets orderItems.
+     * Sets order_items.
      *
-     * @param \AmazonPHP\SellingPartner\Model\Orders\OrderItem[] $orderItems a list of order items
+     * @param \AmazonPHP\SellingPartner\Model\Orders\OrderItem[] $order_items a list of order items
      */
-    public function setOrderItems(array $orderItems) : self
+    public function setOrderItems(array $order_items) : self
     {
-        $this->container['orderItems'] = $orderItems;
+        $this->container['order_items'] = $order_items;
 
         return $this;
     }
 
     /**
-     * Gets nextToken.
+     * Gets next_token.
      */
     public function getNextToken() : ?string
     {
-        return $this->container['nextToken'];
+        return $this->container['next_token'];
     }
 
     /**
-     * Sets nextToken.
+     * Sets next_token.
      *
-     * @param null|string $nextToken when present and not empty, pass this string token in the next request to return the next response page
+     * @param null|string $next_token when present and not empty, pass this string token in the next request to return the next response page
      */
-    public function setNextToken(?string $nextToken) : self
+    public function setNextToken(?string $next_token) : self
     {
-        $this->container['nextToken'] = $nextToken;
+        $this->container['next_token'] = $next_token;
 
         return $this;
     }
 
     /**
-     * Gets amazonOrderId.
+     * Gets amazon_order_id.
      */
     public function getAmazonOrderId() : string
     {
-        return $this->container['amazonOrderId'];
+        return $this->container['amazon_order_id'];
     }
 
     /**
-     * Sets amazonOrderId.
+     * Sets amazon_order_id.
      *
-     * @param string $amazonOrderId an Amazon-defined order identifier, in 3-7-7 format
+     * @param string $amazon_order_id an Amazon-defined order identifier, in 3-7-7 format
      */
-    public function setAmazonOrderId(string $amazonOrderId) : self
+    public function setAmazonOrderId(string $amazon_order_id) : self
     {
-        $this->container['amazonOrderId'] = $amazonOrderId;
+        $this->container['amazon_order_id'] = $amazon_order_id;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/OrdersList.php b/src/AmazonPHP/SellingPartner/Model/Orders/OrdersList.php
index 28593f027..cdf41a670 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/OrdersList.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/OrdersList.php
@@ -57,9 +57,9 @@ class OrdersList implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'orders' => '\AmazonPHP\SellingPartner\Model\Orders\Order[]',
-        'nextToken' => 'string',
-        'lastUpdatedBefore' => 'string',
-        'createdBefore' => 'string',
+        'next_token' => 'string',
+        'last_updated_before' => 'string',
+        'created_before' => 'string',
     ];
 
     /**
@@ -71,9 +71,9 @@ class OrdersList implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'orders' => null,
-        'nextToken' => null,
-        'lastUpdatedBefore' => null,
-        'createdBefore' => null,
+        'next_token' => null,
+        'last_updated_before' => null,
+        'created_before' => null,
     ];
 
     /**
@@ -84,9 +84,9 @@ class OrdersList implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'orders' => 'Orders',
-        'nextToken' => 'NextToken',
-        'lastUpdatedBefore' => 'LastUpdatedBefore',
-        'createdBefore' => 'CreatedBefore',
+        'next_token' => 'NextToken',
+        'last_updated_before' => 'LastUpdatedBefore',
+        'created_before' => 'CreatedBefore',
     ];
 
     /**
@@ -96,9 +96,9 @@ class OrdersList implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'orders' => 'setOrders',
-        'nextToken' => 'setNextToken',
-        'lastUpdatedBefore' => 'setLastUpdatedBefore',
-        'createdBefore' => 'setCreatedBefore',
+        'next_token' => 'setNextToken',
+        'last_updated_before' => 'setLastUpdatedBefore',
+        'created_before' => 'setCreatedBefore',
     ];
 
     /**
@@ -108,9 +108,9 @@ class OrdersList implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'orders' => 'getOrders',
-        'nextToken' => 'getNextToken',
-        'lastUpdatedBefore' => 'getLastUpdatedBefore',
-        'createdBefore' => 'getCreatedBefore',
+        'next_token' => 'getNextToken',
+        'last_updated_before' => 'getLastUpdatedBefore',
+        'created_before' => 'getCreatedBefore',
     ];
 
     /**
@@ -129,9 +129,9 @@ class OrdersList implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['orders'] = $data['orders'] ?? null;
-        $this->container['nextToken'] = $data['nextToken'] ?? null;
-        $this->container['lastUpdatedBefore'] = $data['lastUpdatedBefore'] ?? null;
-        $this->container['createdBefore'] = $data['createdBefore'] ?? null;
+        $this->container['next_token'] = $data['next_token'] ?? null;
+        $this->container['last_updated_before'] = $data['last_updated_before'] ?? null;
+        $this->container['created_before'] = $data['created_before'] ?? null;
     }
 
     /**
@@ -254,61 +254,61 @@ public function setOrders(array $orders) : self
     }
 
     /**
-     * Gets nextToken.
+     * Gets next_token.
      */
     public function getNextToken() : ?string
     {
-        return $this->container['nextToken'];
+        return $this->container['next_token'];
     }
 
     /**
-     * Sets nextToken.
+     * Sets next_token.
      *
-     * @param null|string $nextToken when present and not empty, pass this string token in the next request to return the next response page
+     * @param null|string $next_token when present and not empty, pass this string token in the next request to return the next response page
      */
-    public function setNextToken(?string $nextToken) : self
+    public function setNextToken(?string $next_token) : self
     {
-        $this->container['nextToken'] = $nextToken;
+        $this->container['next_token'] = $next_token;
 
         return $this;
     }
 
     /**
-     * Gets lastUpdatedBefore.
+     * Gets last_updated_before.
      */
     public function getLastUpdatedBefore() : ?string
     {
-        return $this->container['lastUpdatedBefore'];
+        return $this->container['last_updated_before'];
     }
 
     /**
-     * Sets lastUpdatedBefore.
+     * Sets last_updated_before.
      *
-     * @param null|string $lastUpdatedBefore A date used for selecting orders that were last updated before (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. All dates must be in ISO 8601 format.
+     * @param null|string $last_updated_before A date used for selecting orders that were last updated before (or at) a specified time. An update is defined as any change in order status, including the creation of a new order. Includes updates made by Amazon and by the seller. All dates must be in ISO 8601 format.
      */
-    public function setLastUpdatedBefore(?string $lastUpdatedBefore) : self
+    public function setLastUpdatedBefore(?string $last_updated_before) : self
     {
-        $this->container['lastUpdatedBefore'] = $lastUpdatedBefore;
+        $this->container['last_updated_before'] = $last_updated_before;
 
         return $this;
     }
 
     /**
-     * Gets createdBefore.
+     * Gets created_before.
      */
     public function getCreatedBefore() : ?string
     {
-        return $this->container['createdBefore'];
+        return $this->container['created_before'];
     }
 
     /**
-     * Sets createdBefore.
+     * Sets created_before.
      *
-     * @param null|string $createdBefore A date used for selecting orders created before (or at) a specified time. Only orders placed before the specified time are returned. The date must be in ISO 8601 format.
+     * @param null|string $created_before A date used for selecting orders created before (or at) a specified time. Only orders placed before the specified time are returned. The date must be in ISO 8601 format.
      */
-    public function setCreatedBefore(?string $createdBefore) : self
+    public function setCreatedBefore(?string $created_before) : self
     {
-        $this->container['createdBefore'] = $createdBefore;
+        $this->container['created_before'] = $created_before;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/PaymentExecutionDetailItem.php b/src/AmazonPHP/SellingPartner/Model/Orders/PaymentExecutionDetailItem.php
index e93206382..f7bedcbce 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/PaymentExecutionDetailItem.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/PaymentExecutionDetailItem.php
@@ -57,7 +57,7 @@ class PaymentExecutionDetailItem implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $openAPITypes = [
         'payment' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
-        'paymentMethod' => 'string',
+        'payment_method' => 'string',
     ];
 
     /**
@@ -69,7 +69,7 @@ class PaymentExecutionDetailItem implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $openAPIFormats = [
         'payment' => null,
-        'paymentMethod' => null,
+        'payment_method' => null,
     ];
 
     /**
@@ -80,7 +80,7 @@ class PaymentExecutionDetailItem implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $attributeMap = [
         'payment' => 'Payment',
-        'paymentMethod' => 'PaymentMethod',
+        'payment_method' => 'PaymentMethod',
     ];
 
     /**
@@ -90,7 +90,7 @@ class PaymentExecutionDetailItem implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $setters = [
         'payment' => 'setPayment',
-        'paymentMethod' => 'setPaymentMethod',
+        'payment_method' => 'setPaymentMethod',
     ];
 
     /**
@@ -100,7 +100,7 @@ class PaymentExecutionDetailItem implements \ArrayAccess, \JsonSerializable, Mod
      */
     protected static array $getters = [
         'payment' => 'getPayment',
-        'paymentMethod' => 'getPaymentMethod',
+        'payment_method' => 'getPaymentMethod',
     ];
 
     /**
@@ -119,7 +119,7 @@ class PaymentExecutionDetailItem implements \ArrayAccess, \JsonSerializable, Mod
     public function __construct(array $data = null)
     {
         $this->container['payment'] = $data['payment'] ?? null;
-        $this->container['paymentMethod'] = $data['paymentMethod'] ?? null;
+        $this->container['payment_method'] = $data['payment_method'] ?? null;
     }
 
     /**
@@ -205,8 +205,8 @@ public function listInvalidProperties() : array
             $invalidProperties[] = "'payment' can't be null";
         }
 
-        if ($this->container['paymentMethod'] === null) {
-            $invalidProperties[] = "'paymentMethod' can't be null";
+        if ($this->container['payment_method'] === null) {
+            $invalidProperties[] = "'payment_method' can't be null";
         }
 
         return $invalidProperties;
@@ -244,21 +244,21 @@ public function setPayment(Money $payment) : self
     }
 
     /**
-     * Gets paymentMethod.
+     * Gets payment_method.
      */
     public function getPaymentMethod() : string
     {
-        return $this->container['paymentMethod'];
+        return $this->container['payment_method'];
     }
 
     /**
-     * Sets paymentMethod.
+     * Sets payment_method.
      *
-     * @param string $paymentMethod A sub-payment method for a COD order.  Possible values:  * COD - Cash On Delivery.  * GC - Gift Card.  * PointsAccount - Amazon Points.
+     * @param string $payment_method A sub-payment method for a COD order.  Possible values:  * COD - Cash On Delivery.  * GC - Gift Card.  * PointsAccount - Amazon Points.
      */
-    public function setPaymentMethod(string $paymentMethod) : self
+    public function setPaymentMethod(string $payment_method) : self
     {
-        $this->container['paymentMethod'] = $paymentMethod;
+        $this->container['payment_method'] = $payment_method;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/PointsGrantedDetail.php b/src/AmazonPHP/SellingPartner/Model/Orders/PointsGrantedDetail.php
index 55e051770..514c46079 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/PointsGrantedDetail.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/PointsGrantedDetail.php
@@ -56,8 +56,8 @@ class PointsGrantedDetail implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'pointsNumber' => 'int',
-        'pointsMonetaryValue' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
+        'points_number' => 'int',
+        'points_monetary_value' => '\AmazonPHP\SellingPartner\Model\Orders\Money',
     ];
 
     /**
@@ -68,8 +68,8 @@ class PointsGrantedDetail implements \ArrayAccess, \JsonSerializable, ModelInter
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'pointsNumber' => null,
-        'pointsMonetaryValue' => null,
+        'points_number' => null,
+        'points_monetary_value' => null,
     ];
 
     /**
@@ -79,8 +79,8 @@ class PointsGrantedDetail implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $attributeMap = [
-        'pointsNumber' => 'PointsNumber',
-        'pointsMonetaryValue' => 'PointsMonetaryValue',
+        'points_number' => 'PointsNumber',
+        'points_monetary_value' => 'PointsMonetaryValue',
     ];
 
     /**
@@ -89,8 +89,8 @@ class PointsGrantedDetail implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $setters = [
-        'pointsNumber' => 'setPointsNumber',
-        'pointsMonetaryValue' => 'setPointsMonetaryValue',
+        'points_number' => 'setPointsNumber',
+        'points_monetary_value' => 'setPointsMonetaryValue',
     ];
 
     /**
@@ -99,8 +99,8 @@ class PointsGrantedDetail implements \ArrayAccess, \JsonSerializable, ModelInter
      * @var string[]
      */
     protected static array $getters = [
-        'pointsNumber' => 'getPointsNumber',
-        'pointsMonetaryValue' => 'getPointsMonetaryValue',
+        'points_number' => 'getPointsNumber',
+        'points_monetary_value' => 'getPointsMonetaryValue',
     ];
 
     /**
@@ -118,8 +118,8 @@ class PointsGrantedDetail implements \ArrayAccess, \JsonSerializable, ModelInter
      */
     public function __construct(array $data = null)
     {
-        $this->container['pointsNumber'] = $data['pointsNumber'] ?? null;
-        $this->container['pointsMonetaryValue'] = $data['pointsMonetaryValue'] ?? null;
+        $this->container['points_number'] = $data['points_number'] ?? null;
+        $this->container['points_monetary_value'] = $data['points_monetary_value'] ?? null;
     }
 
     /**
@@ -214,41 +214,41 @@ public function valid() : bool
     }
 
     /**
-     * Gets pointsNumber.
+     * Gets points_number.
      */
     public function getPointsNumber() : ?int
     {
-        return $this->container['pointsNumber'];
+        return $this->container['points_number'];
     }
 
     /**
-     * Sets pointsNumber.
+     * Sets points_number.
      *
-     * @param null|int $pointsNumber the number of Amazon Points granted with the purchase of an item
+     * @param null|int $points_number the number of Amazon Points granted with the purchase of an item
      */
-    public function setPointsNumber(?int $pointsNumber) : self
+    public function setPointsNumber(?int $points_number) : self
     {
-        $this->container['pointsNumber'] = $pointsNumber;
+        $this->container['points_number'] = $points_number;
 
         return $this;
     }
 
     /**
-     * Gets pointsMonetaryValue.
+     * Gets points_monetary_value.
      */
     public function getPointsMonetaryValue() : ?Money
     {
-        return $this->container['pointsMonetaryValue'];
+        return $this->container['points_monetary_value'];
     }
 
     /**
-     * Sets pointsMonetaryValue.
+     * Sets points_monetary_value.
      *
-     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $pointsMonetaryValue pointsMonetaryValue
+     * @param null|\AmazonPHP\SellingPartner\Model\Orders\Money $points_monetary_value points_monetary_value
      */
-    public function setPointsMonetaryValue(?Money $pointsMonetaryValue) : self
+    public function setPointsMonetaryValue(?Money $points_monetary_value) : self
     {
-        $this->container['pointsMonetaryValue'] = $pointsMonetaryValue;
+        $this->container['points_monetary_value'] = $points_monetary_value;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/ProductInfoDetail.php b/src/AmazonPHP/SellingPartner/Model/Orders/ProductInfoDetail.php
index 3bd704b52..a7485478d 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/ProductInfoDetail.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/ProductInfoDetail.php
@@ -56,7 +56,7 @@ class ProductInfoDetail implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'numberOfItems' => 'int',
+        'number_of_items' => 'int',
     ];
 
     /**
@@ -67,7 +67,7 @@ class ProductInfoDetail implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'numberOfItems' => null,
+        'number_of_items' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class ProductInfoDetail implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @var string[]
      */
     protected static array $attributeMap = [
-        'numberOfItems' => 'NumberOfItems',
+        'number_of_items' => 'NumberOfItems',
     ];
 
     /**
@@ -86,7 +86,7 @@ class ProductInfoDetail implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @var string[]
      */
     protected static array $setters = [
-        'numberOfItems' => 'setNumberOfItems',
+        'number_of_items' => 'setNumberOfItems',
     ];
 
     /**
@@ -95,7 +95,7 @@ class ProductInfoDetail implements \ArrayAccess, \JsonSerializable, ModelInterfa
      * @var string[]
      */
     protected static array $getters = [
-        'numberOfItems' => 'getNumberOfItems',
+        'number_of_items' => 'getNumberOfItems',
     ];
 
     /**
@@ -113,7 +113,7 @@ class ProductInfoDetail implements \ArrayAccess, \JsonSerializable, ModelInterfa
      */
     public function __construct(array $data = null)
     {
-        $this->container['numberOfItems'] = $data['numberOfItems'] ?? null;
+        $this->container['number_of_items'] = $data['number_of_items'] ?? null;
     }
 
     /**
@@ -208,21 +208,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets numberOfItems.
+     * Gets number_of_items.
      */
     public function getNumberOfItems() : ?int
     {
-        return $this->container['numberOfItems'];
+        return $this->container['number_of_items'];
     }
 
     /**
-     * Sets numberOfItems.
+     * Sets number_of_items.
      *
-     * @param null|int $numberOfItems the total number of items that are included in the ASIN
+     * @param null|int $number_of_items the total number of items that are included in the ASIN
      */
-    public function setNumberOfItems(?int $numberOfItems) : self
+    public function setNumberOfItems(?int $number_of_items) : self
     {
-        $this->container['numberOfItems'] = $numberOfItems;
+        $this->container['number_of_items'] = $number_of_items;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Orders/TaxCollection.php b/src/AmazonPHP/SellingPartner/Model/Orders/TaxCollection.php
index 8d039d49c..05e4f0dac 100644
--- a/src/AmazonPHP/SellingPartner/Model/Orders/TaxCollection.php
+++ b/src/AmazonPHP/SellingPartner/Model/Orders/TaxCollection.php
@@ -61,7 +61,7 @@ class TaxCollection implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPITypes = [
         'model' => 'string',
-        'responsibleParty' => 'string',
+        'responsible_party' => 'string',
     ];
 
     /**
@@ -73,7 +73,7 @@ class TaxCollection implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $openAPIFormats = [
         'model' => null,
-        'responsibleParty' => null,
+        'responsible_party' => null,
     ];
 
     /**
@@ -84,7 +84,7 @@ class TaxCollection implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $attributeMap = [
         'model' => 'Model',
-        'responsibleParty' => 'ResponsibleParty',
+        'responsible_party' => 'ResponsibleParty',
     ];
 
     /**
@@ -94,7 +94,7 @@ class TaxCollection implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $setters = [
         'model' => 'setModel',
-        'responsibleParty' => 'setResponsibleParty',
+        'responsible_party' => 'setResponsibleParty',
     ];
 
     /**
@@ -104,7 +104,7 @@ class TaxCollection implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     protected static array $getters = [
         'model' => 'getModel',
-        'responsibleParty' => 'getResponsibleParty',
+        'responsible_party' => 'getResponsibleParty',
     ];
 
     /**
@@ -123,7 +123,7 @@ class TaxCollection implements \ArrayAccess, \JsonSerializable, ModelInterface
     public function __construct(array $data = null)
     {
         $this->container['model'] = $data['model'] ?? null;
-        $this->container['responsibleParty'] = $data['responsibleParty'] ?? null;
+        $this->container['responsible_party'] = $data['responsible_party'] ?? null;
     }
 
     /**
@@ -241,10 +241,10 @@ public function listInvalidProperties() : array
 
         $allowedValues = $this->getResponsiblePartyAllowableValues();
 
-        if (null !== $this->container['responsibleParty'] && !\in_array($this->container['responsibleParty'], $allowedValues, true)) {
+        if (null !== $this->container['responsible_party'] && !\in_array($this->container['responsible_party'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'responsibleParty', must be one of '%s'",
-                $this->container['responsibleParty'],
+                "invalid value '%s' for 'responsible_party', must be one of '%s'",
+                $this->container['responsible_party'],
                 \implode("', '", $allowedValues)
             );
         }
@@ -295,32 +295,32 @@ public function setModel(?string $model) : self
     }
 
     /**
-     * Gets responsibleParty.
+     * Gets responsible_party.
      */
     public function getResponsibleParty() : ?string
     {
-        return $this->container['responsibleParty'];
+        return $this->container['responsible_party'];
     }
 
     /**
-     * Sets responsibleParty.
+     * Sets responsible_party.
      *
-     * @param null|string $responsibleParty the party responsible for withholding the taxes and remitting them to the taxing authority
+     * @param null|string $responsible_party the party responsible for withholding the taxes and remitting them to the taxing authority
      */
-    public function setResponsibleParty(?string $responsibleParty) : self
+    public function setResponsibleParty(?string $responsible_party) : self
     {
         $allowedValues = $this->getResponsiblePartyAllowableValues();
 
-        if (null !== $responsibleParty && !\in_array($responsibleParty, $allowedValues, true)) {
+        if (null !== $responsible_party && !\in_array($responsible_party, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'responsibleParty', must be one of '%s'",
-                    $responsibleParty,
+                    "Invalid value '%s' for 'responsible_party', must be one of '%s'",
+                    $responsible_party,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['responsibleParty'] = $responsibleParty;
+        $this->container['responsible_party'] = $responsible_party;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportResult.php b/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportResult.php
index 5bb1f7357..408a98e85 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportResult.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportResult.php
@@ -56,7 +56,7 @@ class CreateReportResult implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'reportId' => 'string',
+        'report_id' => 'string',
     ];
 
     /**
@@ -67,7 +67,7 @@ class CreateReportResult implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'reportId' => null,
+        'report_id' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class CreateReportResult implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $attributeMap = [
-        'reportId' => 'reportId',
+        'report_id' => 'reportId',
     ];
 
     /**
@@ -86,7 +86,7 @@ class CreateReportResult implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $setters = [
-        'reportId' => 'setReportId',
+        'report_id' => 'setReportId',
     ];
 
     /**
@@ -95,7 +95,7 @@ class CreateReportResult implements \ArrayAccess, \JsonSerializable, ModelInterf
      * @var string[]
      */
     protected static array $getters = [
-        'reportId' => 'getReportId',
+        'report_id' => 'getReportId',
     ];
 
     /**
@@ -113,7 +113,7 @@ class CreateReportResult implements \ArrayAccess, \JsonSerializable, ModelInterf
      */
     public function __construct(array $data = null)
     {
-        $this->container['reportId'] = $data['reportId'] ?? null;
+        $this->container['report_id'] = $data['report_id'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['reportId'] === null) {
-            $invalidProperties[] = "'reportId' can't be null";
+        if ($this->container['report_id'] === null) {
+            $invalidProperties[] = "'report_id' can't be null";
         }
 
         return $invalidProperties;
@@ -214,21 +214,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets reportId.
+     * Gets report_id.
      */
     public function getReportId() : string
     {
-        return $this->container['reportId'];
+        return $this->container['report_id'];
     }
 
     /**
-     * Sets reportId.
+     * Sets report_id.
      *
-     * @param string $reportId The identifier for the report. This identifier is unique only in combination with a seller ID.
+     * @param string $report_id The identifier for the report. This identifier is unique only in combination with a seller ID.
      */
-    public function setReportId(string $reportId) : self
+    public function setReportId(string $report_id) : self
     {
-        $this->container['reportId'] = $reportId;
+        $this->container['report_id'] = $report_id;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportScheduleResult.php b/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportScheduleResult.php
index 7fd415b64..8b729e02e 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportScheduleResult.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportScheduleResult.php
@@ -56,7 +56,7 @@ class CreateReportScheduleResult implements \ArrayAccess, \JsonSerializable, Mod
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'reportScheduleId' => 'string',
+        'report_schedule_id' => 'string',
     ];
 
     /**
@@ -67,7 +67,7 @@ class CreateReportScheduleResult implements \ArrayAccess, \JsonSerializable, Mod
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'reportScheduleId' => null,
+        'report_schedule_id' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class CreateReportScheduleResult implements \ArrayAccess, \JsonSerializable, Mod
      * @var string[]
      */
     protected static array $attributeMap = [
-        'reportScheduleId' => 'reportScheduleId',
+        'report_schedule_id' => 'reportScheduleId',
     ];
 
     /**
@@ -86,7 +86,7 @@ class CreateReportScheduleResult implements \ArrayAccess, \JsonSerializable, Mod
      * @var string[]
      */
     protected static array $setters = [
-        'reportScheduleId' => 'setReportScheduleId',
+        'report_schedule_id' => 'setReportScheduleId',
     ];
 
     /**
@@ -95,7 +95,7 @@ class CreateReportScheduleResult implements \ArrayAccess, \JsonSerializable, Mod
      * @var string[]
      */
     protected static array $getters = [
-        'reportScheduleId' => 'getReportScheduleId',
+        'report_schedule_id' => 'getReportScheduleId',
     ];
 
     /**
@@ -113,7 +113,7 @@ class CreateReportScheduleResult implements \ArrayAccess, \JsonSerializable, Mod
      */
     public function __construct(array $data = null)
     {
-        $this->container['reportScheduleId'] = $data['reportScheduleId'] ?? null;
+        $this->container['report_schedule_id'] = $data['report_schedule_id'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['reportScheduleId'] === null) {
-            $invalidProperties[] = "'reportScheduleId' can't be null";
+        if ($this->container['report_schedule_id'] === null) {
+            $invalidProperties[] = "'report_schedule_id' can't be null";
         }
 
         return $invalidProperties;
@@ -214,21 +214,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets reportScheduleId.
+     * Gets report_schedule_id.
      */
     public function getReportScheduleId() : string
     {
-        return $this->container['reportScheduleId'];
+        return $this->container['report_schedule_id'];
     }
 
     /**
-     * Sets reportScheduleId.
+     * Sets report_schedule_id.
      *
-     * @param string $reportScheduleId The identifier for the report schedule. This identifier is unique only in combination with a seller ID.
+     * @param string $report_schedule_id The identifier for the report schedule. This identifier is unique only in combination with a seller ID.
      */
-    public function setReportScheduleId(string $reportScheduleId) : self
+    public function setReportScheduleId(string $report_schedule_id) : self
     {
-        $this->container['reportScheduleId'] = $reportScheduleId;
+        $this->container['report_schedule_id'] = $report_schedule_id;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportScheduleSpecification.php b/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportScheduleSpecification.php
index 30d9c8250..d506841ee 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportScheduleSpecification.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportScheduleSpecification.php
@@ -92,11 +92,11 @@ class CreateReportScheduleSpecification implements \ArrayAccess, \JsonSerializab
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'reportType' => 'string',
-        'marketplaceIds' => 'string[]',
-        'reportOptions' => 'array<string,string>',
+        'report_type' => 'string',
+        'marketplace_ids' => 'string[]',
+        'report_options' => 'array<string,string>',
         'period' => 'string',
-        'nextReportCreationTime' => '\DateTime',
+        'next_report_creation_time' => '\DateTime',
     ];
 
     /**
@@ -107,11 +107,11 @@ class CreateReportScheduleSpecification implements \ArrayAccess, \JsonSerializab
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'reportType' => null,
-        'marketplaceIds' => null,
-        'reportOptions' => null,
+        'report_type' => null,
+        'marketplace_ids' => null,
+        'report_options' => null,
         'period' => null,
-        'nextReportCreationTime' => 'date-time',
+        'next_report_creation_time' => 'date-time',
     ];
 
     /**
@@ -121,11 +121,11 @@ class CreateReportScheduleSpecification implements \ArrayAccess, \JsonSerializab
      * @var string[]
      */
     protected static array $attributeMap = [
-        'reportType' => 'reportType',
-        'marketplaceIds' => 'marketplaceIds',
-        'reportOptions' => 'reportOptions',
+        'report_type' => 'reportType',
+        'marketplace_ids' => 'marketplaceIds',
+        'report_options' => 'reportOptions',
         'period' => 'period',
-        'nextReportCreationTime' => 'nextReportCreationTime',
+        'next_report_creation_time' => 'nextReportCreationTime',
     ];
 
     /**
@@ -134,11 +134,11 @@ class CreateReportScheduleSpecification implements \ArrayAccess, \JsonSerializab
      * @var string[]
      */
     protected static array $setters = [
-        'reportType' => 'setReportType',
-        'marketplaceIds' => 'setMarketplaceIds',
-        'reportOptions' => 'setReportOptions',
+        'report_type' => 'setReportType',
+        'marketplace_ids' => 'setMarketplaceIds',
+        'report_options' => 'setReportOptions',
         'period' => 'setPeriod',
-        'nextReportCreationTime' => 'setNextReportCreationTime',
+        'next_report_creation_time' => 'setNextReportCreationTime',
     ];
 
     /**
@@ -147,11 +147,11 @@ class CreateReportScheduleSpecification implements \ArrayAccess, \JsonSerializab
      * @var string[]
      */
     protected static array $getters = [
-        'reportType' => 'getReportType',
-        'marketplaceIds' => 'getMarketplaceIds',
-        'reportOptions' => 'getReportOptions',
+        'report_type' => 'getReportType',
+        'marketplace_ids' => 'getMarketplaceIds',
+        'report_options' => 'getReportOptions',
         'period' => 'getPeriod',
-        'nextReportCreationTime' => 'getNextReportCreationTime',
+        'next_report_creation_time' => 'getNextReportCreationTime',
     ];
 
     /**
@@ -169,11 +169,11 @@ class CreateReportScheduleSpecification implements \ArrayAccess, \JsonSerializab
      */
     public function __construct(array $data = null)
     {
-        $this->container['reportType'] = $data['reportType'] ?? null;
-        $this->container['marketplaceIds'] = $data['marketplaceIds'] ?? null;
-        $this->container['reportOptions'] = $data['reportOptions'] ?? null;
+        $this->container['report_type'] = $data['report_type'] ?? null;
+        $this->container['marketplace_ids'] = $data['marketplace_ids'] ?? null;
+        $this->container['report_options'] = $data['report_options'] ?? null;
         $this->container['period'] = $data['period'] ?? null;
-        $this->container['nextReportCreationTime'] = $data['nextReportCreationTime'] ?? null;
+        $this->container['next_report_creation_time'] = $data['next_report_creation_time'] ?? null;
     }
 
     /**
@@ -284,20 +284,20 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['reportType'] === null) {
-            $invalidProperties[] = "'reportType' can't be null";
+        if ($this->container['report_type'] === null) {
+            $invalidProperties[] = "'report_type' can't be null";
         }
 
-        if ($this->container['marketplaceIds'] === null) {
-            $invalidProperties[] = "'marketplaceIds' can't be null";
+        if ($this->container['marketplace_ids'] === null) {
+            $invalidProperties[] = "'marketplace_ids' can't be null";
         }
 
-        if ((\count($this->container['marketplaceIds']) > 25)) {
-            $invalidProperties[] = "invalid value for 'marketplaceIds', number of items must be less than or equal to 25.";
+        if ((\count($this->container['marketplace_ids']) > 25)) {
+            $invalidProperties[] = "invalid value for 'marketplace_ids', number of items must be less than or equal to 25.";
         }
 
-        if ((\count($this->container['marketplaceIds']) < 1)) {
-            $invalidProperties[] = "invalid value for 'marketplaceIds', number of items must be greater than or equal to 1.";
+        if ((\count($this->container['marketplace_ids']) < 1)) {
+            $invalidProperties[] = "invalid value for 'marketplace_ids', number of items must be greater than or equal to 1.";
         }
 
         if ($this->container['period'] === null) {
@@ -328,72 +328,72 @@ public function valid() : bool
     }
 
     /**
-     * Gets reportType.
+     * Gets report_type.
      */
     public function getReportType() : string
     {
-        return $this->container['reportType'];
+        return $this->container['report_type'];
     }
 
     /**
-     * Sets reportType.
+     * Sets report_type.
      *
-     * @param string $reportType the report type
+     * @param string $report_type the report type
      */
-    public function setReportType(string $reportType) : self
+    public function setReportType(string $report_type) : self
     {
-        $this->container['reportType'] = $reportType;
+        $this->container['report_type'] = $report_type;
 
         return $this;
     }
 
     /**
-     * Gets marketplaceIds.
+     * Gets marketplace_ids.
      *
      * @return string[]
      */
     public function getMarketplaceIds() : array
     {
-        return $this->container['marketplaceIds'];
+        return $this->container['marketplace_ids'];
     }
 
     /**
-     * Sets marketplaceIds.
+     * Sets marketplace_ids.
      *
-     * @param string[] $marketplaceIds a list of marketplace identifiers for the report schedule
+     * @param string[] $marketplace_ids a list of marketplace identifiers for the report schedule
      */
-    public function setMarketplaceIds(array $marketplaceIds) : self
+    public function setMarketplaceIds(array $marketplace_ids) : self
     {
-        if ((\count($marketplaceIds) > 25)) {
-            throw new \InvalidArgumentException('invalid value for $marketplaceIds when calling CreateReportScheduleSpecification., number of items must be less than or equal to 25.');
+        if ((\count($marketplace_ids) > 25)) {
+            throw new \InvalidArgumentException('invalid value for $marketplace_ids when calling CreateReportScheduleSpecification., number of items must be less than or equal to 25.');
         }
 
-        if ((\count($marketplaceIds) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $marketplaceIds when calling CreateReportScheduleSpecification., number of items must be greater than or equal to 1.');
+        if ((\count($marketplace_ids) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $marketplace_ids when calling CreateReportScheduleSpecification., number of items must be greater than or equal to 1.');
         }
-        $this->container['marketplaceIds'] = $marketplaceIds;
+        $this->container['marketplace_ids'] = $marketplace_ids;
 
         return $this;
     }
 
     /**
-     * Gets reportOptions.
+     * Gets report_options.
      *
      * @return null|array<string,string>
      */
     public function getReportOptions() : ?array
     {
-        return $this->container['reportOptions'];
+        return $this->container['report_options'];
     }
 
     /**
-     * Sets reportOptions.
+     * Sets report_options.
      *
-     * @param null|array<string,string> $reportOptions Additional information passed to reports. This varies by report type.
+     * @param null|array<string,string> $report_options Additional information passed to reports. This varies by report type.
      */
-    public function setReportOptions(?array $reportOptions) : self
+    public function setReportOptions(?array $report_options) : self
     {
-        $this->container['reportOptions'] = $reportOptions;
+        $this->container['report_options'] = $report_options;
 
         return $this;
     }
@@ -430,21 +430,21 @@ public function setPeriod(string $period) : self
     }
 
     /**
-     * Gets nextReportCreationTime.
+     * Gets next_report_creation_time.
      */
     public function getNextReportCreationTime() : ?\DateTime
     {
-        return $this->container['nextReportCreationTime'];
+        return $this->container['next_report_creation_time'];
     }
 
     /**
-     * Sets nextReportCreationTime.
+     * Sets next_report_creation_time.
      *
-     * @param null|\DateTime $nextReportCreationTime the date and time when the schedule will create its next report, in ISO 8601 date time format
+     * @param null|\DateTime $next_report_creation_time the date and time when the schedule will create its next report, in ISO 8601 date time format
      */
-    public function setNextReportCreationTime(?\DateTime $nextReportCreationTime) : self
+    public function setNextReportCreationTime(?\DateTime $next_report_creation_time) : self
     {
-        $this->container['nextReportCreationTime'] = $nextReportCreationTime;
+        $this->container['next_report_creation_time'] = $next_report_creation_time;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportSpecification.php b/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportSpecification.php
index 9e5a855bc..ad76183fc 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportSpecification.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/CreateReportSpecification.php
@@ -56,11 +56,11 @@ class CreateReportSpecification implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'reportOptions' => 'array<string,string>',
-        'reportType' => 'string',
-        'dataStartTime' => '\DateTime',
-        'dataEndTime' => '\DateTime',
-        'marketplaceIds' => 'string[]',
+        'report_options' => 'array<string,string>',
+        'report_type' => 'string',
+        'data_start_time' => '\DateTime',
+        'data_end_time' => '\DateTime',
+        'marketplace_ids' => 'string[]',
     ];
 
     /**
@@ -71,11 +71,11 @@ class CreateReportSpecification implements \ArrayAccess, \JsonSerializable, Mode
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'reportOptions' => null,
-        'reportType' => null,
-        'dataStartTime' => 'date-time',
-        'dataEndTime' => 'date-time',
-        'marketplaceIds' => null,
+        'report_options' => null,
+        'report_type' => null,
+        'data_start_time' => 'date-time',
+        'data_end_time' => 'date-time',
+        'marketplace_ids' => null,
     ];
 
     /**
@@ -85,11 +85,11 @@ class CreateReportSpecification implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $attributeMap = [
-        'reportOptions' => 'reportOptions',
-        'reportType' => 'reportType',
-        'dataStartTime' => 'dataStartTime',
-        'dataEndTime' => 'dataEndTime',
-        'marketplaceIds' => 'marketplaceIds',
+        'report_options' => 'reportOptions',
+        'report_type' => 'reportType',
+        'data_start_time' => 'dataStartTime',
+        'data_end_time' => 'dataEndTime',
+        'marketplace_ids' => 'marketplaceIds',
     ];
 
     /**
@@ -98,11 +98,11 @@ class CreateReportSpecification implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $setters = [
-        'reportOptions' => 'setReportOptions',
-        'reportType' => 'setReportType',
-        'dataStartTime' => 'setDataStartTime',
-        'dataEndTime' => 'setDataEndTime',
-        'marketplaceIds' => 'setMarketplaceIds',
+        'report_options' => 'setReportOptions',
+        'report_type' => 'setReportType',
+        'data_start_time' => 'setDataStartTime',
+        'data_end_time' => 'setDataEndTime',
+        'marketplace_ids' => 'setMarketplaceIds',
     ];
 
     /**
@@ -111,11 +111,11 @@ class CreateReportSpecification implements \ArrayAccess, \JsonSerializable, Mode
      * @var string[]
      */
     protected static array $getters = [
-        'reportOptions' => 'getReportOptions',
-        'reportType' => 'getReportType',
-        'dataStartTime' => 'getDataStartTime',
-        'dataEndTime' => 'getDataEndTime',
-        'marketplaceIds' => 'getMarketplaceIds',
+        'report_options' => 'getReportOptions',
+        'report_type' => 'getReportType',
+        'data_start_time' => 'getDataStartTime',
+        'data_end_time' => 'getDataEndTime',
+        'marketplace_ids' => 'getMarketplaceIds',
     ];
 
     /**
@@ -133,11 +133,11 @@ class CreateReportSpecification implements \ArrayAccess, \JsonSerializable, Mode
      */
     public function __construct(array $data = null)
     {
-        $this->container['reportOptions'] = $data['reportOptions'] ?? null;
-        $this->container['reportType'] = $data['reportType'] ?? null;
-        $this->container['dataStartTime'] = $data['dataStartTime'] ?? null;
-        $this->container['dataEndTime'] = $data['dataEndTime'] ?? null;
-        $this->container['marketplaceIds'] = $data['marketplaceIds'] ?? null;
+        $this->container['report_options'] = $data['report_options'] ?? null;
+        $this->container['report_type'] = $data['report_type'] ?? null;
+        $this->container['data_start_time'] = $data['data_start_time'] ?? null;
+        $this->container['data_end_time'] = $data['data_end_time'] ?? null;
+        $this->container['marketplace_ids'] = $data['marketplace_ids'] ?? null;
     }
 
     /**
@@ -219,20 +219,20 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['reportType'] === null) {
-            $invalidProperties[] = "'reportType' can't be null";
+        if ($this->container['report_type'] === null) {
+            $invalidProperties[] = "'report_type' can't be null";
         }
 
-        if ($this->container['marketplaceIds'] === null) {
-            $invalidProperties[] = "'marketplaceIds' can't be null";
+        if ($this->container['marketplace_ids'] === null) {
+            $invalidProperties[] = "'marketplace_ids' can't be null";
         }
 
-        if ((\count($this->container['marketplaceIds']) > 25)) {
-            $invalidProperties[] = "invalid value for 'marketplaceIds', number of items must be less than or equal to 25.";
+        if ((\count($this->container['marketplace_ids']) > 25)) {
+            $invalidProperties[] = "invalid value for 'marketplace_ids', number of items must be less than or equal to 25.";
         }
 
-        if ((\count($this->container['marketplaceIds']) < 1)) {
-            $invalidProperties[] = "invalid value for 'marketplaceIds', number of items must be greater than or equal to 1.";
+        if ((\count($this->container['marketplace_ids']) < 1)) {
+            $invalidProperties[] = "invalid value for 'marketplace_ids', number of items must be greater than or equal to 1.";
         }
 
         return $invalidProperties;
@@ -250,112 +250,112 @@ public function valid() : bool
     }
 
     /**
-     * Gets reportOptions.
+     * Gets report_options.
      *
      * @return null|array<string,string>
      */
     public function getReportOptions() : ?array
     {
-        return $this->container['reportOptions'];
+        return $this->container['report_options'];
     }
 
     /**
-     * Sets reportOptions.
+     * Sets report_options.
      *
-     * @param null|array<string,string> $reportOptions Additional information passed to reports. This varies by report type.
+     * @param null|array<string,string> $report_options Additional information passed to reports. This varies by report type.
      */
-    public function setReportOptions(?array $reportOptions) : self
+    public function setReportOptions(?array $report_options) : self
     {
-        $this->container['reportOptions'] = $reportOptions;
+        $this->container['report_options'] = $report_options;
 
         return $this;
     }
 
     /**
-     * Gets reportType.
+     * Gets report_type.
      */
     public function getReportType() : string
     {
-        return $this->container['reportType'];
+        return $this->container['report_type'];
     }
 
     /**
-     * Sets reportType.
+     * Sets report_type.
      *
-     * @param string $reportType the report type
+     * @param string $report_type the report type
      */
-    public function setReportType(string $reportType) : self
+    public function setReportType(string $report_type) : self
     {
-        $this->container['reportType'] = $reportType;
+        $this->container['report_type'] = $report_type;
 
         return $this;
     }
 
     /**
-     * Gets dataStartTime.
+     * Gets data_start_time.
      */
     public function getDataStartTime() : ?\DateTime
     {
-        return $this->container['dataStartTime'];
+        return $this->container['data_start_time'];
     }
 
     /**
-     * Sets dataStartTime.
+     * Sets data_start_time.
      *
-     * @param null|\DateTime $dataStartTime The start of a date and time range, in ISO 8601 date time format, used for selecting the data to report. The default is now. The value must be prior to or equal to the current date and time. Not all report types make use of this.
+     * @param null|\DateTime $data_start_time The start of a date and time range, in ISO 8601 date time format, used for selecting the data to report. The default is now. The value must be prior to or equal to the current date and time. Not all report types make use of this.
      */
-    public function setDataStartTime(?\DateTime $dataStartTime) : self
+    public function setDataStartTime(?\DateTime $data_start_time) : self
     {
-        $this->container['dataStartTime'] = $dataStartTime;
+        $this->container['data_start_time'] = $data_start_time;
 
         return $this;
     }
 
     /**
-     * Gets dataEndTime.
+     * Gets data_end_time.
      */
     public function getDataEndTime() : ?\DateTime
     {
-        return $this->container['dataEndTime'];
+        return $this->container['data_end_time'];
     }
 
     /**
-     * Sets dataEndTime.
+     * Sets data_end_time.
      *
-     * @param null|\DateTime $dataEndTime The end of a date and time range, in ISO 8601 date time format, used for selecting the data to report. The default is now. The value must be prior to or equal to the current date and time. Not all report types make use of this.
+     * @param null|\DateTime $data_end_time The end of a date and time range, in ISO 8601 date time format, used for selecting the data to report. The default is now. The value must be prior to or equal to the current date and time. Not all report types make use of this.
      */
-    public function setDataEndTime(?\DateTime $dataEndTime) : self
+    public function setDataEndTime(?\DateTime $data_end_time) : self
     {
-        $this->container['dataEndTime'] = $dataEndTime;
+        $this->container['data_end_time'] = $data_end_time;
 
         return $this;
     }
 
     /**
-     * Gets marketplaceIds.
+     * Gets marketplace_ids.
      *
      * @return string[]
      */
     public function getMarketplaceIds() : array
     {
-        return $this->container['marketplaceIds'];
+        return $this->container['marketplace_ids'];
     }
 
     /**
-     * Sets marketplaceIds.
+     * Sets marketplace_ids.
      *
-     * @param string[] $marketplaceIds A list of marketplace identifiers. The report document's contents will contain data for all of the specified marketplaces, unless the report type indicates otherwise.
+     * @param string[] $marketplace_ids A list of marketplace identifiers. The report document's contents will contain data for all of the specified marketplaces, unless the report type indicates otherwise.
      */
-    public function setMarketplaceIds(array $marketplaceIds) : self
+    public function setMarketplaceIds(array $marketplace_ids) : self
     {
-        if ((\count($marketplaceIds) > 25)) {
-            throw new \InvalidArgumentException('invalid value for $marketplaceIds when calling CreateReportSpecification., number of items must be less than or equal to 25.');
+        if ((\count($marketplace_ids) > 25)) {
+            throw new \InvalidArgumentException('invalid value for $marketplace_ids when calling CreateReportSpecification., number of items must be less than or equal to 25.');
         }
 
-        if ((\count($marketplaceIds) < 1)) {
-            throw new \InvalidArgumentException('invalid length for $marketplaceIds when calling CreateReportSpecification., number of items must be greater than or equal to 1.');
+        if ((\count($marketplace_ids) < 1)) {
+            throw new \InvalidArgumentException('invalid length for $marketplace_ids when calling CreateReportSpecification., number of items must be greater than or equal to 1.');
         }
-        $this->container['marketplaceIds'] = $marketplaceIds;
+        $this->container['marketplace_ids'] = $marketplace_ids;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/GetReportsResponse.php b/src/AmazonPHP/SellingPartner/Model/Reports/GetReportsResponse.php
index 11f95f123..50ca340b4 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/GetReportsResponse.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/GetReportsResponse.php
@@ -57,7 +57,7 @@ class GetReportsResponse implements \ArrayAccess, \JsonSerializable, ModelInterf
      */
     protected static array $openAPITypes = [
         'payload' => '\AmazonPHP\SellingPartner\Model\Reports\Report[]',
-        'nextToken' => 'string',
+        'next_token' => 'string',
         'errors' => '\AmazonPHP\SellingPartner\Model\Reports\Error[]',
     ];
 
@@ -70,7 +70,7 @@ class GetReportsResponse implements \ArrayAccess, \JsonSerializable, ModelInterf
      */
     protected static array $openAPIFormats = [
         'payload' => null,
-        'nextToken' => null,
+        'next_token' => null,
         'errors' => null,
     ];
 
@@ -82,7 +82,7 @@ class GetReportsResponse implements \ArrayAccess, \JsonSerializable, ModelInterf
      */
     protected static array $attributeMap = [
         'payload' => 'payload',
-        'nextToken' => 'nextToken',
+        'next_token' => 'nextToken',
         'errors' => 'errors',
     ];
 
@@ -93,7 +93,7 @@ class GetReportsResponse implements \ArrayAccess, \JsonSerializable, ModelInterf
      */
     protected static array $setters = [
         'payload' => 'setPayload',
-        'nextToken' => 'setNextToken',
+        'next_token' => 'setNextToken',
         'errors' => 'setErrors',
     ];
 
@@ -104,7 +104,7 @@ class GetReportsResponse implements \ArrayAccess, \JsonSerializable, ModelInterf
      */
     protected static array $getters = [
         'payload' => 'getPayload',
-        'nextToken' => 'getNextToken',
+        'next_token' => 'getNextToken',
         'errors' => 'getErrors',
     ];
 
@@ -124,7 +124,7 @@ class GetReportsResponse implements \ArrayAccess, \JsonSerializable, ModelInterf
     public function __construct(array $data = null)
     {
         $this->container['payload'] = $data['payload'] ?? null;
-        $this->container['nextToken'] = $data['nextToken'] ?? null;
+        $this->container['next_token'] = $data['next_token'] ?? null;
         $this->container['errors'] = $data['errors'] ?? null;
     }
 
@@ -242,21 +242,21 @@ public function setPayload(?array $payload) : self
     }
 
     /**
-     * Gets nextToken.
+     * Gets next_token.
      */
     public function getNextToken() : ?string
     {
-        return $this->container['nextToken'];
+        return $this->container['next_token'];
     }
 
     /**
-     * Sets nextToken.
+     * Sets next_token.
      *
-     * @param null|string $nextToken Returned when the number of results exceeds pageSize. To get the next page of results, call getReports with this token as the only parameter.
+     * @param null|string $next_token Returned when the number of results exceeds pageSize. To get the next page of results, call getReports with this token as the only parameter.
      */
-    public function setNextToken(?string $nextToken) : self
+    public function setNextToken(?string $next_token) : self
     {
-        $this->container['nextToken'] = $nextToken;
+        $this->container['next_token'] = $next_token;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/Report.php b/src/AmazonPHP/SellingPartner/Model/Reports/Report.php
index f9f083572..74cd3c75f 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/Report.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/Report.php
@@ -66,17 +66,17 @@ class Report implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'marketplaceIds' => 'string[]',
-        'reportId' => 'string',
-        'reportType' => 'string',
-        'dataStartTime' => '\DateTime',
-        'dataEndTime' => '\DateTime',
-        'reportScheduleId' => 'string',
-        'createdTime' => '\DateTime',
-        'processingStatus' => 'string',
-        'processingStartTime' => '\DateTime',
-        'processingEndTime' => '\DateTime',
-        'reportDocumentId' => 'string',
+        'marketplace_ids' => 'string[]',
+        'report_id' => 'string',
+        'report_type' => 'string',
+        'data_start_time' => '\DateTime',
+        'data_end_time' => '\DateTime',
+        'report_schedule_id' => 'string',
+        'created_time' => '\DateTime',
+        'processing_status' => 'string',
+        'processing_start_time' => '\DateTime',
+        'processing_end_time' => '\DateTime',
+        'report_document_id' => 'string',
     ];
 
     /**
@@ -87,17 +87,17 @@ class Report implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'marketplaceIds' => null,
-        'reportId' => null,
-        'reportType' => null,
-        'dataStartTime' => 'date-time',
-        'dataEndTime' => 'date-time',
-        'reportScheduleId' => null,
-        'createdTime' => 'date-time',
-        'processingStatus' => null,
-        'processingStartTime' => 'date-time',
-        'processingEndTime' => 'date-time',
-        'reportDocumentId' => null,
+        'marketplace_ids' => null,
+        'report_id' => null,
+        'report_type' => null,
+        'data_start_time' => 'date-time',
+        'data_end_time' => 'date-time',
+        'report_schedule_id' => null,
+        'created_time' => 'date-time',
+        'processing_status' => null,
+        'processing_start_time' => 'date-time',
+        'processing_end_time' => 'date-time',
+        'report_document_id' => null,
     ];
 
     /**
@@ -107,17 +107,17 @@ class Report implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'marketplaceIds' => 'marketplaceIds',
-        'reportId' => 'reportId',
-        'reportType' => 'reportType',
-        'dataStartTime' => 'dataStartTime',
-        'dataEndTime' => 'dataEndTime',
-        'reportScheduleId' => 'reportScheduleId',
-        'createdTime' => 'createdTime',
-        'processingStatus' => 'processingStatus',
-        'processingStartTime' => 'processingStartTime',
-        'processingEndTime' => 'processingEndTime',
-        'reportDocumentId' => 'reportDocumentId',
+        'marketplace_ids' => 'marketplaceIds',
+        'report_id' => 'reportId',
+        'report_type' => 'reportType',
+        'data_start_time' => 'dataStartTime',
+        'data_end_time' => 'dataEndTime',
+        'report_schedule_id' => 'reportScheduleId',
+        'created_time' => 'createdTime',
+        'processing_status' => 'processingStatus',
+        'processing_start_time' => 'processingStartTime',
+        'processing_end_time' => 'processingEndTime',
+        'report_document_id' => 'reportDocumentId',
     ];
 
     /**
@@ -126,17 +126,17 @@ class Report implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'marketplaceIds' => 'setMarketplaceIds',
-        'reportId' => 'setReportId',
-        'reportType' => 'setReportType',
-        'dataStartTime' => 'setDataStartTime',
-        'dataEndTime' => 'setDataEndTime',
-        'reportScheduleId' => 'setReportScheduleId',
-        'createdTime' => 'setCreatedTime',
-        'processingStatus' => 'setProcessingStatus',
-        'processingStartTime' => 'setProcessingStartTime',
-        'processingEndTime' => 'setProcessingEndTime',
-        'reportDocumentId' => 'setReportDocumentId',
+        'marketplace_ids' => 'setMarketplaceIds',
+        'report_id' => 'setReportId',
+        'report_type' => 'setReportType',
+        'data_start_time' => 'setDataStartTime',
+        'data_end_time' => 'setDataEndTime',
+        'report_schedule_id' => 'setReportScheduleId',
+        'created_time' => 'setCreatedTime',
+        'processing_status' => 'setProcessingStatus',
+        'processing_start_time' => 'setProcessingStartTime',
+        'processing_end_time' => 'setProcessingEndTime',
+        'report_document_id' => 'setReportDocumentId',
     ];
 
     /**
@@ -145,17 +145,17 @@ class Report implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'marketplaceIds' => 'getMarketplaceIds',
-        'reportId' => 'getReportId',
-        'reportType' => 'getReportType',
-        'dataStartTime' => 'getDataStartTime',
-        'dataEndTime' => 'getDataEndTime',
-        'reportScheduleId' => 'getReportScheduleId',
-        'createdTime' => 'getCreatedTime',
-        'processingStatus' => 'getProcessingStatus',
-        'processingStartTime' => 'getProcessingStartTime',
-        'processingEndTime' => 'getProcessingEndTime',
-        'reportDocumentId' => 'getReportDocumentId',
+        'marketplace_ids' => 'getMarketplaceIds',
+        'report_id' => 'getReportId',
+        'report_type' => 'getReportType',
+        'data_start_time' => 'getDataStartTime',
+        'data_end_time' => 'getDataEndTime',
+        'report_schedule_id' => 'getReportScheduleId',
+        'created_time' => 'getCreatedTime',
+        'processing_status' => 'getProcessingStatus',
+        'processing_start_time' => 'getProcessingStartTime',
+        'processing_end_time' => 'getProcessingEndTime',
+        'report_document_id' => 'getReportDocumentId',
     ];
 
     /**
@@ -173,17 +173,17 @@ class Report implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['marketplaceIds'] = $data['marketplaceIds'] ?? null;
-        $this->container['reportId'] = $data['reportId'] ?? null;
-        $this->container['reportType'] = $data['reportType'] ?? null;
-        $this->container['dataStartTime'] = $data['dataStartTime'] ?? null;
-        $this->container['dataEndTime'] = $data['dataEndTime'] ?? null;
-        $this->container['reportScheduleId'] = $data['reportScheduleId'] ?? null;
-        $this->container['createdTime'] = $data['createdTime'] ?? null;
-        $this->container['processingStatus'] = $data['processingStatus'] ?? null;
-        $this->container['processingStartTime'] = $data['processingStartTime'] ?? null;
-        $this->container['processingEndTime'] = $data['processingEndTime'] ?? null;
-        $this->container['reportDocumentId'] = $data['reportDocumentId'] ?? null;
+        $this->container['marketplace_ids'] = $data['marketplace_ids'] ?? null;
+        $this->container['report_id'] = $data['report_id'] ?? null;
+        $this->container['report_type'] = $data['report_type'] ?? null;
+        $this->container['data_start_time'] = $data['data_start_time'] ?? null;
+        $this->container['data_end_time'] = $data['data_end_time'] ?? null;
+        $this->container['report_schedule_id'] = $data['report_schedule_id'] ?? null;
+        $this->container['created_time'] = $data['created_time'] ?? null;
+        $this->container['processing_status'] = $data['processing_status'] ?? null;
+        $this->container['processing_start_time'] = $data['processing_start_time'] ?? null;
+        $this->container['processing_end_time'] = $data['processing_end_time'] ?? null;
+        $this->container['report_document_id'] = $data['report_document_id'] ?? null;
     }
 
     /**
@@ -281,27 +281,27 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['reportId'] === null) {
-            $invalidProperties[] = "'reportId' can't be null";
+        if ($this->container['report_id'] === null) {
+            $invalidProperties[] = "'report_id' can't be null";
         }
 
-        if ($this->container['reportType'] === null) {
-            $invalidProperties[] = "'reportType' can't be null";
+        if ($this->container['report_type'] === null) {
+            $invalidProperties[] = "'report_type' can't be null";
         }
 
-        if ($this->container['createdTime'] === null) {
-            $invalidProperties[] = "'createdTime' can't be null";
+        if ($this->container['created_time'] === null) {
+            $invalidProperties[] = "'created_time' can't be null";
         }
 
-        if ($this->container['processingStatus'] === null) {
-            $invalidProperties[] = "'processingStatus' can't be null";
+        if ($this->container['processing_status'] === null) {
+            $invalidProperties[] = "'processing_status' can't be null";
         }
         $allowedValues = $this->getProcessingStatusAllowableValues();
 
-        if (null !== $this->container['processingStatus'] && !\in_array($this->container['processingStatus'], $allowedValues, true)) {
+        if (null !== $this->container['processing_status'] && !\in_array($this->container['processing_status'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'processingStatus', must be one of '%s'",
-                $this->container['processingStatus'],
+                "invalid value '%s' for 'processing_status', must be one of '%s'",
+                $this->container['processing_status'],
                 \implode("', '", $allowedValues)
             );
         }
@@ -321,234 +321,234 @@ public function valid() : bool
     }
 
     /**
-     * Gets marketplaceIds.
+     * Gets marketplace_ids.
      *
      * @return null|string[]
      */
     public function getMarketplaceIds() : ?array
     {
-        return $this->container['marketplaceIds'];
+        return $this->container['marketplace_ids'];
     }
 
     /**
-     * Sets marketplaceIds.
+     * Sets marketplace_ids.
      *
-     * @param null|string[] $marketplaceIds a list of marketplace identifiers for the report
+     * @param null|string[] $marketplace_ids a list of marketplace identifiers for the report
      */
-    public function setMarketplaceIds(?array $marketplaceIds) : self
+    public function setMarketplaceIds(?array $marketplace_ids) : self
     {
-        $this->container['marketplaceIds'] = $marketplaceIds;
+        $this->container['marketplace_ids'] = $marketplace_ids;
 
         return $this;
     }
 
     /**
-     * Gets reportId.
+     * Gets report_id.
      */
     public function getReportId() : string
     {
-        return $this->container['reportId'];
+        return $this->container['report_id'];
     }
 
     /**
-     * Sets reportId.
+     * Sets report_id.
      *
-     * @param string $reportId The identifier for the report. This identifier is unique only in combination with a seller ID.
+     * @param string $report_id The identifier for the report. This identifier is unique only in combination with a seller ID.
      */
-    public function setReportId(string $reportId) : self
+    public function setReportId(string $report_id) : self
     {
-        $this->container['reportId'] = $reportId;
+        $this->container['report_id'] = $report_id;
 
         return $this;
     }
 
     /**
-     * Gets reportType.
+     * Gets report_type.
      */
     public function getReportType() : string
     {
-        return $this->container['reportType'];
+        return $this->container['report_type'];
     }
 
     /**
-     * Sets reportType.
+     * Sets report_type.
      *
-     * @param string $reportType the report type
+     * @param string $report_type the report type
      */
-    public function setReportType(string $reportType) : self
+    public function setReportType(string $report_type) : self
     {
-        $this->container['reportType'] = $reportType;
+        $this->container['report_type'] = $report_type;
 
         return $this;
     }
 
     /**
-     * Gets dataStartTime.
+     * Gets data_start_time.
      */
     public function getDataStartTime() : ?\DateTime
     {
-        return $this->container['dataStartTime'];
+        return $this->container['data_start_time'];
     }
 
     /**
-     * Sets dataStartTime.
+     * Sets data_start_time.
      *
-     * @param null|\DateTime $dataStartTime the start of a date and time range used for selecting the data to report
+     * @param null|\DateTime $data_start_time the start of a date and time range used for selecting the data to report
      */
-    public function setDataStartTime(?\DateTime $dataStartTime) : self
+    public function setDataStartTime(?\DateTime $data_start_time) : self
     {
-        $this->container['dataStartTime'] = $dataStartTime;
+        $this->container['data_start_time'] = $data_start_time;
 
         return $this;
     }
 
     /**
-     * Gets dataEndTime.
+     * Gets data_end_time.
      */
     public function getDataEndTime() : ?\DateTime
     {
-        return $this->container['dataEndTime'];
+        return $this->container['data_end_time'];
     }
 
     /**
-     * Sets dataEndTime.
+     * Sets data_end_time.
      *
-     * @param null|\DateTime $dataEndTime the end of a date and time range used for selecting the data to report
+     * @param null|\DateTime $data_end_time the end of a date and time range used for selecting the data to report
      */
-    public function setDataEndTime(?\DateTime $dataEndTime) : self
+    public function setDataEndTime(?\DateTime $data_end_time) : self
     {
-        $this->container['dataEndTime'] = $dataEndTime;
+        $this->container['data_end_time'] = $data_end_time;
 
         return $this;
     }
 
     /**
-     * Gets reportScheduleId.
+     * Gets report_schedule_id.
      */
     public function getReportScheduleId() : ?string
     {
-        return $this->container['reportScheduleId'];
+        return $this->container['report_schedule_id'];
     }
 
     /**
-     * Sets reportScheduleId.
+     * Sets report_schedule_id.
      *
-     * @param null|string $reportScheduleId The identifier of the report schedule that created this report (if any). This identifier is unique only in combination with a seller ID.
+     * @param null|string $report_schedule_id The identifier of the report schedule that created this report (if any). This identifier is unique only in combination with a seller ID.
      */
-    public function setReportScheduleId(?string $reportScheduleId) : self
+    public function setReportScheduleId(?string $report_schedule_id) : self
     {
-        $this->container['reportScheduleId'] = $reportScheduleId;
+        $this->container['report_schedule_id'] = $report_schedule_id;
 
         return $this;
     }
 
     /**
-     * Gets createdTime.
+     * Gets created_time.
      */
     public function getCreatedTime() : \DateTime
     {
-        return $this->container['createdTime'];
+        return $this->container['created_time'];
     }
 
     /**
-     * Sets createdTime.
+     * Sets created_time.
      *
-     * @param \DateTime $createdTime the date and time when the report was created
+     * @param \DateTime $created_time the date and time when the report was created
      */
-    public function setCreatedTime(\DateTime $createdTime) : self
+    public function setCreatedTime(\DateTime $created_time) : self
     {
-        $this->container['createdTime'] = $createdTime;
+        $this->container['created_time'] = $created_time;
 
         return $this;
     }
 
     /**
-     * Gets processingStatus.
+     * Gets processing_status.
      */
     public function getProcessingStatus() : string
     {
-        return $this->container['processingStatus'];
+        return $this->container['processing_status'];
     }
 
     /**
-     * Sets processingStatus.
+     * Sets processing_status.
      *
-     * @param string $processingStatus the processing status of the report
+     * @param string $processing_status the processing status of the report
      */
-    public function setProcessingStatus(string $processingStatus) : self
+    public function setProcessingStatus(string $processing_status) : self
     {
         $allowedValues = $this->getProcessingStatusAllowableValues();
 
-        if (!\in_array($processingStatus, $allowedValues, true)) {
+        if (!\in_array($processing_status, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'processingStatus', must be one of '%s'",
-                    $processingStatus,
+                    "Invalid value '%s' for 'processing_status', must be one of '%s'",
+                    $processing_status,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['processingStatus'] = $processingStatus;
+        $this->container['processing_status'] = $processing_status;
 
         return $this;
     }
 
     /**
-     * Gets processingStartTime.
+     * Gets processing_start_time.
      */
     public function getProcessingStartTime() : ?\DateTime
     {
-        return $this->container['processingStartTime'];
+        return $this->container['processing_start_time'];
     }
 
     /**
-     * Sets processingStartTime.
+     * Sets processing_start_time.
      *
-     * @param null|\DateTime $processingStartTime the date and time when the report processing started, in ISO 8601 date time format
+     * @param null|\DateTime $processing_start_time the date and time when the report processing started, in ISO 8601 date time format
      */
-    public function setProcessingStartTime(?\DateTime $processingStartTime) : self
+    public function setProcessingStartTime(?\DateTime $processing_start_time) : self
     {
-        $this->container['processingStartTime'] = $processingStartTime;
+        $this->container['processing_start_time'] = $processing_start_time;
 
         return $this;
     }
 
     /**
-     * Gets processingEndTime.
+     * Gets processing_end_time.
      */
     public function getProcessingEndTime() : ?\DateTime
     {
-        return $this->container['processingEndTime'];
+        return $this->container['processing_end_time'];
     }
 
     /**
-     * Sets processingEndTime.
+     * Sets processing_end_time.
      *
-     * @param null|\DateTime $processingEndTime the date and time when the report processing completed, in ISO 8601 date time format
+     * @param null|\DateTime $processing_end_time the date and time when the report processing completed, in ISO 8601 date time format
      */
-    public function setProcessingEndTime(?\DateTime $processingEndTime) : self
+    public function setProcessingEndTime(?\DateTime $processing_end_time) : self
     {
-        $this->container['processingEndTime'] = $processingEndTime;
+        $this->container['processing_end_time'] = $processing_end_time;
 
         return $this;
     }
 
     /**
-     * Gets reportDocumentId.
+     * Gets report_document_id.
      */
     public function getReportDocumentId() : ?string
     {
-        return $this->container['reportDocumentId'];
+        return $this->container['report_document_id'];
     }
 
     /**
-     * Sets reportDocumentId.
+     * Sets report_document_id.
      *
-     * @param null|string $reportDocumentId The identifier for the report document. Pass this into the getReportDocument operation to get the information you will need to retrieve and decrypt the report document's contents.
+     * @param null|string $report_document_id The identifier for the report document. Pass this into the getReportDocument operation to get the information you will need to retrieve and decrypt the report document's contents.
      */
-    public function setReportDocumentId(?string $reportDocumentId) : self
+    public function setReportDocumentId(?string $report_document_id) : self
     {
-        $this->container['reportDocumentId'] = $reportDocumentId;
+        $this->container['report_document_id'] = $report_document_id;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/ReportDocument.php b/src/AmazonPHP/SellingPartner/Model/Reports/ReportDocument.php
index 6ad99d465..85c3fb40f 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/ReportDocument.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/ReportDocument.php
@@ -58,10 +58,10 @@ class ReportDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'reportDocumentId' => 'string',
+        'report_document_id' => 'string',
         'url' => 'string',
-        'encryptionDetails' => '\AmazonPHP\SellingPartner\Model\Reports\ReportDocumentEncryptionDetails',
-        'compressionAlgorithm' => 'string',
+        'encryption_details' => '\AmazonPHP\SellingPartner\Model\Reports\ReportDocumentEncryptionDetails',
+        'compression_algorithm' => 'string',
     ];
 
     /**
@@ -72,10 +72,10 @@ class ReportDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'reportDocumentId' => null,
+        'report_document_id' => null,
         'url' => null,
-        'encryptionDetails' => null,
-        'compressionAlgorithm' => null,
+        'encryption_details' => null,
+        'compression_algorithm' => null,
     ];
 
     /**
@@ -85,10 +85,10 @@ class ReportDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'reportDocumentId' => 'reportDocumentId',
+        'report_document_id' => 'reportDocumentId',
         'url' => 'url',
-        'encryptionDetails' => 'encryptionDetails',
-        'compressionAlgorithm' => 'compressionAlgorithm',
+        'encryption_details' => 'encryptionDetails',
+        'compression_algorithm' => 'compressionAlgorithm',
     ];
 
     /**
@@ -97,10 +97,10 @@ class ReportDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'reportDocumentId' => 'setReportDocumentId',
+        'report_document_id' => 'setReportDocumentId',
         'url' => 'setUrl',
-        'encryptionDetails' => 'setEncryptionDetails',
-        'compressionAlgorithm' => 'setCompressionAlgorithm',
+        'encryption_details' => 'setEncryptionDetails',
+        'compression_algorithm' => 'setCompressionAlgorithm',
     ];
 
     /**
@@ -109,10 +109,10 @@ class ReportDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'reportDocumentId' => 'getReportDocumentId',
+        'report_document_id' => 'getReportDocumentId',
         'url' => 'getUrl',
-        'encryptionDetails' => 'getEncryptionDetails',
-        'compressionAlgorithm' => 'getCompressionAlgorithm',
+        'encryption_details' => 'getEncryptionDetails',
+        'compression_algorithm' => 'getCompressionAlgorithm',
     ];
 
     /**
@@ -130,10 +130,10 @@ class ReportDocument implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['reportDocumentId'] = $data['reportDocumentId'] ?? null;
+        $this->container['report_document_id'] = $data['report_document_id'] ?? null;
         $this->container['url'] = $data['url'] ?? null;
-        $this->container['encryptionDetails'] = $data['encryptionDetails'] ?? null;
-        $this->container['compressionAlgorithm'] = $data['compressionAlgorithm'] ?? null;
+        $this->container['encryption_details'] = $data['encryption_details'] ?? null;
+        $this->container['compression_algorithm'] = $data['compression_algorithm'] ?? null;
     }
 
     /**
@@ -227,23 +227,23 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['reportDocumentId'] === null) {
-            $invalidProperties[] = "'reportDocumentId' can't be null";
+        if ($this->container['report_document_id'] === null) {
+            $invalidProperties[] = "'report_document_id' can't be null";
         }
 
         if ($this->container['url'] === null) {
             $invalidProperties[] = "'url' can't be null";
         }
 
-        if ($this->container['encryptionDetails'] === null) {
-            $invalidProperties[] = "'encryptionDetails' can't be null";
+        if ($this->container['encryption_details'] === null) {
+            $invalidProperties[] = "'encryption_details' can't be null";
         }
         $allowedValues = $this->getCompressionAlgorithmAllowableValues();
 
-        if (null !== $this->container['compressionAlgorithm'] && !\in_array($this->container['compressionAlgorithm'], $allowedValues, true)) {
+        if (null !== $this->container['compression_algorithm'] && !\in_array($this->container['compression_algorithm'], $allowedValues, true)) {
             $invalidProperties[] = \sprintf(
-                "invalid value '%s' for 'compressionAlgorithm', must be one of '%s'",
-                $this->container['compressionAlgorithm'],
+                "invalid value '%s' for 'compression_algorithm', must be one of '%s'",
+                $this->container['compression_algorithm'],
                 \implode("', '", $allowedValues)
             );
         }
@@ -263,21 +263,21 @@ public function valid() : bool
     }
 
     /**
-     * Gets reportDocumentId.
+     * Gets report_document_id.
      */
     public function getReportDocumentId() : string
     {
-        return $this->container['reportDocumentId'];
+        return $this->container['report_document_id'];
     }
 
     /**
-     * Sets reportDocumentId.
+     * Sets report_document_id.
      *
-     * @param string $reportDocumentId The identifier for the report document. This identifier is unique only in combination with a seller ID.
+     * @param string $report_document_id The identifier for the report document. This identifier is unique only in combination with a seller ID.
      */
-    public function setReportDocumentId(string $reportDocumentId) : self
+    public function setReportDocumentId(string $report_document_id) : self
     {
-        $this->container['reportDocumentId'] = $reportDocumentId;
+        $this->container['report_document_id'] = $report_document_id;
 
         return $this;
     }
@@ -303,52 +303,52 @@ public function setUrl(string $url) : self
     }
 
     /**
-     * Gets encryptionDetails.
+     * Gets encryption_details.
      */
     public function getEncryptionDetails() : ReportDocumentEncryptionDetails
     {
-        return $this->container['encryptionDetails'];
+        return $this->container['encryption_details'];
     }
 
     /**
-     * Sets encryptionDetails.
+     * Sets encryption_details.
      *
-     * @param \AmazonPHP\SellingPartner\Model\Reports\ReportDocumentEncryptionDetails $encryptionDetails encryptionDetails
+     * @param \AmazonPHP\SellingPartner\Model\Reports\ReportDocumentEncryptionDetails $encryption_details encryption_details
      */
-    public function setEncryptionDetails(ReportDocumentEncryptionDetails $encryptionDetails) : self
+    public function setEncryptionDetails(ReportDocumentEncryptionDetails $encryption_details) : self
     {
-        $this->container['encryptionDetails'] = $encryptionDetails;
+        $this->container['encryption_details'] = $encryption_details;
 
         return $this;
     }
 
     /**
-     * Gets compressionAlgorithm.
+     * Gets compression_algorithm.
      */
     public function getCompressionAlgorithm() : ?string
     {
-        return $this->container['compressionAlgorithm'];
+        return $this->container['compression_algorithm'];
     }
 
     /**
-     * Sets compressionAlgorithm.
+     * Sets compression_algorithm.
      *
-     * @param null|string $compressionAlgorithm if present, the report document contents have been compressed with the provided algorithm
+     * @param null|string $compression_algorithm if present, the report document contents have been compressed with the provided algorithm
      */
-    public function setCompressionAlgorithm(?string $compressionAlgorithm) : self
+    public function setCompressionAlgorithm(?string $compression_algorithm) : self
     {
         $allowedValues = $this->getCompressionAlgorithmAllowableValues();
 
-        if (null !== $compressionAlgorithm && !\in_array($compressionAlgorithm, $allowedValues, true)) {
+        if (null !== $compression_algorithm && !\in_array($compression_algorithm, $allowedValues, true)) {
             throw new \InvalidArgumentException(
                 \sprintf(
-                    "Invalid value '%s' for 'compressionAlgorithm', must be one of '%s'",
-                    $compressionAlgorithm,
+                    "Invalid value '%s' for 'compression_algorithm', must be one of '%s'",
+                    $compression_algorithm,
                     \implode("', '", $allowedValues)
                 )
             );
         }
-        $this->container['compressionAlgorithm'] = $compressionAlgorithm;
+        $this->container['compression_algorithm'] = $compression_algorithm;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/ReportDocumentEncryptionDetails.php b/src/AmazonPHP/SellingPartner/Model/Reports/ReportDocumentEncryptionDetails.php
index 4d685d3e8..f3fdc3f34 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/ReportDocumentEncryptionDetails.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/ReportDocumentEncryptionDetails.php
@@ -59,7 +59,7 @@ class ReportDocumentEncryptionDetails implements \ArrayAccess, \JsonSerializable
      */
     protected static array $openAPITypes = [
         'standard' => 'string',
-        'initializationVector' => 'string',
+        'initialization_vector' => 'string',
         'key' => 'string',
     ];
 
@@ -72,7 +72,7 @@ class ReportDocumentEncryptionDetails implements \ArrayAccess, \JsonSerializable
      */
     protected static array $openAPIFormats = [
         'standard' => null,
-        'initializationVector' => null,
+        'initialization_vector' => null,
         'key' => null,
     ];
 
@@ -84,7 +84,7 @@ class ReportDocumentEncryptionDetails implements \ArrayAccess, \JsonSerializable
      */
     protected static array $attributeMap = [
         'standard' => 'standard',
-        'initializationVector' => 'initializationVector',
+        'initialization_vector' => 'initializationVector',
         'key' => 'key',
     ];
 
@@ -95,7 +95,7 @@ class ReportDocumentEncryptionDetails implements \ArrayAccess, \JsonSerializable
      */
     protected static array $setters = [
         'standard' => 'setStandard',
-        'initializationVector' => 'setInitializationVector',
+        'initialization_vector' => 'setInitializationVector',
         'key' => 'setKey',
     ];
 
@@ -106,7 +106,7 @@ class ReportDocumentEncryptionDetails implements \ArrayAccess, \JsonSerializable
      */
     protected static array $getters = [
         'standard' => 'getStandard',
-        'initializationVector' => 'getInitializationVector',
+        'initialization_vector' => 'getInitializationVector',
         'key' => 'getKey',
     ];
 
@@ -126,7 +126,7 @@ class ReportDocumentEncryptionDetails implements \ArrayAccess, \JsonSerializable
     public function __construct(array $data = null)
     {
         $this->container['standard'] = $data['standard'] ?? null;
-        $this->container['initializationVector'] = $data['initializationVector'] ?? null;
+        $this->container['initialization_vector'] = $data['initialization_vector'] ?? null;
         $this->container['key'] = $data['key'] ?? null;
     }
 
@@ -234,8 +234,8 @@ public function listInvalidProperties() : array
             );
         }
 
-        if ($this->container['initializationVector'] === null) {
-            $invalidProperties[] = "'initializationVector' can't be null";
+        if ($this->container['initialization_vector'] === null) {
+            $invalidProperties[] = "'initialization_vector' can't be null";
         }
 
         if ($this->container['key'] === null) {
@@ -288,21 +288,21 @@ public function setStandard(string $standard) : self
     }
 
     /**
-     * Gets initializationVector.
+     * Gets initialization_vector.
      */
     public function getInitializationVector() : string
     {
-        return $this->container['initializationVector'];
+        return $this->container['initialization_vector'];
     }
 
     /**
-     * Sets initializationVector.
+     * Sets initialization_vector.
      *
-     * @param string $initializationVector the vector to decrypt the document contents using Cipher Block Chaining (CBC)
+     * @param string $initialization_vector the vector to decrypt the document contents using Cipher Block Chaining (CBC)
      */
-    public function setInitializationVector(string $initializationVector) : self
+    public function setInitializationVector(string $initialization_vector) : self
     {
-        $this->container['initializationVector'] = $initializationVector;
+        $this->container['initialization_vector'] = $initialization_vector;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Reports/ReportSchedule.php b/src/AmazonPHP/SellingPartner/Model/Reports/ReportSchedule.php
index a744161c8..a2b491d45 100644
--- a/src/AmazonPHP/SellingPartner/Model/Reports/ReportSchedule.php
+++ b/src/AmazonPHP/SellingPartner/Model/Reports/ReportSchedule.php
@@ -56,12 +56,12 @@ class ReportSchedule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'reportScheduleId' => 'string',
-        'reportType' => 'string',
-        'marketplaceIds' => 'string[]',
-        'reportOptions' => 'array<string,string>',
+        'report_schedule_id' => 'string',
+        'report_type' => 'string',
+        'marketplace_ids' => 'string[]',
+        'report_options' => 'array<string,string>',
         'period' => 'string',
-        'nextReportCreationTime' => '\DateTime',
+        'next_report_creation_time' => '\DateTime',
     ];
 
     /**
@@ -72,12 +72,12 @@ class ReportSchedule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'reportScheduleId' => null,
-        'reportType' => null,
-        'marketplaceIds' => null,
-        'reportOptions' => null,
+        'report_schedule_id' => null,
+        'report_type' => null,
+        'marketplace_ids' => null,
+        'report_options' => null,
         'period' => null,
-        'nextReportCreationTime' => 'date-time',
+        'next_report_creation_time' => 'date-time',
     ];
 
     /**
@@ -87,12 +87,12 @@ class ReportSchedule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $attributeMap = [
-        'reportScheduleId' => 'reportScheduleId',
-        'reportType' => 'reportType',
-        'marketplaceIds' => 'marketplaceIds',
-        'reportOptions' => 'reportOptions',
+        'report_schedule_id' => 'reportScheduleId',
+        'report_type' => 'reportType',
+        'marketplace_ids' => 'marketplaceIds',
+        'report_options' => 'reportOptions',
         'period' => 'period',
-        'nextReportCreationTime' => 'nextReportCreationTime',
+        'next_report_creation_time' => 'nextReportCreationTime',
     ];
 
     /**
@@ -101,12 +101,12 @@ class ReportSchedule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $setters = [
-        'reportScheduleId' => 'setReportScheduleId',
-        'reportType' => 'setReportType',
-        'marketplaceIds' => 'setMarketplaceIds',
-        'reportOptions' => 'setReportOptions',
+        'report_schedule_id' => 'setReportScheduleId',
+        'report_type' => 'setReportType',
+        'marketplace_ids' => 'setMarketplaceIds',
+        'report_options' => 'setReportOptions',
         'period' => 'setPeriod',
-        'nextReportCreationTime' => 'setNextReportCreationTime',
+        'next_report_creation_time' => 'setNextReportCreationTime',
     ];
 
     /**
@@ -115,12 +115,12 @@ class ReportSchedule implements \ArrayAccess, \JsonSerializable, ModelInterface
      * @var string[]
      */
     protected static array $getters = [
-        'reportScheduleId' => 'getReportScheduleId',
-        'reportType' => 'getReportType',
-        'marketplaceIds' => 'getMarketplaceIds',
-        'reportOptions' => 'getReportOptions',
+        'report_schedule_id' => 'getReportScheduleId',
+        'report_type' => 'getReportType',
+        'marketplace_ids' => 'getMarketplaceIds',
+        'report_options' => 'getReportOptions',
         'period' => 'getPeriod',
-        'nextReportCreationTime' => 'getNextReportCreationTime',
+        'next_report_creation_time' => 'getNextReportCreationTime',
     ];
 
     /**
@@ -138,12 +138,12 @@ class ReportSchedule implements \ArrayAccess, \JsonSerializable, ModelInterface
      */
     public function __construct(array $data = null)
     {
-        $this->container['reportScheduleId'] = $data['reportScheduleId'] ?? null;
-        $this->container['reportType'] = $data['reportType'] ?? null;
-        $this->container['marketplaceIds'] = $data['marketplaceIds'] ?? null;
-        $this->container['reportOptions'] = $data['reportOptions'] ?? null;
+        $this->container['report_schedule_id'] = $data['report_schedule_id'] ?? null;
+        $this->container['report_type'] = $data['report_type'] ?? null;
+        $this->container['marketplace_ids'] = $data['marketplace_ids'] ?? null;
+        $this->container['report_options'] = $data['report_options'] ?? null;
         $this->container['period'] = $data['period'] ?? null;
-        $this->container['nextReportCreationTime'] = $data['nextReportCreationTime'] ?? null;
+        $this->container['next_report_creation_time'] = $data['next_report_creation_time'] ?? null;
     }
 
     /**
@@ -225,12 +225,12 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['reportScheduleId'] === null) {
-            $invalidProperties[] = "'reportScheduleId' can't be null";
+        if ($this->container['report_schedule_id'] === null) {
+            $invalidProperties[] = "'report_schedule_id' can't be null";
         }
 
-        if ($this->container['reportType'] === null) {
-            $invalidProperties[] = "'reportType' can't be null";
+        if ($this->container['report_type'] === null) {
+            $invalidProperties[] = "'report_type' can't be null";
         }
 
         if ($this->container['period'] === null) {
@@ -252,85 +252,85 @@ public function valid() : bool
     }
 
     /**
-     * Gets reportScheduleId.
+     * Gets report_schedule_id.
      */
     public function getReportScheduleId() : string
     {
-        return $this->container['reportScheduleId'];
+        return $this->container['report_schedule_id'];
     }
 
     /**
-     * Sets reportScheduleId.
+     * Sets report_schedule_id.
      *
-     * @param string $reportScheduleId The identifier for the report schedule. This identifier is unique only in combination with a seller ID.
+     * @param string $report_schedule_id The identifier for the report schedule. This identifier is unique only in combination with a seller ID.
      */
-    public function setReportScheduleId(string $reportScheduleId) : self
+    public function setReportScheduleId(string $report_schedule_id) : self
     {
-        $this->container['reportScheduleId'] = $reportScheduleId;
+        $this->container['report_schedule_id'] = $report_schedule_id;
 
         return $this;
     }
 
     /**
-     * Gets reportType.
+     * Gets report_type.
      */
     public function getReportType() : string
     {
-        return $this->container['reportType'];
+        return $this->container['report_type'];
     }
 
     /**
-     * Sets reportType.
+     * Sets report_type.
      *
-     * @param string $reportType the report type
+     * @param string $report_type the report type
      */
-    public function setReportType(string $reportType) : self
+    public function setReportType(string $report_type) : self
     {
-        $this->container['reportType'] = $reportType;
+        $this->container['report_type'] = $report_type;
 
         return $this;
     }
 
     /**
-     * Gets marketplaceIds.
+     * Gets marketplace_ids.
      *
      * @return null|string[]
      */
     public function getMarketplaceIds() : ?array
     {
-        return $this->container['marketplaceIds'];
+        return $this->container['marketplace_ids'];
     }
 
     /**
-     * Sets marketplaceIds.
+     * Sets marketplace_ids.
      *
-     * @param null|string[] $marketplaceIds A list of marketplace identifiers. The report document's contents will contain data for all of the specified marketplaces, unless the report type indicates otherwise.
+     * @param null|string[] $marketplace_ids A list of marketplace identifiers. The report document's contents will contain data for all of the specified marketplaces, unless the report type indicates otherwise.
      */
-    public function setMarketplaceIds(?array $marketplaceIds) : self
+    public function setMarketplaceIds(?array $marketplace_ids) : self
     {
-        $this->container['marketplaceIds'] = $marketplaceIds;
+        $this->container['marketplace_ids'] = $marketplace_ids;
 
         return $this;
     }
 
     /**
-     * Gets reportOptions.
+     * Gets report_options.
      *
      * @return null|array<string,string>
      */
     public function getReportOptions() : ?array
     {
-        return $this->container['reportOptions'];
+        return $this->container['report_options'];
     }
 
     /**
-     * Sets reportOptions.
+     * Sets report_options.
      *
-     * @param null|array<string,string> $reportOptions Additional information passed to reports. This varies by report type.
+     * @param null|array<string,string> $report_options Additional information passed to reports. This varies by report type.
      */
-    public function setReportOptions(?array $reportOptions) : self
+    public function setReportOptions(?array $report_options) : self
     {
-        $this->container['reportOptions'] = $reportOptions;
+        $this->container['report_options'] = $report_options;
 
         return $this;
     }
@@ -356,21 +356,21 @@ public function setPeriod(string $period) : self
     }
 
     /**
-     * Gets nextReportCreationTime.
+     * Gets next_report_creation_time.
      */
     public function getNextReportCreationTime() : ?\DateTime
     {
-        return $this->container['nextReportCreationTime'];
+        return $this->container['next_report_creation_time'];
     }
 
     /**
-     * Sets nextReportCreationTime.
+     * Sets next_report_creation_time.
      *
-     * @param null|\DateTime $nextReportCreationTime the date and time when the schedule will create its next report, in ISO 8601 date time format
+     * @param null|\DateTime $next_report_creation_time the date and time when the schedule will create its next report, in ISO 8601 date time format
      */
-    public function setNextReportCreationTime(?\DateTime $nextReportCreationTime) : self
+    public function setNextReportCreationTime(?\DateTime $next_report_creation_time) : self
     {
-        $this->container['nextReportCreationTime'] = $nextReportCreationTime;
+        $this->container['next_report_creation_time'] = $next_report_creation_time;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Tokens/CreateRestrictedDataTokenRequest.php b/src/AmazonPHP/SellingPartner/Model/Tokens/CreateRestrictedDataTokenRequest.php
index 3789c7b54..f372ecce5 100644
--- a/src/AmazonPHP/SellingPartner/Model/Tokens/CreateRestrictedDataTokenRequest.php
+++ b/src/AmazonPHP/SellingPartner/Model/Tokens/CreateRestrictedDataTokenRequest.php
@@ -56,7 +56,7 @@ class CreateRestrictedDataTokenRequest implements \ArrayAccess, \JsonSerializabl
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'restrictedResources' => '\AmazonPHP\SellingPartner\Model\Tokens\RestrictedResource[]',
+        'restricted_resources' => '\AmazonPHP\SellingPartner\Model\Tokens\RestrictedResource[]',
     ];
 
     /**
@@ -67,7 +67,7 @@ class CreateRestrictedDataTokenRequest implements \ArrayAccess, \JsonSerializabl
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'restrictedResources' => null,
+        'restricted_resources' => null,
     ];
 
     /**
@@ -77,7 +77,7 @@ class CreateRestrictedDataTokenRequest implements \ArrayAccess, \JsonSerializabl
      * @var string[]
      */
     protected static array $attributeMap = [
-        'restrictedResources' => 'restrictedResources',
+        'restricted_resources' => 'restrictedResources',
     ];
 
     /**
@@ -86,7 +86,7 @@ class CreateRestrictedDataTokenRequest implements \ArrayAccess, \JsonSerializabl
      * @var string[]
      */
     protected static array $setters = [
-        'restrictedResources' => 'setRestrictedResources',
+        'restricted_resources' => 'setRestrictedResources',
     ];
 
     /**
@@ -95,7 +95,7 @@ class CreateRestrictedDataTokenRequest implements \ArrayAccess, \JsonSerializabl
      * @var string[]
      */
     protected static array $getters = [
-        'restrictedResources' => 'getRestrictedResources',
+        'restricted_resources' => 'getRestrictedResources',
     ];
 
     /**
@@ -113,7 +113,7 @@ class CreateRestrictedDataTokenRequest implements \ArrayAccess, \JsonSerializabl
      */
     public function __construct(array $data = null)
     {
-        $this->container['restrictedResources'] = $data['restrictedResources'] ?? null;
+        $this->container['restricted_resources'] = $data['restricted_resources'] ?? null;
     }
 
     /**
@@ -195,8 +195,8 @@ public function listInvalidProperties() : array
     {
         $invalidProperties = [];
 
-        if ($this->container['restrictedResources'] === null) {
-            $invalidProperties[] = "'restrictedResources' can't be null";
+        if ($this->container['restricted_resources'] === null) {
+            $invalidProperties[] = "'restricted_resources' can't be null";
         }
 
         return $invalidProperties;
@@ -214,23 +214,23 @@ public function valid() : bool
     }
 
     /**
-     * Gets restrictedResources.
+     * Gets restricted_resources.
      *
      * @return \AmazonPHP\SellingPartner\Model\Tokens\RestrictedResource[]
      */
     public function getRestrictedResources() : array
     {
-        return $this->container['restrictedResources'];
+        return $this->container['restricted_resources'];
     }
 
     /**
-     * Sets restrictedResources.
+     * Sets restricted_resources.
      *
-     * @param \AmazonPHP\SellingPartner\Model\Tokens\RestrictedResource[] $restrictedResources A list of restricted resources. Maximum: 50
+     * @param \AmazonPHP\SellingPartner\Model\Tokens\RestrictedResource[] $restricted_resources A list of restricted resources. Maximum: 50
      */
-    public function setRestrictedResources(array $restrictedResources) : self
+    public function setRestrictedResources(array $restricted_resources) : self
     {
-        $this->container['restrictedResources'] = $restrictedResources;
+        $this->container['restricted_resources'] = $restricted_resources;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/Model/Tokens/CreateRestrictedDataTokenResponse.php b/src/AmazonPHP/SellingPartner/Model/Tokens/CreateRestrictedDataTokenResponse.php
index b6bfe0d36..233d808bc 100644
--- a/src/AmazonPHP/SellingPartner/Model/Tokens/CreateRestrictedDataTokenResponse.php
+++ b/src/AmazonPHP/SellingPartner/Model/Tokens/CreateRestrictedDataTokenResponse.php
@@ -56,8 +56,8 @@ class CreateRestrictedDataTokenResponse implements \ArrayAccess, \JsonSerializab
      * @var string[]
      */
     protected static array $openAPITypes = [
-        'restrictedDataToken' => 'string',
-        'expiresIn' => 'int',
+        'restricted_data_token' => 'string',
+        'expires_in' => 'int',
     ];
 
     /**
@@ -68,8 +68,8 @@ class CreateRestrictedDataTokenResponse implements \ArrayAccess, \JsonSerializab
      * @psalm-var array<string, string|null>
      */
     protected static array $openAPIFormats = [
-        'restrictedDataToken' => null,
-        'expiresIn' => null,
+        'restricted_data_token' => null,
+        'expires_in' => null,
     ];
 
     /**
@@ -79,8 +79,8 @@ class CreateRestrictedDataTokenResponse implements \ArrayAccess, \JsonSerializab
      * @var string[]
      */
     protected static array $attributeMap = [
-        'restrictedDataToken' => 'restrictedDataToken',
-        'expiresIn' => 'expiresIn',
+        'restricted_data_token' => 'restrictedDataToken',
+        'expires_in' => 'expiresIn',
     ];
 
     /**
@@ -89,8 +89,8 @@ class CreateRestrictedDataTokenResponse implements \ArrayAccess, \JsonSerializab
      * @var string[]
      */
     protected static array $setters = [
-        'restrictedDataToken' => 'setRestrictedDataToken',
-        'expiresIn' => 'setExpiresIn',
+        'restricted_data_token' => 'setRestrictedDataToken',
+        'expires_in' => 'setExpiresIn',
     ];
 
     /**
@@ -99,8 +99,8 @@ class CreateRestrictedDataTokenResponse implements \ArrayAccess, \JsonSerializab
      * @var string[]
      */
     protected static array $getters = [
-        'restrictedDataToken' => 'getRestrictedDataToken',
-        'expiresIn' => 'getExpiresIn',
+        'restricted_data_token' => 'getRestrictedDataToken',
+        'expires_in' => 'getExpiresIn',
     ];
 
     /**
@@ -118,8 +118,8 @@ class CreateRestrictedDataTokenResponse implements \ArrayAccess, \JsonSerializab
      */
     public function __construct(array $data = null)
     {
-        $this->container['restrictedDataToken'] = $data['restrictedDataToken'] ?? null;
-        $this->container['expiresIn'] = $data['expiresIn'] ?? null;
+        $this->container['restricted_data_token'] = $data['restricted_data_token'] ?? null;
+        $this->container['expires_in'] = $data['expires_in'] ?? null;
     }
 
     /**
@@ -214,41 +214,41 @@ public function valid() : bool
     }
 
     /**
-     * Gets restrictedDataToken.
+     * Gets restricted_data_token.
      */
     public function getRestrictedDataToken() : ?string
     {
-        return $this->container['restrictedDataToken'];
+        return $this->container['restricted_data_token'];
     }
 
     /**
-     * Sets restrictedDataToken.
+     * Sets restricted_data_token.
      *
-     * @param null|string $restrictedDataToken A Restricted Data Token (RDT). This is a short-lived access token that authorizes you to access the restricted resources that you specified. Pass this value with the x-amzn-access-token header when making subsequent calls to these restricted resources.
+     * @param null|string $restricted_data_token A Restricted Data Token (RDT). This is a short-lived access token that authorizes you to access the restricted resources that you specified. Pass this value with the x-amzn-access-token header when making subsequent calls to these restricted resources.
      */
-    public function setRestrictedDataToken(?string $restrictedDataToken) : self
+    public function setRestrictedDataToken(?string $restricted_data_token) : self
     {
-        $this->container['restrictedDataToken'] = $restrictedDataToken;
+        $this->container['restricted_data_token'] = $restricted_data_token;
 
         return $this;
     }
 
     /**
-     * Gets expiresIn.
+     * Gets expires_in.
      */
     public function getExpiresIn() : ?int
     {
-        return $this->container['expiresIn'];
+        return $this->container['expires_in'];
     }
 
     /**
-     * Sets expiresIn.
+     * Sets expires_in.
      *
-     * @param null|int $expiresIn the lifetime of the Restricted Data Token, in seconds
+     * @param null|int $expires_in the lifetime of the Restricted Data Token, in seconds
      */
-    public function setExpiresIn(?int $expiresIn) : self
+    public function setExpiresIn(?int $expires_in) : self
     {
-        $this->container['expiresIn'] = $expiresIn;
+        $this->container['expires_in'] = $expires_in;
 
         return $this;
     }
diff --git a/src/AmazonPHP/SellingPartner/OAuth.php b/src/AmazonPHP/SellingPartner/OAuth.php
index 020f47391..cc8b926f4 100644
--- a/src/AmazonPHP/SellingPartner/OAuth.php
+++ b/src/AmazonPHP/SellingPartner/OAuth.php
@@ -14,57 +14,51 @@ final class OAuth
 
     private Configuration $configuration;
 
-    private string $refreshToken;
-
-    private ?AccessToken $accessToken = null;
-
     public function __construct(
         ClientInterface $client,
         HttpFactory $requestFactory,
-        Configuration $configuration,
-        string $refreshToken
+        Configuration $configuration
     ) {
         $this->client = $client;
         $this->requestFactory = $requestFactory;
         $this->configuration = $configuration;
-        $this->refreshToken = $refreshToken;
     }
 
-    public function accessToken() : AccessToken
+    public function exchangeRefreshToken(string $refreshToken) : AccessToken
     {
-        if ($this->accessToken === null) {
-            $this->accessToken = $this->exchangeRefresh();
-        }
-
-        return $this->accessToken;
-    }
-
-    public function client() : ClientInterface
-    {
-        return $this->client;
-    }
+        $request = $this->requestFactory->createRequest('POST', 'https://api.amazon.com/auth/o2/token')
+            ->withBody(
+                $this->requestFactory->createStreamFromString(
+                    \json_encode(
+                        [
+                            'grant_type' => 'refresh_token',
+                            'refresh_token' => $refreshToken,
+                            'client_id' => $this->configuration->lwaClientID(),
+                            'client_secret' => $this->configuration->lwaClientSecret(),
+                        ],
+                        JSON_THROW_ON_ERROR
+                    )
+                )
+            )
+            ->withHeader('Accept', ['application/json'])
+            ->withHeader('Content-Type', ['application/json']);
 
-    public function requestFactory() : HttpFactory
-    {
-        return $this->requestFactory;
-    }
+        $response = $this->client->sendRequest($request);
 
-    public function configuration() : Configuration
-    {
-        return $this->configuration;
+        return AccessToken::fromJSON((string) $response->getBody(), 'refresh_token');
     }
 
-    private function exchangeRefresh() : AccessToken
+    public function clientCredentials(string $scope) : AccessToken
     {
         $request = $this->requestFactory->createRequest('POST', 'https://api.amazon.com/auth/o2/token')
             ->withBody(
                 $this->requestFactory->createStreamFromString(
                     \json_encode(
                         [
-                            'grant_type' => 'refresh_token',
-                            'refresh_token' => $this->refreshToken,
-                            'client_id' => $this->configuration->clientId(),
-                            'client_secret' => $this->configuration->clientSecret(),
+                            'grant_type' => 'client_credentials',
+                            'scope' => $scope,
+                            'client_id' => $this->configuration->lwaClientID(),
+                            'client_secret' => $this->configuration->lwaClientSecret(),
                         ],
                         JSON_THROW_ON_ERROR
                     )
@@ -75,6 +69,6 @@ private function exchangeRefresh() : AccessToken
 
         $response = $this->client->sendRequest($request);
 
-        return AccessToken::fromJSON((string) $response->getBody());
+        return AccessToken::fromJSON((string) $response->getBody(), 'client_credentials');
     }
 }
diff --git a/src/AmazonPHP/SellingPartner/ObjectSerializer.php b/src/AmazonPHP/SellingPartner/ObjectSerializer.php
index 0d37cd00b..483a93027 100644
--- a/src/AmazonPHP/SellingPartner/ObjectSerializer.php
+++ b/src/AmazonPHP/SellingPartner/ObjectSerializer.php
@@ -4,7 +4,7 @@
 
 final class ObjectSerializer
 {
-    private static string $dateTimeFormat = \DateTime::ATOM;
+    private static string $dateTimeFormat = \DateTimeInterface::ATOM;
 
     /**
      * Change the date format.
@@ -92,7 +92,7 @@ public static function sanitizeForSerialization($data, $type = null, $format = n
      *
      * @return string the sanitized filename
      */
-    public static function sanitizeFilename($filename)
+    public static function sanitizeFilename(string $filename)
     {
         if (\preg_match("/.*[\/\\\\](.*)$/", $filename, $match)) {
             return $match[1];
@@ -109,7 +109,7 @@ public static function sanitizeFilename($filename)
      *
      * @return string the serialized object
      */
-    public static function toPathValue($value)
+    public static function toPathValue(string $value)
     {
         return \rawurlencode(self::toString($value));
     }
@@ -235,14 +235,14 @@ public static function serializeCollection(array $collection, $style, $allowColl
     /**
      * Deserialize a JSON string into an object.
      *
+     * @param Configuration $configuration
      * @param mixed $data object or primitive to be deserialized
      * @param string $class class name is passed as a string
      * @param string[] $httpHeaders HTTP headers
-     * @param string $discriminator discriminator if polymorphism is used
      *
      * @return null|array|object a single or an array of $class instances
      */
-    public static function deserialize($data, $class, $httpHeaders = null)
+    public static function deserialize(Configuration $configuration, $data, string $class, array $httpHeaders = null)
     {
         if (null === $data) {
             return null;
@@ -259,7 +259,7 @@ public static function deserialize($data, $class, $httpHeaders = null)
             $values = [];
 
             foreach ($data as $value) {
-                $values[] = self::deserialize($value, $subClass, null);
+                $values[] = self::deserialize($configuration, $value, $subClass, null);
             }
 
             return $values;
@@ -276,7 +276,7 @@ public static function deserialize($data, $class, $httpHeaders = null)
                 $subClass = $subClass_array[1];
 
                 foreach ($data as $key => $value) {
-                    $deserialized[$key] = self::deserialize($value, $subClass, null);
+                    $deserialized[$key] = self::deserialize($configuration, $value, $subClass, null);
                 }
             }
 
@@ -322,9 +322,9 @@ public static function deserialize($data, $class, $httpHeaders = null)
             // determine file name
             if (\array_key_exists('Content-Disposition', $httpHeaders) &&
                 \preg_match('/inline; filename=[\'"]?([^\'"\s]+)[\'"]?$/i', $httpHeaders['Content-Disposition'], $match)) {
-                $filename = Configuration::getDefaultConfiguration()->getTempFolderPath() . DIRECTORY_SEPARATOR . self::sanitizeFilename($match[1]);
+                $filename = $configuration->tmpFolderPath() . DIRECTORY_SEPARATOR . self::sanitizeFilename($match[1]);
             } else {
-                $filename = \tempnam(Configuration::getDefaultConfiguration()->getTempFolderPath(), '');
+                $filename = \tempnam($configuration->tmpFolderPath(), '');
             }
 
             $file = \fopen($filename, 'w');
@@ -346,7 +346,12 @@ public static function deserialize($data, $class, $httpHeaders = null)
 
             return $data;
         }
-        $data = \is_string($data) ? \json_decode($data, null, 512, JSON_THROW_ON_ERROR) : $data;
+
+        try {
+            $data = \is_string($data) ? \json_decode($data, null, 512, JSON_THROW_ON_ERROR) : $data;
+        } catch (\JsonException $e) {
+        }
+
         // If a discriminator is defined and points to a valid subclass, use it.
         $discriminator = $class::DISCRIMINATOR;
 
@@ -369,7 +374,7 @@ public static function deserialize($data, $class, $httpHeaders = null)
 
             if (isset($data->{$instance::attributeMap()[$property]})) {
                 $propertyValue = $data->{$instance::attributeMap()[$property]};
-                $instance->{$propertySetter}(self::deserialize($propertyValue, $type, null));
+                $instance->{$propertySetter}(self::deserialize($configuration, $propertyValue, $type, null));
             }
         }