From 63d33bb5fe7f3903093f515db05e69495d3e00ee Mon Sep 17 00:00:00 2001
From: Alex McKinney <alexmckinney01@gmail.com>
Date: Wed, 11 Sep 2024 16:55:36 -0400
Subject: [PATCH] feat(php): Generate project (#4612)

---
 .../commons/src/AbstractGeneratorContext.ts   |   8 +
 .../commons/src/project/AbstractProject.ts    |  25 ++
 generators/commons/src/project/index.ts       |   1 +
 .../context/AbstractCsharpGeneratorContext.ts |  14 +-
 .../codegen/src/project/CsharpProject.ts      |  38 +--
 .../model/src/version/VersionGenerator.ts     |   2 +-
 generators/php/codegen/package.json           |  10 +
 generators/php/codegen/src/AsIs.ts            |   9 +-
 generators/php/codegen/src/FileGenerator.ts   |   2 +-
 generators/php/codegen/src/asIs/.gitignore    |   4 +
 .../codegen/src/asIs/RawClient.Template.php   |  11 +
 .../src/asIs/RawClientTest.Template.php       |  13 +
 generators/php/codegen/src/asIs/github-ci.yml |  46 +++
 generators/php/codegen/src/asIs/phpstan.neon  |   5 +
 generators/php/codegen/src/asIs/phpunit.xml   |   7 +
 .../src/cli/AbstractPhpGeneratorCli.ts        |   2 +-
 .../context/AbstractPhpGeneratorContext.ts    |  32 ++
 .../BasePhpCustomConfigSchema.ts              |   4 +-
 generators/php/codegen/src/index.ts           |   1 +
 generators/php/codegen/src/project/File.ts    |  20 --
 generators/php/codegen/src/project/PhpFile.ts |  45 +++
 .../php/codegen/src/project/PhpProject.ts     | 277 ++++++++++++++++++
 generators/php/codegen/src/project/index.ts   |   2 +
 generators/php/model/Dockerfile               |   4 +-
 generators/php/model/src/ModelCustomConfig.ts |   4 +-
 generators/php/model/src/ModelGeneratorCli.ts |  19 +-
 .../php/model/src/ModelGeneratorContext.ts    |  16 +-
 generators/php/model/src/generateModels.ts    |  13 +
 generators/php/model/src/index.ts             |   1 +
 generators/php/sdk/Dockerfile                 |   4 +-
 generators/php/sdk/package.json               |   2 +-
 generators/php/sdk/src/SdkCustomConfig.ts     |   4 +-
 generators/php/sdk/src/SdkGeneratorCli.ts     |  21 +-
 generators/php/sdk/src/SdkGeneratorContext.ts |  16 +-
 .../src/GeneratedSdkClientClassImpl.ts        |   8 +-
 .../sdk/generator/src/SdkGenerator.ts         |   3 +-
 .../generator/src/contexts/SdkContextImpl.ts  |   6 +-
 .../src/AbstractGeneratorCli.ts               |  11 +-
 .../utils/contexts/src/GeneratorContext.ts    |   1 +
 .../contexts/src/sdk-context/SdkContext.ts    |   3 +-
 pnpm-lock.yaml                                |  26 +-
 .../alias-extends/.github/workflows/ci.yml    |  46 +++
 seed/php-model/alias-extends/.gitignore       |   4 +
 seed/php-model/alias-extends/composer.json    |  40 +++
 seed/php-model/alias-extends/phpstan.neon     |   5 +
 seed/php-model/alias-extends/phpunit.xml      |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 seed/php-model/alias/.github/workflows/ci.yml |  46 +++
 seed/php-model/alias/.gitignore               |   4 +
 seed/php-model/alias/composer.json            |  40 +++
 seed/php-model/alias/phpstan.neon             |   5 +
 seed/php-model/alias/phpunit.xml              |   7 +
 .../alias/src/Placeholder/Placeholder.php     |  11 +
 .../any-auth/.github/workflows/ci.yml         |  46 +++
 seed/php-model/any-auth/.gitignore            |   4 +
 seed/php-model/any-auth/composer.json         |  40 +++
 seed/php-model/any-auth/phpstan.neon          |   5 +
 seed/php-model/any-auth/phpunit.xml           |   7 +
 .../any-auth/src/Placeholder/Placeholder.php  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-model/api-wide-base-path/.gitignore  |   4 +
 .../api-wide-base-path/composer.json          |  40 +++
 .../php-model/api-wide-base-path/phpstan.neon |   5 +
 seed/php-model/api-wide-base-path/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../audiences/.github/workflows/ci.yml        |  46 +++
 seed/php-model/audiences/.gitignore           |   4 +
 seed/php-model/audiences/composer.json        |  40 +++
 seed/php-model/audiences/phpstan.neon         |   5 +
 seed/php-model/audiences/phpunit.xml          |   7 +
 .../audiences/src/Placeholder/Placeholder.php |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../auth-environment-variables/.gitignore     |   4 +
 .../auth-environment-variables/composer.json  |  40 +++
 .../auth-environment-variables/phpstan.neon   |   5 +
 .../auth-environment-variables/phpunit.xml    |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../basic-auth/.github/workflows/ci.yml       |  46 +++
 seed/php-model/basic-auth/.gitignore          |   4 +
 seed/php-model/basic-auth/composer.json       |  40 +++
 seed/php-model/basic-auth/phpstan.neon        |   5 +
 seed/php-model/basic-auth/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 seed/php-model/bytes/.github/workflows/ci.yml |  46 +++
 seed/php-model/bytes/.gitignore               |   4 +
 seed/php-model/bytes/composer.json            |  40 +++
 seed/php-model/bytes/phpstan.neon             |   5 +
 seed/php-model/bytes/phpunit.xml              |   7 +
 .../bytes/src/Placeholder/Placeholder.php     |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../circular-references-advanced/.gitignore   |   4 +
 .../composer.json                             |  40 +++
 .../circular-references-advanced/phpstan.neon |   5 +
 .../circular-references-advanced/phpunit.xml  |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-model/circular-references/.gitignore |   4 +
 .../circular-references/composer.json         |  40 +++
 .../circular-references/phpstan.neon          |   5 +
 .../php-model/circular-references/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../cross-package-type-names/.gitignore       |   4 +
 .../cross-package-type-names/composer.json    |  40 +++
 .../cross-package-type-names/phpstan.neon     |   5 +
 .../cross-package-type-names/phpunit.xml      |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../custom-auth/.github/workflows/ci.yml      |  46 +++
 seed/php-model/custom-auth/.gitignore         |   4 +
 seed/php-model/custom-auth/composer.json      |  40 +++
 seed/php-model/custom-auth/phpstan.neon       |   5 +
 seed/php-model/custom-auth/phpunit.xml        |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 seed/php-model/enum/.github/workflows/ci.yml  |  46 +++
 seed/php-model/enum/.gitignore                |   4 +
 seed/php-model/enum/composer.json             |  40 +++
 seed/php-model/enum/phpstan.neon              |   5 +
 seed/php-model/enum/phpunit.xml               |   7 +
 .../enum/src/Placeholder/Placeholder.php      |  11 +
 .../error-property/.github/workflows/ci.yml   |  46 +++
 seed/php-model/error-property/.gitignore      |   4 +
 seed/php-model/error-property/composer.json   |  40 +++
 seed/php-model/error-property/phpstan.neon    |   5 +
 seed/php-model/error-property/phpunit.xml     |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../examples/.github/workflows/ci.yml         |  46 +++
 seed/php-model/examples/.gitignore            |   4 +
 seed/php-model/examples/composer.json         |  40 +++
 seed/php-model/examples/phpstan.neon          |   5 +
 seed/php-model/examples/phpunit.xml           |   7 +
 .../examples/src/Placeholder/Placeholder.php  |  11 +
 .../exhaustive/.github/workflows/ci.yml       |  46 +++
 seed/php-model/exhaustive/.gitignore          |   4 +
 seed/php-model/exhaustive/composer.json       |  40 +++
 seed/php-model/exhaustive/phpstan.neon        |   5 +
 seed/php-model/exhaustive/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../extends/.github/workflows/ci.yml          |  46 +++
 seed/php-model/extends/.gitignore             |   4 +
 seed/php-model/extends/composer.json          |  40 +++
 seed/php-model/extends/phpstan.neon           |   5 +
 seed/php-model/extends/phpunit.xml            |   7 +
 .../extends/src/Placeholder/Placeholder.php   |  11 +
 .../extra-properties/.github/workflows/ci.yml |  46 +++
 seed/php-model/extra-properties/.gitignore    |   4 +
 seed/php-model/extra-properties/composer.json |  40 +++
 seed/php-model/extra-properties/phpstan.neon  |   5 +
 seed/php-model/extra-properties/phpunit.xml   |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../file-download/.github/workflows/ci.yml    |  46 +++
 seed/php-model/file-download/.gitignore       |   4 +
 seed/php-model/file-download/composer.json    |  40 +++
 seed/php-model/file-download/phpstan.neon     |   5 +
 seed/php-model/file-download/phpunit.xml      |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../file-upload/.github/workflows/ci.yml      |  46 +++
 seed/php-model/file-upload/.gitignore         |   4 +
 seed/php-model/file-upload/composer.json      |  40 +++
 seed/php-model/file-upload/phpstan.neon       |   5 +
 seed/php-model/file-upload/phpunit.xml        |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../folders/.github/workflows/ci.yml          |  46 +++
 seed/php-model/folders/.gitignore             |   4 +
 seed/php-model/folders/composer.json          |  40 +++
 seed/php-model/folders/phpstan.neon           |   5 +
 seed/php-model/folders/phpunit.xml            |   7 +
 .../folders/src/Placeholder/Placeholder.php   |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../grpc-proto-exhaustive/.gitignore          |   4 +
 .../grpc-proto-exhaustive/composer.json       |  40 +++
 .../grpc-proto-exhaustive/phpstan.neon        |   5 +
 .../grpc-proto-exhaustive/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../grpc-proto/.github/workflows/ci.yml       |  46 +++
 seed/php-model/grpc-proto/.gitignore          |   4 +
 seed/php-model/grpc-proto/composer.json       |  40 +++
 seed/php-model/grpc-proto/phpstan.neon        |   5 +
 seed/php-model/grpc-proto/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-model/idempotency-headers/.gitignore |   4 +
 .../idempotency-headers/composer.json         |  40 +++
 .../idempotency-headers/phpstan.neon          |   5 +
 .../php-model/idempotency-headers/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 seed/php-model/imdb/.github/workflows/ci.yml  |  46 +++
 seed/php-model/imdb/.gitignore                |   4 +
 seed/php-model/imdb/composer.json             |  40 +++
 seed/php-model/imdb/phpstan.neon              |   5 +
 seed/php-model/imdb/phpunit.xml               |   7 +
 .../imdb/src/Placeholder/Placeholder.php      |  11 +
 .../literal/.github/workflows/ci.yml          |  46 +++
 seed/php-model/literal/.gitignore             |   4 +
 seed/php-model/literal/composer.json          |  40 +++
 seed/php-model/literal/phpstan.neon           |   5 +
 seed/php-model/literal/phpunit.xml            |   7 +
 .../literal/src/Placeholder/Placeholder.php   |  11 +
 .../mixed-case/.github/workflows/ci.yml       |  46 +++
 seed/php-model/mixed-case/.gitignore          |   4 +
 seed/php-model/mixed-case/composer.json       |  40 +++
 seed/php-model/mixed-case/phpstan.neon        |   5 +
 seed/php-model/mixed-case/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../php-model/mixed-file-directory/.gitignore |   4 +
 .../mixed-file-directory/composer.json        |  40 +++
 .../mixed-file-directory/phpstan.neon         |   5 +
 .../mixed-file-directory/phpunit.xml          |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../multi-line-docs/.github/workflows/ci.yml  |  46 +++
 seed/php-model/multi-line-docs/.gitignore     |   4 +
 seed/php-model/multi-line-docs/composer.json  |  40 +++
 seed/php-model/multi-line-docs/phpstan.neon   |   5 +
 seed/php-model/multi-line-docs/phpunit.xml    |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../multi-url-environment/.gitignore          |   4 +
 .../multi-url-environment/composer.json       |  40 +++
 .../multi-url-environment/phpstan.neon        |   5 +
 .../multi-url-environment/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../no-environment/.github/workflows/ci.yml   |  46 +++
 seed/php-model/no-environment/.gitignore      |   4 +
 seed/php-model/no-environment/composer.json   |  40 +++
 seed/php-model/no-environment/phpstan.neon    |   5 +
 seed/php-model/no-environment/phpunit.xml     |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../oauth-client-credentials/.gitignore       |   4 +
 .../oauth-client-credentials/composer.json    |  40 +++
 .../oauth-client-credentials/phpstan.neon     |   5 +
 .../oauth-client-credentials/phpunit.xml      |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../php-model/object/.github/workflows/ci.yml |  46 +++
 seed/php-model/object/.gitignore              |   4 +
 seed/php-model/object/composer.json           |  40 +++
 seed/php-model/object/phpstan.neon            |   5 +
 seed/php-model/object/phpunit.xml             |   7 +
 .../object/src/Placeholder/Placeholder.php    |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../php-model/objects-with-imports/.gitignore |   4 +
 .../objects-with-imports/composer.json        |  40 +++
 .../objects-with-imports/phpstan.neon         |   5 +
 .../objects-with-imports/phpunit.xml          |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../optional/.github/workflows/ci.yml         |  46 +++
 seed/php-model/optional/.gitignore            |   4 +
 seed/php-model/optional/composer.json         |  40 +++
 seed/php-model/optional/phpstan.neon          |   5 +
 seed/php-model/optional/phpunit.xml           |   7 +
 .../optional/src/Placeholder/Placeholder.php  |  11 +
 .../package-yml/.github/workflows/ci.yml      |  46 +++
 seed/php-model/package-yml/.gitignore         |   4 +
 seed/php-model/package-yml/composer.json      |  40 +++
 seed/php-model/package-yml/phpstan.neon       |   5 +
 seed/php-model/package-yml/phpunit.xml        |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../pagination/.github/workflows/ci.yml       |  46 +++
 seed/php-model/pagination/.gitignore          |   4 +
 seed/php-model/pagination/composer.json       |  40 +++
 seed/php-model/pagination/phpstan.neon        |   5 +
 seed/php-model/pagination/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../plain-text/.github/workflows/ci.yml       |  46 +++
 seed/php-model/plain-text/.gitignore          |   4 +
 seed/php-model/plain-text/composer.json       |  40 +++
 seed/php-model/plain-text/phpstan.neon        |   5 +
 seed/php-model/plain-text/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../query-parameters/.github/workflows/ci.yml |  46 +++
 seed/php-model/query-parameters/.gitignore    |   4 +
 seed/php-model/query-parameters/composer.json |  40 +++
 seed/php-model/query-parameters/phpstan.neon  |   5 +
 seed/php-model/query-parameters/phpunit.xml   |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-model/reserved-keywords/.gitignore   |   4 +
 .../php-model/reserved-keywords/composer.json |  40 +++
 seed/php-model/reserved-keywords/phpstan.neon |   5 +
 seed/php-model/reserved-keywords/phpunit.xml  |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-model/response-property/.gitignore   |   4 +
 .../php-model/response-property/composer.json |  40 +++
 seed/php-model/response-property/phpstan.neon |   5 +
 seed/php-model/response-property/phpunit.xml  |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 seed/php-model/seed.yml                       |   5 +-
 .../simple-fhir/.github/workflows/ci.yml      |  46 +++
 seed/php-model/simple-fhir/.gitignore         |   4 +
 seed/php-model/simple-fhir/composer.json      |  40 +++
 seed/php-model/simple-fhir/phpstan.neon       |   5 +
 seed/php-model/simple-fhir/phpunit.xml        |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../single-url-environment-default/.gitignore |   4 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-model/streaming-parameter/.gitignore |   4 +
 .../streaming-parameter/composer.json         |  40 +++
 .../streaming-parameter/phpstan.neon          |   5 +
 .../php-model/streaming-parameter/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../streaming/.github/workflows/ci.yml        |  46 +++
 seed/php-model/streaming/.gitignore           |   4 +
 seed/php-model/streaming/composer.json        |  40 +++
 seed/php-model/streaming/phpstan.neon         |   5 +
 seed/php-model/streaming/phpunit.xml          |   7 +
 .../streaming/src/Placeholder/Placeholder.php |  11 +
 seed/php-model/trace/.github/workflows/ci.yml |  46 +++
 seed/php-model/trace/.gitignore               |   4 +
 seed/php-model/trace/composer.json            |  40 +++
 seed/php-model/trace/phpstan.neon             |   5 +
 seed/php-model/trace/phpunit.xml              |   7 +
 .../trace/src/Placeholder/Placeholder.php     |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../undiscriminated-unions/.gitignore         |   4 +
 .../undiscriminated-unions/composer.json      |  40 +++
 .../undiscriminated-unions/phpstan.neon       |   5 +
 .../undiscriminated-unions/phpunit.xml        |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../php-model/unions/.github/workflows/ci.yml |  46 +++
 seed/php-model/unions/.gitignore              |   4 +
 seed/php-model/unions/composer.json           |  40 +++
 seed/php-model/unions/phpstan.neon            |   5 +
 seed/php-model/unions/phpunit.xml             |   7 +
 .../unions/src/Placeholder/Placeholder.php    |  11 +
 .../unknown/.github/workflows/ci.yml          |  46 +++
 seed/php-model/unknown/.gitignore             |   4 +
 seed/php-model/unknown/composer.json          |  40 +++
 seed/php-model/unknown/phpstan.neon           |   5 +
 seed/php-model/unknown/phpunit.xml            |   7 +
 .../unknown/src/Placeholder/Placeholder.php   |  11 +
 .../validation/.github/workflows/ci.yml       |  46 +++
 seed/php-model/validation/.gitignore          |   4 +
 seed/php-model/validation/composer.json       |  40 +++
 seed/php-model/validation/phpstan.neon        |   5 +
 seed/php-model/validation/phpunit.xml         |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../variables/.github/workflows/ci.yml        |  46 +++
 seed/php-model/variables/.gitignore           |   4 +
 seed/php-model/variables/composer.json        |  40 +++
 seed/php-model/variables/phpstan.neon         |   5 +
 seed/php-model/variables/phpunit.xml          |   7 +
 .../variables/src/Placeholder/Placeholder.php |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-model/version-no-default/.gitignore  |   4 +
 .../version-no-default/composer.json          |  40 +++
 .../php-model/version-no-default/phpstan.neon |   5 +
 seed/php-model/version-no-default/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../version/.github/workflows/ci.yml          |  46 +++
 seed/php-model/version/.gitignore             |   4 +
 seed/php-model/version/composer.json          |  40 +++
 seed/php-model/version/phpstan.neon           |   5 +
 seed/php-model/version/phpunit.xml            |   7 +
 .../version/src/Placeholder/Placeholder.php   |  11 +
 .../websocket/.github/workflows/ci.yml        |  46 +++
 seed/php-model/websocket/.gitignore           |   4 +
 seed/php-model/websocket/composer.json        |  40 +++
 seed/php-model/websocket/phpstan.neon         |   5 +
 seed/php-model/websocket/phpunit.xml          |   7 +
 .../websocket/src/Placeholder/Placeholder.php |  11 +
 .../alias-extends/.github/workflows/ci.yml    |  46 +++
 seed/php-sdk/alias-extends/.gitignore         |   4 +
 .../php-sdk/alias-extends/Core}/RawClient.php |   4 +-
 seed/php-sdk/alias-extends/composer.json      |  40 +++
 seed/php-sdk/alias-extends/phpstan.neon       |   5 +
 seed/php-sdk/alias-extends/phpunit.xml        |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../alias-extends/tests/Core/RawClient.php    |  11 +
 seed/php-sdk/alias/.github/workflows/ci.yml   |  46 +++
 seed/php-sdk/alias/.gitignore                 |   4 +
 seed/php-sdk/alias/Core/RawClient.php         |  11 +
 seed/php-sdk/alias/composer.json              |  40 +++
 seed/php-sdk/alias/phpstan.neon               |   5 +
 seed/php-sdk/alias/phpunit.xml                |   7 +
 .../alias/src/Placeholder/Placeholder.php     |  11 +
 seed/php-sdk/alias/tests/Core/RawClient.php   |  11 +
 .../php-sdk/any-auth/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/any-auth/.gitignore              |   4 +
 seed/php-sdk/any-auth/Core/RawClient.php      |  11 +
 seed/php-sdk/any-auth/composer.json           |  40 +++
 seed/php-sdk/any-auth/phpstan.neon            |   5 +
 seed/php-sdk/any-auth/phpunit.xml             |   7 +
 .../any-auth/src/Placeholder/Placeholder.php  |  11 +
 .../php-sdk/any-auth/tests/Core/RawClient.php |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/api-wide-base-path/.gitignore    |   4 +
 .../api-wide-base-path/Core/RawClient.php     |  11 +
 seed/php-sdk/api-wide-base-path/composer.json |  40 +++
 seed/php-sdk/api-wide-base-path/phpstan.neon  |   5 +
 seed/php-sdk/api-wide-base-path/phpunit.xml   |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../audiences/.github/workflows/ci.yml        |  46 +++
 seed/php-sdk/audiences/.gitignore             |   4 +
 seed/php-sdk/audiences/Core/RawClient.php     |  11 +
 seed/php-sdk/audiences/composer.json          |  40 +++
 seed/php-sdk/audiences/phpstan.neon           |   5 +
 seed/php-sdk/audiences/phpunit.xml            |   7 +
 .../audiences/src/Placeholder/Placeholder.php |  11 +
 .../audiences/tests/Core/RawClient.php        |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../auth-environment-variables/.gitignore     |   4 +
 .../Core/RawClient.php                        |  11 +
 .../auth-environment-variables/composer.json  |  40 +++
 .../auth-environment-variables/phpstan.neon   |   5 +
 .../auth-environment-variables/phpunit.xml    |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../basic-auth/.github/workflows/ci.yml       |  46 +++
 seed/php-sdk/basic-auth/.gitignore            |   4 +
 seed/php-sdk/basic-auth/Core/RawClient.php    |  11 +
 seed/php-sdk/basic-auth/composer.json         |  40 +++
 seed/php-sdk/basic-auth/phpstan.neon          |   5 +
 seed/php-sdk/basic-auth/phpunit.xml           |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../basic-auth/tests/Core/RawClient.php       |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 seed/php-sdk/bytes/.github/workflows/ci.yml   |  46 +++
 seed/php-sdk/bytes/.gitignore                 |   4 +
 seed/php-sdk/bytes/Core/RawClient.php         |  11 +
 seed/php-sdk/bytes/composer.json              |  40 +++
 seed/php-sdk/bytes/phpstan.neon               |   5 +
 seed/php-sdk/bytes/phpunit.xml                |   7 +
 .../bytes/src/Placeholder/Placeholder.php     |  11 +
 seed/php-sdk/bytes/tests/Core/RawClient.php   |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../circular-references-advanced/.gitignore   |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../circular-references-advanced/phpstan.neon |   5 +
 .../circular-references-advanced/phpunit.xml  |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/circular-references/.gitignore   |   4 +
 .../circular-references/Core/RawClient.php    |  11 +
 .../php-sdk/circular-references/composer.json |  40 +++
 seed/php-sdk/circular-references/phpstan.neon |   5 +
 seed/php-sdk/circular-references/phpunit.xml  |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../cross-package-type-names/.gitignore       |   4 +
 .../Core/RawClient.php                        |  11 +
 .../cross-package-type-names/composer.json    |  40 +++
 .../cross-package-type-names/phpstan.neon     |   5 +
 .../cross-package-type-names/phpunit.xml      |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../custom-auth/.github/workflows/ci.yml      |  46 +++
 seed/php-sdk/custom-auth/.gitignore           |   4 +
 seed/php-sdk/custom-auth/Core/RawClient.php   |  11 +
 seed/php-sdk/custom-auth/composer.json        |  40 +++
 seed/php-sdk/custom-auth/phpstan.neon         |   5 +
 seed/php-sdk/custom-auth/phpunit.xml          |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../custom-auth/tests/Core/RawClient.php      |  11 +
 seed/php-sdk/enum/.github/workflows/ci.yml    |  46 +++
 seed/php-sdk/enum/.gitignore                  |   4 +
 seed/php-sdk/enum/Core/RawClient.php          |  11 +
 seed/php-sdk/enum/composer.json               |  40 +++
 seed/php-sdk/enum/phpstan.neon                |   5 +
 seed/php-sdk/enum/phpunit.xml                 |   7 +
 .../enum/src/Placeholder/Placeholder.php      |  11 +
 seed/php-sdk/enum/tests/Core/RawClient.php    |  11 +
 .../error-property/.github/workflows/ci.yml   |  46 +++
 seed/php-sdk/error-property/.gitignore        |   4 +
 .../php-sdk/error-property/Core/RawClient.php |  11 +
 seed/php-sdk/error-property/composer.json     |  40 +++
 seed/php-sdk/error-property/phpstan.neon      |   5 +
 seed/php-sdk/error-property/phpunit.xml       |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../error-property/tests/Core/RawClient.php   |  11 +
 .../php-sdk/examples/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/examples/.gitignore              |   4 +
 seed/php-sdk/examples/Core/RawClient.php      |  11 +
 seed/php-sdk/examples/composer.json           |  40 +++
 seed/php-sdk/examples/phpstan.neon            |   5 +
 seed/php-sdk/examples/phpunit.xml             |   7 +
 .../examples/src/Placeholder/Placeholder.php  |  11 +
 .../php-sdk/examples/tests/Core/RawClient.php |  11 +
 .../exhaustive/.github/workflows/ci.yml       |  46 +++
 seed/php-sdk/exhaustive/.gitignore            |   4 +
 seed/php-sdk/exhaustive/Core/RawClient.php    |  11 +
 seed/php-sdk/exhaustive/composer.json         |  40 +++
 seed/php-sdk/exhaustive/phpstan.neon          |   5 +
 seed/php-sdk/exhaustive/phpunit.xml           |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../exhaustive/tests/Core/RawClient.php       |  11 +
 seed/php-sdk/extends/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/extends/.gitignore               |   4 +
 seed/php-sdk/extends/Core/RawClient.php       |  11 +
 seed/php-sdk/extends/composer.json            |  40 +++
 seed/php-sdk/extends/phpstan.neon             |   5 +
 seed/php-sdk/extends/phpunit.xml              |   7 +
 .../extends/src/Placeholder/Placeholder.php   |  11 +
 seed/php-sdk/extends/tests/Core/RawClient.php |  11 +
 .../extra-properties/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/extra-properties/.gitignore      |   4 +
 .../extra-properties/Core/RawClient.php       |  11 +
 seed/php-sdk/extra-properties/composer.json   |  40 +++
 seed/php-sdk/extra-properties/phpstan.neon    |   5 +
 seed/php-sdk/extra-properties/phpunit.xml     |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../extra-properties/tests/Core/RawClient.php |  11 +
 .../file-download/.github/workflows/ci.yml    |  46 +++
 seed/php-sdk/file-download/.gitignore         |   4 +
 seed/php-sdk/file-download/Core/RawClient.php |  11 +
 seed/php-sdk/file-download/composer.json      |  40 +++
 seed/php-sdk/file-download/phpstan.neon       |   5 +
 seed/php-sdk/file-download/phpunit.xml        |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../file-download/tests/Core/RawClient.php    |  11 +
 .../file-upload/.github/workflows/ci.yml      |  46 +++
 seed/php-sdk/file-upload/.gitignore           |   4 +
 seed/php-sdk/file-upload/Core/RawClient.php   |  11 +
 seed/php-sdk/file-upload/composer.json        |  40 +++
 seed/php-sdk/file-upload/phpstan.neon         |   5 +
 seed/php-sdk/file-upload/phpunit.xml          |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../file-upload/tests/Core/RawClient.php      |  11 +
 seed/php-sdk/folders/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/folders/.gitignore               |   4 +
 seed/php-sdk/folders/Core/RawClient.php       |  11 +
 seed/php-sdk/folders/composer.json            |  40 +++
 seed/php-sdk/folders/phpstan.neon             |   5 +
 seed/php-sdk/folders/phpunit.xml              |   7 +
 .../folders/src/Placeholder/Placeholder.php   |  11 +
 seed/php-sdk/folders/tests/Core/RawClient.php |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/grpc-proto-exhaustive/.gitignore |   4 +
 .../grpc-proto-exhaustive/Core/RawClient.php  |  11 +
 .../grpc-proto-exhaustive/composer.json       |  40 +++
 .../grpc-proto-exhaustive/phpstan.neon        |   5 +
 .../php-sdk/grpc-proto-exhaustive/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../grpc-proto/.github/workflows/ci.yml       |  46 +++
 seed/php-sdk/grpc-proto/.gitignore            |   4 +
 seed/php-sdk/grpc-proto/Core/RawClient.php    |  11 +
 seed/php-sdk/grpc-proto/composer.json         |  40 +++
 seed/php-sdk/grpc-proto/phpstan.neon          |   5 +
 seed/php-sdk/grpc-proto/phpunit.xml           |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../grpc-proto/tests/Core/RawClient.php       |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/idempotency-headers/.gitignore   |   4 +
 .../idempotency-headers/Core/RawClient.php    |  11 +
 .../php-sdk/idempotency-headers/composer.json |  40 +++
 seed/php-sdk/idempotency-headers/phpstan.neon |   5 +
 seed/php-sdk/idempotency-headers/phpunit.xml  |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 seed/php-sdk/imdb/.github/workflows/ci.yml    |  46 +++
 seed/php-sdk/imdb/.gitignore                  |   4 +
 seed/php-sdk/imdb/Core/RawClient.php          |  11 +
 seed/php-sdk/imdb/composer.json               |  40 +++
 seed/php-sdk/imdb/phpstan.neon                |   5 +
 seed/php-sdk/imdb/phpunit.xml                 |   7 +
 .../imdb/src/Placeholder/Placeholder.php      |  11 +
 seed/php-sdk/imdb/tests/Core/RawClient.php    |  11 +
 seed/php-sdk/literal/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/literal/.gitignore               |   4 +
 seed/php-sdk/literal/Core/RawClient.php       |  11 +
 seed/php-sdk/literal/composer.json            |  40 +++
 seed/php-sdk/literal/phpstan.neon             |   5 +
 seed/php-sdk/literal/phpunit.xml              |   7 +
 .../literal/src/Placeholder/Placeholder.php   |  11 +
 seed/php-sdk/literal/tests/Core/RawClient.php |  11 +
 .../mixed-case/.github/workflows/ci.yml       |  46 +++
 seed/php-sdk/mixed-case/.gitignore            |   4 +
 seed/php-sdk/mixed-case/Core/RawClient.php    |  11 +
 seed/php-sdk/mixed-case/composer.json         |  40 +++
 seed/php-sdk/mixed-case/phpstan.neon          |   5 +
 seed/php-sdk/mixed-case/phpunit.xml           |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../mixed-case/tests/Core/RawClient.php       |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/mixed-file-directory/.gitignore  |   4 +
 .../mixed-file-directory/Core/RawClient.php   |  11 +
 .../mixed-file-directory/composer.json        |  40 +++
 .../php-sdk/mixed-file-directory/phpstan.neon |   5 +
 seed/php-sdk/mixed-file-directory/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../multi-line-docs/.github/workflows/ci.yml  |  46 +++
 seed/php-sdk/multi-line-docs/.gitignore       |   4 +
 .../multi-line-docs/Core/RawClient.php        |  11 +
 seed/php-sdk/multi-line-docs/composer.json    |  40 +++
 seed/php-sdk/multi-line-docs/phpstan.neon     |   5 +
 seed/php-sdk/multi-line-docs/phpunit.xml      |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../multi-line-docs/tests/Core/RawClient.php  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/multi-url-environment/.gitignore |   4 +
 .../multi-url-environment/Core/RawClient.php  |  11 +
 .../multi-url-environment/composer.json       |  40 +++
 .../multi-url-environment/phpstan.neon        |   5 +
 .../php-sdk/multi-url-environment/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../no-environment/.github/workflows/ci.yml   |  46 +++
 seed/php-sdk/no-environment/.gitignore        |   4 +
 .../php-sdk/no-environment/Core/RawClient.php |  11 +
 seed/php-sdk/no-environment/composer.json     |  40 +++
 seed/php-sdk/no-environment/phpstan.neon      |   5 +
 seed/php-sdk/no-environment/phpunit.xml       |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../no-environment/tests/Core/RawClient.php   |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../oauth-client-credentials/.gitignore       |   4 +
 .../Core/RawClient.php                        |  11 +
 .../oauth-client-credentials/composer.json    |  40 +++
 .../oauth-client-credentials/phpstan.neon     |   5 +
 .../oauth-client-credentials/phpunit.xml      |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 seed/php-sdk/object/.github/workflows/ci.yml  |  46 +++
 seed/php-sdk/object/.gitignore                |   4 +
 seed/php-sdk/object/Core/RawClient.php        |  11 +
 seed/php-sdk/object/composer.json             |  40 +++
 seed/php-sdk/object/phpstan.neon              |   5 +
 seed/php-sdk/object/phpunit.xml               |   7 +
 .../object/src/Placeholder/Placeholder.php    |  11 +
 seed/php-sdk/object/tests/Core/RawClient.php  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/objects-with-imports/.gitignore  |   4 +
 .../objects-with-imports/Core/RawClient.php   |  11 +
 .../objects-with-imports/composer.json        |  40 +++
 .../php-sdk/objects-with-imports/phpstan.neon |   5 +
 seed/php-sdk/objects-with-imports/phpunit.xml |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../php-sdk/optional/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/optional/.gitignore              |   4 +
 seed/php-sdk/optional/Core/RawClient.php      |  11 +
 seed/php-sdk/optional/composer.json           |  40 +++
 seed/php-sdk/optional/phpstan.neon            |   5 +
 seed/php-sdk/optional/phpunit.xml             |   7 +
 .../optional/src/Placeholder/Placeholder.php  |  11 +
 .../php-sdk/optional/tests/Core/RawClient.php |  11 +
 .../package-yml/.github/workflows/ci.yml      |  46 +++
 seed/php-sdk/package-yml/.gitignore           |   4 +
 seed/php-sdk/package-yml/Core/RawClient.php   |  11 +
 seed/php-sdk/package-yml/composer.json        |  40 +++
 seed/php-sdk/package-yml/phpstan.neon         |   5 +
 seed/php-sdk/package-yml/phpunit.xml          |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../package-yml/tests/Core/RawClient.php      |  11 +
 .../pagination/.github/workflows/ci.yml       |  46 +++
 seed/php-sdk/pagination/.gitignore            |   4 +
 seed/php-sdk/pagination/Core/RawClient.php    |  11 +
 seed/php-sdk/pagination/composer.json         |  40 +++
 seed/php-sdk/pagination/phpstan.neon          |   5 +
 seed/php-sdk/pagination/phpunit.xml           |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../pagination/tests/Core/RawClient.php       |  11 +
 .../plain-text/.github/workflows/ci.yml       |  46 +++
 seed/php-sdk/plain-text/.gitignore            |   4 +
 seed/php-sdk/plain-text/Core/RawClient.php    |  11 +
 seed/php-sdk/plain-text/composer.json         |  40 +++
 seed/php-sdk/plain-text/phpstan.neon          |   5 +
 seed/php-sdk/plain-text/phpunit.xml           |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../plain-text/tests/Core/RawClient.php       |  11 +
 .../query-parameters/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/query-parameters/.gitignore      |   4 +
 .../query-parameters/Core/RawClient.php       |  11 +
 seed/php-sdk/query-parameters/composer.json   |  40 +++
 seed/php-sdk/query-parameters/phpstan.neon    |   5 +
 seed/php-sdk/query-parameters/phpunit.xml     |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../query-parameters/tests/Core/RawClient.php |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/reserved-keywords/.gitignore     |   4 +
 .../reserved-keywords/Core/RawClient.php      |  11 +
 seed/php-sdk/reserved-keywords/composer.json  |  40 +++
 seed/php-sdk/reserved-keywords/phpstan.neon   |   5 +
 seed/php-sdk/reserved-keywords/phpunit.xml    |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/response-property/.gitignore     |   4 +
 .../response-property/Core/RawClient.php      |  11 +
 seed/php-sdk/response-property/composer.json  |  40 +++
 seed/php-sdk/response-property/phpstan.neon   |   5 +
 seed/php-sdk/response-property/phpunit.xml    |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 seed/php-sdk/seed.yml                         |   6 +-
 .../simple-fhir/.github/workflows/ci.yml      |  46 +++
 seed/php-sdk/simple-fhir/.gitignore           |   4 +
 seed/php-sdk/simple-fhir/Core/RawClient.php   |  11 +
 seed/php-sdk/simple-fhir/composer.json        |  40 +++
 seed/php-sdk/simple-fhir/phpstan.neon         |   5 +
 seed/php-sdk/simple-fhir/phpunit.xml          |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../simple-fhir/tests/Core/RawClient.php      |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../single-url-environment-default/.gitignore |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../.gitignore                                |   4 +
 .../Core/RawClient.php                        |  11 +
 .../composer.json                             |  40 +++
 .../phpstan.neon                              |   5 +
 .../phpunit.xml                               |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/streaming-parameter/.gitignore   |   4 +
 .../streaming-parameter/Core/RawClient.php    |  11 +
 .../php-sdk/streaming-parameter/composer.json |  40 +++
 seed/php-sdk/streaming-parameter/phpstan.neon |   5 +
 seed/php-sdk/streaming-parameter/phpunit.xml  |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 .../streaming/.github/workflows/ci.yml        |  46 +++
 seed/php-sdk/streaming/.gitignore             |   4 +
 seed/php-sdk/streaming/Core/RawClient.php     |  11 +
 seed/php-sdk/streaming/composer.json          |  40 +++
 seed/php-sdk/streaming/phpstan.neon           |   5 +
 seed/php-sdk/streaming/phpunit.xml            |   7 +
 .../streaming/src/Placeholder/Placeholder.php |  11 +
 .../streaming/tests/Core/RawClient.php        |  11 +
 seed/php-sdk/trace/.github/workflows/ci.yml   |  46 +++
 seed/php-sdk/trace/.gitignore                 |   4 +
 seed/php-sdk/trace/Core/RawClient.php         |  11 +
 seed/php-sdk/trace/composer.json              |  40 +++
 seed/php-sdk/trace/phpstan.neon               |   5 +
 seed/php-sdk/trace/phpunit.xml                |   7 +
 .../trace/src/Placeholder/Placeholder.php     |  11 +
 seed/php-sdk/trace/tests/Core/RawClient.php   |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 .../php-sdk/undiscriminated-unions/.gitignore |   4 +
 .../undiscriminated-unions/Core/RawClient.php |  11 +
 .../undiscriminated-unions/composer.json      |  40 +++
 .../undiscriminated-unions/phpstan.neon       |   5 +
 .../undiscriminated-unions/phpunit.xml        |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 seed/php-sdk/unions/.github/workflows/ci.yml  |  46 +++
 seed/php-sdk/unions/.gitignore                |   4 +
 seed/php-sdk/unions/Core/RawClient.php        |  11 +
 seed/php-sdk/unions/composer.json             |  40 +++
 seed/php-sdk/unions/phpstan.neon              |   5 +
 seed/php-sdk/unions/phpunit.xml               |   7 +
 .../unions/src/Placeholder/Placeholder.php    |  11 +
 seed/php-sdk/unions/tests/Core/RawClient.php  |  11 +
 seed/php-sdk/unknown/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/unknown/.gitignore               |   4 +
 seed/php-sdk/unknown/Core/RawClient.php       |  11 +
 seed/php-sdk/unknown/composer.json            |  40 +++
 seed/php-sdk/unknown/phpstan.neon             |   5 +
 seed/php-sdk/unknown/phpunit.xml              |   7 +
 .../unknown/src/Placeholder/Placeholder.php   |  11 +
 seed/php-sdk/unknown/tests/Core/RawClient.php |  11 +
 .../validation/.github/workflows/ci.yml       |  46 +++
 seed/php-sdk/validation/.gitignore            |   4 +
 seed/php-sdk/validation/Core/RawClient.php    |  11 +
 seed/php-sdk/validation/composer.json         |  40 +++
 seed/php-sdk/validation/phpstan.neon          |   5 +
 seed/php-sdk/validation/phpunit.xml           |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../validation/tests/Core/RawClient.php       |  11 +
 .../variables/.github/workflows/ci.yml        |  46 +++
 seed/php-sdk/variables/.gitignore             |   4 +
 seed/php-sdk/variables/Core/RawClient.php     |  11 +
 seed/php-sdk/variables/composer.json          |  40 +++
 seed/php-sdk/variables/phpstan.neon           |   5 +
 seed/php-sdk/variables/phpunit.xml            |   7 +
 .../variables/src/Placeholder/Placeholder.php |  11 +
 .../variables/tests/Core/RawClient.php        |  11 +
 .../.github/workflows/ci.yml                  |  46 +++
 seed/php-sdk/version-no-default/.gitignore    |   4 +
 .../version-no-default/Core/RawClient.php     |  11 +
 seed/php-sdk/version-no-default/composer.json |  40 +++
 seed/php-sdk/version-no-default/phpstan.neon  |   5 +
 seed/php-sdk/version-no-default/phpunit.xml   |   7 +
 .../src/Placeholder/Placeholder.php           |  11 +
 .../tests/Core/RawClient.php                  |  11 +
 seed/php-sdk/version/.github/workflows/ci.yml |  46 +++
 seed/php-sdk/version/.gitignore               |   4 +
 seed/php-sdk/version/Core/RawClient.php       |  11 +
 seed/php-sdk/version/composer.json            |  40 +++
 seed/php-sdk/version/phpstan.neon             |   5 +
 seed/php-sdk/version/phpunit.xml              |   7 +
 .../version/src/Placeholder/Placeholder.php   |  11 +
 seed/php-sdk/version/tests/Core/RawClient.php |  11 +
 .../websocket/.github/workflows/ci.yml        |  46 +++
 seed/php-sdk/websocket/.gitignore             |   4 +
 seed/php-sdk/websocket/Core/RawClient.php     |  11 +
 seed/php-sdk/websocket/composer.json          |  40 +++
 seed/php-sdk/websocket/phpstan.neon           |   5 +
 seed/php-sdk/websocket/phpunit.xml            |   7 +
 .../websocket/src/Placeholder/Placeholder.php |  11 +
 .../websocket/tests/Core/RawClient.php        |  11 +
 897 files changed, 15773 insertions(+), 99 deletions(-)
 create mode 100644 generators/commons/src/project/AbstractProject.ts
 create mode 100644 generators/php/codegen/src/asIs/.gitignore
 create mode 100644 generators/php/codegen/src/asIs/RawClient.Template.php
 create mode 100644 generators/php/codegen/src/asIs/RawClientTest.Template.php
 create mode 100644 generators/php/codegen/src/asIs/github-ci.yml
 create mode 100644 generators/php/codegen/src/asIs/phpstan.neon
 create mode 100644 generators/php/codegen/src/asIs/phpunit.xml
 delete mode 100644 generators/php/codegen/src/project/File.ts
 create mode 100644 generators/php/codegen/src/project/PhpFile.ts
 create mode 100644 generators/php/codegen/src/project/PhpProject.ts
 create mode 100644 generators/php/codegen/src/project/index.ts
 create mode 100644 generators/php/model/src/generateModels.ts
 create mode 100644 seed/php-model/alias-extends/.github/workflows/ci.yml
 create mode 100644 seed/php-model/alias-extends/.gitignore
 create mode 100644 seed/php-model/alias-extends/composer.json
 create mode 100644 seed/php-model/alias-extends/phpstan.neon
 create mode 100644 seed/php-model/alias-extends/phpunit.xml
 create mode 100644 seed/php-model/alias-extends/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/alias/.github/workflows/ci.yml
 create mode 100644 seed/php-model/alias/.gitignore
 create mode 100644 seed/php-model/alias/composer.json
 create mode 100644 seed/php-model/alias/phpstan.neon
 create mode 100644 seed/php-model/alias/phpunit.xml
 create mode 100644 seed/php-model/alias/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/any-auth/.github/workflows/ci.yml
 create mode 100644 seed/php-model/any-auth/.gitignore
 create mode 100644 seed/php-model/any-auth/composer.json
 create mode 100644 seed/php-model/any-auth/phpstan.neon
 create mode 100644 seed/php-model/any-auth/phpunit.xml
 create mode 100644 seed/php-model/any-auth/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/api-wide-base-path/.github/workflows/ci.yml
 create mode 100644 seed/php-model/api-wide-base-path/.gitignore
 create mode 100644 seed/php-model/api-wide-base-path/composer.json
 create mode 100644 seed/php-model/api-wide-base-path/phpstan.neon
 create mode 100644 seed/php-model/api-wide-base-path/phpunit.xml
 create mode 100644 seed/php-model/api-wide-base-path/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/audiences/.github/workflows/ci.yml
 create mode 100644 seed/php-model/audiences/.gitignore
 create mode 100644 seed/php-model/audiences/composer.json
 create mode 100644 seed/php-model/audiences/phpstan.neon
 create mode 100644 seed/php-model/audiences/phpunit.xml
 create mode 100644 seed/php-model/audiences/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/auth-environment-variables/.github/workflows/ci.yml
 create mode 100644 seed/php-model/auth-environment-variables/.gitignore
 create mode 100644 seed/php-model/auth-environment-variables/composer.json
 create mode 100644 seed/php-model/auth-environment-variables/phpstan.neon
 create mode 100644 seed/php-model/auth-environment-variables/phpunit.xml
 create mode 100644 seed/php-model/auth-environment-variables/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/basic-auth-environment-variables/.github/workflows/ci.yml
 create mode 100644 seed/php-model/basic-auth-environment-variables/.gitignore
 create mode 100644 seed/php-model/basic-auth-environment-variables/composer.json
 create mode 100644 seed/php-model/basic-auth-environment-variables/phpstan.neon
 create mode 100644 seed/php-model/basic-auth-environment-variables/phpunit.xml
 create mode 100644 seed/php-model/basic-auth-environment-variables/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/basic-auth/.github/workflows/ci.yml
 create mode 100644 seed/php-model/basic-auth/.gitignore
 create mode 100644 seed/php-model/basic-auth/composer.json
 create mode 100644 seed/php-model/basic-auth/phpstan.neon
 create mode 100644 seed/php-model/basic-auth/phpunit.xml
 create mode 100644 seed/php-model/basic-auth/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/bearer-token-environment-variable/.github/workflows/ci.yml
 create mode 100644 seed/php-model/bearer-token-environment-variable/.gitignore
 create mode 100644 seed/php-model/bearer-token-environment-variable/composer.json
 create mode 100644 seed/php-model/bearer-token-environment-variable/phpstan.neon
 create mode 100644 seed/php-model/bearer-token-environment-variable/phpunit.xml
 create mode 100644 seed/php-model/bearer-token-environment-variable/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/bytes/.github/workflows/ci.yml
 create mode 100644 seed/php-model/bytes/.gitignore
 create mode 100644 seed/php-model/bytes/composer.json
 create mode 100644 seed/php-model/bytes/phpstan.neon
 create mode 100644 seed/php-model/bytes/phpunit.xml
 create mode 100644 seed/php-model/bytes/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/circular-references-advanced/.github/workflows/ci.yml
 create mode 100644 seed/php-model/circular-references-advanced/.gitignore
 create mode 100644 seed/php-model/circular-references-advanced/composer.json
 create mode 100644 seed/php-model/circular-references-advanced/phpstan.neon
 create mode 100644 seed/php-model/circular-references-advanced/phpunit.xml
 create mode 100644 seed/php-model/circular-references-advanced/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/circular-references/.github/workflows/ci.yml
 create mode 100644 seed/php-model/circular-references/.gitignore
 create mode 100644 seed/php-model/circular-references/composer.json
 create mode 100644 seed/php-model/circular-references/phpstan.neon
 create mode 100644 seed/php-model/circular-references/phpunit.xml
 create mode 100644 seed/php-model/circular-references/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/cross-package-type-names/.github/workflows/ci.yml
 create mode 100644 seed/php-model/cross-package-type-names/.gitignore
 create mode 100644 seed/php-model/cross-package-type-names/composer.json
 create mode 100644 seed/php-model/cross-package-type-names/phpstan.neon
 create mode 100644 seed/php-model/cross-package-type-names/phpunit.xml
 create mode 100644 seed/php-model/cross-package-type-names/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/custom-auth/.github/workflows/ci.yml
 create mode 100644 seed/php-model/custom-auth/.gitignore
 create mode 100644 seed/php-model/custom-auth/composer.json
 create mode 100644 seed/php-model/custom-auth/phpstan.neon
 create mode 100644 seed/php-model/custom-auth/phpunit.xml
 create mode 100644 seed/php-model/custom-auth/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/enum/.github/workflows/ci.yml
 create mode 100644 seed/php-model/enum/.gitignore
 create mode 100644 seed/php-model/enum/composer.json
 create mode 100644 seed/php-model/enum/phpstan.neon
 create mode 100644 seed/php-model/enum/phpunit.xml
 create mode 100644 seed/php-model/enum/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/error-property/.github/workflows/ci.yml
 create mode 100644 seed/php-model/error-property/.gitignore
 create mode 100644 seed/php-model/error-property/composer.json
 create mode 100644 seed/php-model/error-property/phpstan.neon
 create mode 100644 seed/php-model/error-property/phpunit.xml
 create mode 100644 seed/php-model/error-property/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/examples/.github/workflows/ci.yml
 create mode 100644 seed/php-model/examples/.gitignore
 create mode 100644 seed/php-model/examples/composer.json
 create mode 100644 seed/php-model/examples/phpstan.neon
 create mode 100644 seed/php-model/examples/phpunit.xml
 create mode 100644 seed/php-model/examples/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/exhaustive/.github/workflows/ci.yml
 create mode 100644 seed/php-model/exhaustive/.gitignore
 create mode 100644 seed/php-model/exhaustive/composer.json
 create mode 100644 seed/php-model/exhaustive/phpstan.neon
 create mode 100644 seed/php-model/exhaustive/phpunit.xml
 create mode 100644 seed/php-model/exhaustive/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/extends/.github/workflows/ci.yml
 create mode 100644 seed/php-model/extends/.gitignore
 create mode 100644 seed/php-model/extends/composer.json
 create mode 100644 seed/php-model/extends/phpstan.neon
 create mode 100644 seed/php-model/extends/phpunit.xml
 create mode 100644 seed/php-model/extends/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/extra-properties/.github/workflows/ci.yml
 create mode 100644 seed/php-model/extra-properties/.gitignore
 create mode 100644 seed/php-model/extra-properties/composer.json
 create mode 100644 seed/php-model/extra-properties/phpstan.neon
 create mode 100644 seed/php-model/extra-properties/phpunit.xml
 create mode 100644 seed/php-model/extra-properties/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/file-download/.github/workflows/ci.yml
 create mode 100644 seed/php-model/file-download/.gitignore
 create mode 100644 seed/php-model/file-download/composer.json
 create mode 100644 seed/php-model/file-download/phpstan.neon
 create mode 100644 seed/php-model/file-download/phpunit.xml
 create mode 100644 seed/php-model/file-download/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/file-upload/.github/workflows/ci.yml
 create mode 100644 seed/php-model/file-upload/.gitignore
 create mode 100644 seed/php-model/file-upload/composer.json
 create mode 100644 seed/php-model/file-upload/phpstan.neon
 create mode 100644 seed/php-model/file-upload/phpunit.xml
 create mode 100644 seed/php-model/file-upload/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/folders/.github/workflows/ci.yml
 create mode 100644 seed/php-model/folders/.gitignore
 create mode 100644 seed/php-model/folders/composer.json
 create mode 100644 seed/php-model/folders/phpstan.neon
 create mode 100644 seed/php-model/folders/phpunit.xml
 create mode 100644 seed/php-model/folders/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/grpc-proto-exhaustive/.github/workflows/ci.yml
 create mode 100644 seed/php-model/grpc-proto-exhaustive/.gitignore
 create mode 100644 seed/php-model/grpc-proto-exhaustive/composer.json
 create mode 100644 seed/php-model/grpc-proto-exhaustive/phpstan.neon
 create mode 100644 seed/php-model/grpc-proto-exhaustive/phpunit.xml
 create mode 100644 seed/php-model/grpc-proto-exhaustive/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/grpc-proto/.github/workflows/ci.yml
 create mode 100644 seed/php-model/grpc-proto/.gitignore
 create mode 100644 seed/php-model/grpc-proto/composer.json
 create mode 100644 seed/php-model/grpc-proto/phpstan.neon
 create mode 100644 seed/php-model/grpc-proto/phpunit.xml
 create mode 100644 seed/php-model/grpc-proto/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/idempotency-headers/.github/workflows/ci.yml
 create mode 100644 seed/php-model/idempotency-headers/.gitignore
 create mode 100644 seed/php-model/idempotency-headers/composer.json
 create mode 100644 seed/php-model/idempotency-headers/phpstan.neon
 create mode 100644 seed/php-model/idempotency-headers/phpunit.xml
 create mode 100644 seed/php-model/idempotency-headers/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/imdb/.github/workflows/ci.yml
 create mode 100644 seed/php-model/imdb/.gitignore
 create mode 100644 seed/php-model/imdb/composer.json
 create mode 100644 seed/php-model/imdb/phpstan.neon
 create mode 100644 seed/php-model/imdb/phpunit.xml
 create mode 100644 seed/php-model/imdb/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/literal/.github/workflows/ci.yml
 create mode 100644 seed/php-model/literal/.gitignore
 create mode 100644 seed/php-model/literal/composer.json
 create mode 100644 seed/php-model/literal/phpstan.neon
 create mode 100644 seed/php-model/literal/phpunit.xml
 create mode 100644 seed/php-model/literal/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/mixed-case/.github/workflows/ci.yml
 create mode 100644 seed/php-model/mixed-case/.gitignore
 create mode 100644 seed/php-model/mixed-case/composer.json
 create mode 100644 seed/php-model/mixed-case/phpstan.neon
 create mode 100644 seed/php-model/mixed-case/phpunit.xml
 create mode 100644 seed/php-model/mixed-case/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/mixed-file-directory/.github/workflows/ci.yml
 create mode 100644 seed/php-model/mixed-file-directory/.gitignore
 create mode 100644 seed/php-model/mixed-file-directory/composer.json
 create mode 100644 seed/php-model/mixed-file-directory/phpstan.neon
 create mode 100644 seed/php-model/mixed-file-directory/phpunit.xml
 create mode 100644 seed/php-model/mixed-file-directory/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/multi-line-docs/.github/workflows/ci.yml
 create mode 100644 seed/php-model/multi-line-docs/.gitignore
 create mode 100644 seed/php-model/multi-line-docs/composer.json
 create mode 100644 seed/php-model/multi-line-docs/phpstan.neon
 create mode 100644 seed/php-model/multi-line-docs/phpunit.xml
 create mode 100644 seed/php-model/multi-line-docs/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/multi-url-environment-no-default/.github/workflows/ci.yml
 create mode 100644 seed/php-model/multi-url-environment-no-default/.gitignore
 create mode 100644 seed/php-model/multi-url-environment-no-default/composer.json
 create mode 100644 seed/php-model/multi-url-environment-no-default/phpstan.neon
 create mode 100644 seed/php-model/multi-url-environment-no-default/phpunit.xml
 create mode 100644 seed/php-model/multi-url-environment-no-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/multi-url-environment/.github/workflows/ci.yml
 create mode 100644 seed/php-model/multi-url-environment/.gitignore
 create mode 100644 seed/php-model/multi-url-environment/composer.json
 create mode 100644 seed/php-model/multi-url-environment/phpstan.neon
 create mode 100644 seed/php-model/multi-url-environment/phpunit.xml
 create mode 100644 seed/php-model/multi-url-environment/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/no-environment/.github/workflows/ci.yml
 create mode 100644 seed/php-model/no-environment/.gitignore
 create mode 100644 seed/php-model/no-environment/composer.json
 create mode 100644 seed/php-model/no-environment/phpstan.neon
 create mode 100644 seed/php-model/no-environment/phpunit.xml
 create mode 100644 seed/php-model/no-environment/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/oauth-client-credentials-default/.github/workflows/ci.yml
 create mode 100644 seed/php-model/oauth-client-credentials-default/.gitignore
 create mode 100644 seed/php-model/oauth-client-credentials-default/composer.json
 create mode 100644 seed/php-model/oauth-client-credentials-default/phpstan.neon
 create mode 100644 seed/php-model/oauth-client-credentials-default/phpunit.xml
 create mode 100644 seed/php-model/oauth-client-credentials-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/oauth-client-credentials-environment-variables/.github/workflows/ci.yml
 create mode 100644 seed/php-model/oauth-client-credentials-environment-variables/.gitignore
 create mode 100644 seed/php-model/oauth-client-credentials-environment-variables/composer.json
 create mode 100644 seed/php-model/oauth-client-credentials-environment-variables/phpstan.neon
 create mode 100644 seed/php-model/oauth-client-credentials-environment-variables/phpunit.xml
 create mode 100644 seed/php-model/oauth-client-credentials-environment-variables/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/oauth-client-credentials-nested-root/.github/workflows/ci.yml
 create mode 100644 seed/php-model/oauth-client-credentials-nested-root/.gitignore
 create mode 100644 seed/php-model/oauth-client-credentials-nested-root/composer.json
 create mode 100644 seed/php-model/oauth-client-credentials-nested-root/phpstan.neon
 create mode 100644 seed/php-model/oauth-client-credentials-nested-root/phpunit.xml
 create mode 100644 seed/php-model/oauth-client-credentials-nested-root/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/oauth-client-credentials/.github/workflows/ci.yml
 create mode 100644 seed/php-model/oauth-client-credentials/.gitignore
 create mode 100644 seed/php-model/oauth-client-credentials/composer.json
 create mode 100644 seed/php-model/oauth-client-credentials/phpstan.neon
 create mode 100644 seed/php-model/oauth-client-credentials/phpunit.xml
 create mode 100644 seed/php-model/oauth-client-credentials/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/object/.github/workflows/ci.yml
 create mode 100644 seed/php-model/object/.gitignore
 create mode 100644 seed/php-model/object/composer.json
 create mode 100644 seed/php-model/object/phpstan.neon
 create mode 100644 seed/php-model/object/phpunit.xml
 create mode 100644 seed/php-model/object/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/objects-with-imports/.github/workflows/ci.yml
 create mode 100644 seed/php-model/objects-with-imports/.gitignore
 create mode 100644 seed/php-model/objects-with-imports/composer.json
 create mode 100644 seed/php-model/objects-with-imports/phpstan.neon
 create mode 100644 seed/php-model/objects-with-imports/phpunit.xml
 create mode 100644 seed/php-model/objects-with-imports/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/optional/.github/workflows/ci.yml
 create mode 100644 seed/php-model/optional/.gitignore
 create mode 100644 seed/php-model/optional/composer.json
 create mode 100644 seed/php-model/optional/phpstan.neon
 create mode 100644 seed/php-model/optional/phpunit.xml
 create mode 100644 seed/php-model/optional/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/package-yml/.github/workflows/ci.yml
 create mode 100644 seed/php-model/package-yml/.gitignore
 create mode 100644 seed/php-model/package-yml/composer.json
 create mode 100644 seed/php-model/package-yml/phpstan.neon
 create mode 100644 seed/php-model/package-yml/phpunit.xml
 create mode 100644 seed/php-model/package-yml/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/pagination/.github/workflows/ci.yml
 create mode 100644 seed/php-model/pagination/.gitignore
 create mode 100644 seed/php-model/pagination/composer.json
 create mode 100644 seed/php-model/pagination/phpstan.neon
 create mode 100644 seed/php-model/pagination/phpunit.xml
 create mode 100644 seed/php-model/pagination/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/plain-text/.github/workflows/ci.yml
 create mode 100644 seed/php-model/plain-text/.gitignore
 create mode 100644 seed/php-model/plain-text/composer.json
 create mode 100644 seed/php-model/plain-text/phpstan.neon
 create mode 100644 seed/php-model/plain-text/phpunit.xml
 create mode 100644 seed/php-model/plain-text/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/query-parameters/.github/workflows/ci.yml
 create mode 100644 seed/php-model/query-parameters/.gitignore
 create mode 100644 seed/php-model/query-parameters/composer.json
 create mode 100644 seed/php-model/query-parameters/phpstan.neon
 create mode 100644 seed/php-model/query-parameters/phpunit.xml
 create mode 100644 seed/php-model/query-parameters/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/reserved-keywords/.github/workflows/ci.yml
 create mode 100644 seed/php-model/reserved-keywords/.gitignore
 create mode 100644 seed/php-model/reserved-keywords/composer.json
 create mode 100644 seed/php-model/reserved-keywords/phpstan.neon
 create mode 100644 seed/php-model/reserved-keywords/phpunit.xml
 create mode 100644 seed/php-model/reserved-keywords/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/response-property/.github/workflows/ci.yml
 create mode 100644 seed/php-model/response-property/.gitignore
 create mode 100644 seed/php-model/response-property/composer.json
 create mode 100644 seed/php-model/response-property/phpstan.neon
 create mode 100644 seed/php-model/response-property/phpunit.xml
 create mode 100644 seed/php-model/response-property/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/simple-fhir/.github/workflows/ci.yml
 create mode 100644 seed/php-model/simple-fhir/.gitignore
 create mode 100644 seed/php-model/simple-fhir/composer.json
 create mode 100644 seed/php-model/simple-fhir/phpstan.neon
 create mode 100644 seed/php-model/simple-fhir/phpunit.xml
 create mode 100644 seed/php-model/simple-fhir/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/single-url-environment-default/.github/workflows/ci.yml
 create mode 100644 seed/php-model/single-url-environment-default/.gitignore
 create mode 100644 seed/php-model/single-url-environment-default/composer.json
 create mode 100644 seed/php-model/single-url-environment-default/phpstan.neon
 create mode 100644 seed/php-model/single-url-environment-default/phpunit.xml
 create mode 100644 seed/php-model/single-url-environment-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/single-url-environment-no-default/.github/workflows/ci.yml
 create mode 100644 seed/php-model/single-url-environment-no-default/.gitignore
 create mode 100644 seed/php-model/single-url-environment-no-default/composer.json
 create mode 100644 seed/php-model/single-url-environment-no-default/phpstan.neon
 create mode 100644 seed/php-model/single-url-environment-no-default/phpunit.xml
 create mode 100644 seed/php-model/single-url-environment-no-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/streaming-parameter/.github/workflows/ci.yml
 create mode 100644 seed/php-model/streaming-parameter/.gitignore
 create mode 100644 seed/php-model/streaming-parameter/composer.json
 create mode 100644 seed/php-model/streaming-parameter/phpstan.neon
 create mode 100644 seed/php-model/streaming-parameter/phpunit.xml
 create mode 100644 seed/php-model/streaming-parameter/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/streaming/.github/workflows/ci.yml
 create mode 100644 seed/php-model/streaming/.gitignore
 create mode 100644 seed/php-model/streaming/composer.json
 create mode 100644 seed/php-model/streaming/phpstan.neon
 create mode 100644 seed/php-model/streaming/phpunit.xml
 create mode 100644 seed/php-model/streaming/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/trace/.github/workflows/ci.yml
 create mode 100644 seed/php-model/trace/.gitignore
 create mode 100644 seed/php-model/trace/composer.json
 create mode 100644 seed/php-model/trace/phpstan.neon
 create mode 100644 seed/php-model/trace/phpunit.xml
 create mode 100644 seed/php-model/trace/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/undiscriminated-unions/.github/workflows/ci.yml
 create mode 100644 seed/php-model/undiscriminated-unions/.gitignore
 create mode 100644 seed/php-model/undiscriminated-unions/composer.json
 create mode 100644 seed/php-model/undiscriminated-unions/phpstan.neon
 create mode 100644 seed/php-model/undiscriminated-unions/phpunit.xml
 create mode 100644 seed/php-model/undiscriminated-unions/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/unions/.github/workflows/ci.yml
 create mode 100644 seed/php-model/unions/.gitignore
 create mode 100644 seed/php-model/unions/composer.json
 create mode 100644 seed/php-model/unions/phpstan.neon
 create mode 100644 seed/php-model/unions/phpunit.xml
 create mode 100644 seed/php-model/unions/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/unknown/.github/workflows/ci.yml
 create mode 100644 seed/php-model/unknown/.gitignore
 create mode 100644 seed/php-model/unknown/composer.json
 create mode 100644 seed/php-model/unknown/phpstan.neon
 create mode 100644 seed/php-model/unknown/phpunit.xml
 create mode 100644 seed/php-model/unknown/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/validation/.github/workflows/ci.yml
 create mode 100644 seed/php-model/validation/.gitignore
 create mode 100644 seed/php-model/validation/composer.json
 create mode 100644 seed/php-model/validation/phpstan.neon
 create mode 100644 seed/php-model/validation/phpunit.xml
 create mode 100644 seed/php-model/validation/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/variables/.github/workflows/ci.yml
 create mode 100644 seed/php-model/variables/.gitignore
 create mode 100644 seed/php-model/variables/composer.json
 create mode 100644 seed/php-model/variables/phpstan.neon
 create mode 100644 seed/php-model/variables/phpunit.xml
 create mode 100644 seed/php-model/variables/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/version-no-default/.github/workflows/ci.yml
 create mode 100644 seed/php-model/version-no-default/.gitignore
 create mode 100644 seed/php-model/version-no-default/composer.json
 create mode 100644 seed/php-model/version-no-default/phpstan.neon
 create mode 100644 seed/php-model/version-no-default/phpunit.xml
 create mode 100644 seed/php-model/version-no-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/version/.github/workflows/ci.yml
 create mode 100644 seed/php-model/version/.gitignore
 create mode 100644 seed/php-model/version/composer.json
 create mode 100644 seed/php-model/version/phpstan.neon
 create mode 100644 seed/php-model/version/phpunit.xml
 create mode 100644 seed/php-model/version/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-model/websocket/.github/workflows/ci.yml
 create mode 100644 seed/php-model/websocket/.gitignore
 create mode 100644 seed/php-model/websocket/composer.json
 create mode 100644 seed/php-model/websocket/phpstan.neon
 create mode 100644 seed/php-model/websocket/phpunit.xml
 create mode 100644 seed/php-model/websocket/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/alias-extends/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/alias-extends/.gitignore
 rename {generators/php/codegen/src/asIs => seed/php-sdk/alias-extends/Core}/RawClient.php (80%)
 create mode 100644 seed/php-sdk/alias-extends/composer.json
 create mode 100644 seed/php-sdk/alias-extends/phpstan.neon
 create mode 100644 seed/php-sdk/alias-extends/phpunit.xml
 create mode 100644 seed/php-sdk/alias-extends/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/alias-extends/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/alias/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/alias/.gitignore
 create mode 100644 seed/php-sdk/alias/Core/RawClient.php
 create mode 100644 seed/php-sdk/alias/composer.json
 create mode 100644 seed/php-sdk/alias/phpstan.neon
 create mode 100644 seed/php-sdk/alias/phpunit.xml
 create mode 100644 seed/php-sdk/alias/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/alias/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/any-auth/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/any-auth/.gitignore
 create mode 100644 seed/php-sdk/any-auth/Core/RawClient.php
 create mode 100644 seed/php-sdk/any-auth/composer.json
 create mode 100644 seed/php-sdk/any-auth/phpstan.neon
 create mode 100644 seed/php-sdk/any-auth/phpunit.xml
 create mode 100644 seed/php-sdk/any-auth/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/any-auth/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/api-wide-base-path/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/api-wide-base-path/.gitignore
 create mode 100644 seed/php-sdk/api-wide-base-path/Core/RawClient.php
 create mode 100644 seed/php-sdk/api-wide-base-path/composer.json
 create mode 100644 seed/php-sdk/api-wide-base-path/phpstan.neon
 create mode 100644 seed/php-sdk/api-wide-base-path/phpunit.xml
 create mode 100644 seed/php-sdk/api-wide-base-path/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/api-wide-base-path/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/audiences/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/audiences/.gitignore
 create mode 100644 seed/php-sdk/audiences/Core/RawClient.php
 create mode 100644 seed/php-sdk/audiences/composer.json
 create mode 100644 seed/php-sdk/audiences/phpstan.neon
 create mode 100644 seed/php-sdk/audiences/phpunit.xml
 create mode 100644 seed/php-sdk/audiences/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/audiences/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/auth-environment-variables/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/auth-environment-variables/.gitignore
 create mode 100644 seed/php-sdk/auth-environment-variables/Core/RawClient.php
 create mode 100644 seed/php-sdk/auth-environment-variables/composer.json
 create mode 100644 seed/php-sdk/auth-environment-variables/phpstan.neon
 create mode 100644 seed/php-sdk/auth-environment-variables/phpunit.xml
 create mode 100644 seed/php-sdk/auth-environment-variables/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/auth-environment-variables/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/basic-auth-environment-variables/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/basic-auth-environment-variables/.gitignore
 create mode 100644 seed/php-sdk/basic-auth-environment-variables/Core/RawClient.php
 create mode 100644 seed/php-sdk/basic-auth-environment-variables/composer.json
 create mode 100644 seed/php-sdk/basic-auth-environment-variables/phpstan.neon
 create mode 100644 seed/php-sdk/basic-auth-environment-variables/phpunit.xml
 create mode 100644 seed/php-sdk/basic-auth-environment-variables/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/basic-auth-environment-variables/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/basic-auth/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/basic-auth/.gitignore
 create mode 100644 seed/php-sdk/basic-auth/Core/RawClient.php
 create mode 100644 seed/php-sdk/basic-auth/composer.json
 create mode 100644 seed/php-sdk/basic-auth/phpstan.neon
 create mode 100644 seed/php-sdk/basic-auth/phpunit.xml
 create mode 100644 seed/php-sdk/basic-auth/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/basic-auth/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/bearer-token-environment-variable/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/bearer-token-environment-variable/.gitignore
 create mode 100644 seed/php-sdk/bearer-token-environment-variable/Core/RawClient.php
 create mode 100644 seed/php-sdk/bearer-token-environment-variable/composer.json
 create mode 100644 seed/php-sdk/bearer-token-environment-variable/phpstan.neon
 create mode 100644 seed/php-sdk/bearer-token-environment-variable/phpunit.xml
 create mode 100644 seed/php-sdk/bearer-token-environment-variable/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/bearer-token-environment-variable/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/bytes/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/bytes/.gitignore
 create mode 100644 seed/php-sdk/bytes/Core/RawClient.php
 create mode 100644 seed/php-sdk/bytes/composer.json
 create mode 100644 seed/php-sdk/bytes/phpstan.neon
 create mode 100644 seed/php-sdk/bytes/phpunit.xml
 create mode 100644 seed/php-sdk/bytes/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/bytes/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/circular-references-advanced/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/circular-references-advanced/.gitignore
 create mode 100644 seed/php-sdk/circular-references-advanced/Core/RawClient.php
 create mode 100644 seed/php-sdk/circular-references-advanced/composer.json
 create mode 100644 seed/php-sdk/circular-references-advanced/phpstan.neon
 create mode 100644 seed/php-sdk/circular-references-advanced/phpunit.xml
 create mode 100644 seed/php-sdk/circular-references-advanced/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/circular-references-advanced/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/circular-references/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/circular-references/.gitignore
 create mode 100644 seed/php-sdk/circular-references/Core/RawClient.php
 create mode 100644 seed/php-sdk/circular-references/composer.json
 create mode 100644 seed/php-sdk/circular-references/phpstan.neon
 create mode 100644 seed/php-sdk/circular-references/phpunit.xml
 create mode 100644 seed/php-sdk/circular-references/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/circular-references/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/cross-package-type-names/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/cross-package-type-names/.gitignore
 create mode 100644 seed/php-sdk/cross-package-type-names/Core/RawClient.php
 create mode 100644 seed/php-sdk/cross-package-type-names/composer.json
 create mode 100644 seed/php-sdk/cross-package-type-names/phpstan.neon
 create mode 100644 seed/php-sdk/cross-package-type-names/phpunit.xml
 create mode 100644 seed/php-sdk/cross-package-type-names/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/cross-package-type-names/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/custom-auth/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/custom-auth/.gitignore
 create mode 100644 seed/php-sdk/custom-auth/Core/RawClient.php
 create mode 100644 seed/php-sdk/custom-auth/composer.json
 create mode 100644 seed/php-sdk/custom-auth/phpstan.neon
 create mode 100644 seed/php-sdk/custom-auth/phpunit.xml
 create mode 100644 seed/php-sdk/custom-auth/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/custom-auth/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/enum/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/enum/.gitignore
 create mode 100644 seed/php-sdk/enum/Core/RawClient.php
 create mode 100644 seed/php-sdk/enum/composer.json
 create mode 100644 seed/php-sdk/enum/phpstan.neon
 create mode 100644 seed/php-sdk/enum/phpunit.xml
 create mode 100644 seed/php-sdk/enum/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/enum/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/error-property/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/error-property/.gitignore
 create mode 100644 seed/php-sdk/error-property/Core/RawClient.php
 create mode 100644 seed/php-sdk/error-property/composer.json
 create mode 100644 seed/php-sdk/error-property/phpstan.neon
 create mode 100644 seed/php-sdk/error-property/phpunit.xml
 create mode 100644 seed/php-sdk/error-property/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/error-property/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/examples/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/examples/.gitignore
 create mode 100644 seed/php-sdk/examples/Core/RawClient.php
 create mode 100644 seed/php-sdk/examples/composer.json
 create mode 100644 seed/php-sdk/examples/phpstan.neon
 create mode 100644 seed/php-sdk/examples/phpunit.xml
 create mode 100644 seed/php-sdk/examples/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/examples/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/exhaustive/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/exhaustive/.gitignore
 create mode 100644 seed/php-sdk/exhaustive/Core/RawClient.php
 create mode 100644 seed/php-sdk/exhaustive/composer.json
 create mode 100644 seed/php-sdk/exhaustive/phpstan.neon
 create mode 100644 seed/php-sdk/exhaustive/phpunit.xml
 create mode 100644 seed/php-sdk/exhaustive/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/exhaustive/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/extends/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/extends/.gitignore
 create mode 100644 seed/php-sdk/extends/Core/RawClient.php
 create mode 100644 seed/php-sdk/extends/composer.json
 create mode 100644 seed/php-sdk/extends/phpstan.neon
 create mode 100644 seed/php-sdk/extends/phpunit.xml
 create mode 100644 seed/php-sdk/extends/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/extends/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/extra-properties/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/extra-properties/.gitignore
 create mode 100644 seed/php-sdk/extra-properties/Core/RawClient.php
 create mode 100644 seed/php-sdk/extra-properties/composer.json
 create mode 100644 seed/php-sdk/extra-properties/phpstan.neon
 create mode 100644 seed/php-sdk/extra-properties/phpunit.xml
 create mode 100644 seed/php-sdk/extra-properties/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/extra-properties/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/file-download/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/file-download/.gitignore
 create mode 100644 seed/php-sdk/file-download/Core/RawClient.php
 create mode 100644 seed/php-sdk/file-download/composer.json
 create mode 100644 seed/php-sdk/file-download/phpstan.neon
 create mode 100644 seed/php-sdk/file-download/phpunit.xml
 create mode 100644 seed/php-sdk/file-download/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/file-download/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/file-upload/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/file-upload/.gitignore
 create mode 100644 seed/php-sdk/file-upload/Core/RawClient.php
 create mode 100644 seed/php-sdk/file-upload/composer.json
 create mode 100644 seed/php-sdk/file-upload/phpstan.neon
 create mode 100644 seed/php-sdk/file-upload/phpunit.xml
 create mode 100644 seed/php-sdk/file-upload/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/file-upload/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/folders/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/folders/.gitignore
 create mode 100644 seed/php-sdk/folders/Core/RawClient.php
 create mode 100644 seed/php-sdk/folders/composer.json
 create mode 100644 seed/php-sdk/folders/phpstan.neon
 create mode 100644 seed/php-sdk/folders/phpunit.xml
 create mode 100644 seed/php-sdk/folders/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/folders/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/grpc-proto-exhaustive/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/grpc-proto-exhaustive/.gitignore
 create mode 100644 seed/php-sdk/grpc-proto-exhaustive/Core/RawClient.php
 create mode 100644 seed/php-sdk/grpc-proto-exhaustive/composer.json
 create mode 100644 seed/php-sdk/grpc-proto-exhaustive/phpstan.neon
 create mode 100644 seed/php-sdk/grpc-proto-exhaustive/phpunit.xml
 create mode 100644 seed/php-sdk/grpc-proto-exhaustive/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/grpc-proto-exhaustive/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/grpc-proto/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/grpc-proto/.gitignore
 create mode 100644 seed/php-sdk/grpc-proto/Core/RawClient.php
 create mode 100644 seed/php-sdk/grpc-proto/composer.json
 create mode 100644 seed/php-sdk/grpc-proto/phpstan.neon
 create mode 100644 seed/php-sdk/grpc-proto/phpunit.xml
 create mode 100644 seed/php-sdk/grpc-proto/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/grpc-proto/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/idempotency-headers/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/idempotency-headers/.gitignore
 create mode 100644 seed/php-sdk/idempotency-headers/Core/RawClient.php
 create mode 100644 seed/php-sdk/idempotency-headers/composer.json
 create mode 100644 seed/php-sdk/idempotency-headers/phpstan.neon
 create mode 100644 seed/php-sdk/idempotency-headers/phpunit.xml
 create mode 100644 seed/php-sdk/idempotency-headers/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/idempotency-headers/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/imdb/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/imdb/.gitignore
 create mode 100644 seed/php-sdk/imdb/Core/RawClient.php
 create mode 100644 seed/php-sdk/imdb/composer.json
 create mode 100644 seed/php-sdk/imdb/phpstan.neon
 create mode 100644 seed/php-sdk/imdb/phpunit.xml
 create mode 100644 seed/php-sdk/imdb/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/imdb/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/literal/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/literal/.gitignore
 create mode 100644 seed/php-sdk/literal/Core/RawClient.php
 create mode 100644 seed/php-sdk/literal/composer.json
 create mode 100644 seed/php-sdk/literal/phpstan.neon
 create mode 100644 seed/php-sdk/literal/phpunit.xml
 create mode 100644 seed/php-sdk/literal/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/literal/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/mixed-case/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/mixed-case/.gitignore
 create mode 100644 seed/php-sdk/mixed-case/Core/RawClient.php
 create mode 100644 seed/php-sdk/mixed-case/composer.json
 create mode 100644 seed/php-sdk/mixed-case/phpstan.neon
 create mode 100644 seed/php-sdk/mixed-case/phpunit.xml
 create mode 100644 seed/php-sdk/mixed-case/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/mixed-case/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/mixed-file-directory/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/mixed-file-directory/.gitignore
 create mode 100644 seed/php-sdk/mixed-file-directory/Core/RawClient.php
 create mode 100644 seed/php-sdk/mixed-file-directory/composer.json
 create mode 100644 seed/php-sdk/mixed-file-directory/phpstan.neon
 create mode 100644 seed/php-sdk/mixed-file-directory/phpunit.xml
 create mode 100644 seed/php-sdk/mixed-file-directory/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/mixed-file-directory/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/multi-line-docs/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/multi-line-docs/.gitignore
 create mode 100644 seed/php-sdk/multi-line-docs/Core/RawClient.php
 create mode 100644 seed/php-sdk/multi-line-docs/composer.json
 create mode 100644 seed/php-sdk/multi-line-docs/phpstan.neon
 create mode 100644 seed/php-sdk/multi-line-docs/phpunit.xml
 create mode 100644 seed/php-sdk/multi-line-docs/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/multi-line-docs/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/multi-url-environment-no-default/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/multi-url-environment-no-default/.gitignore
 create mode 100644 seed/php-sdk/multi-url-environment-no-default/Core/RawClient.php
 create mode 100644 seed/php-sdk/multi-url-environment-no-default/composer.json
 create mode 100644 seed/php-sdk/multi-url-environment-no-default/phpstan.neon
 create mode 100644 seed/php-sdk/multi-url-environment-no-default/phpunit.xml
 create mode 100644 seed/php-sdk/multi-url-environment-no-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/multi-url-environment-no-default/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/multi-url-environment/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/multi-url-environment/.gitignore
 create mode 100644 seed/php-sdk/multi-url-environment/Core/RawClient.php
 create mode 100644 seed/php-sdk/multi-url-environment/composer.json
 create mode 100644 seed/php-sdk/multi-url-environment/phpstan.neon
 create mode 100644 seed/php-sdk/multi-url-environment/phpunit.xml
 create mode 100644 seed/php-sdk/multi-url-environment/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/multi-url-environment/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/no-environment/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/no-environment/.gitignore
 create mode 100644 seed/php-sdk/no-environment/Core/RawClient.php
 create mode 100644 seed/php-sdk/no-environment/composer.json
 create mode 100644 seed/php-sdk/no-environment/phpstan.neon
 create mode 100644 seed/php-sdk/no-environment/phpunit.xml
 create mode 100644 seed/php-sdk/no-environment/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/no-environment/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-default/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/oauth-client-credentials-default/.gitignore
 create mode 100644 seed/php-sdk/oauth-client-credentials-default/Core/RawClient.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-default/composer.json
 create mode 100644 seed/php-sdk/oauth-client-credentials-default/phpstan.neon
 create mode 100644 seed/php-sdk/oauth-client-credentials-default/phpunit.xml
 create mode 100644 seed/php-sdk/oauth-client-credentials-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-default/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-environment-variables/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/oauth-client-credentials-environment-variables/.gitignore
 create mode 100644 seed/php-sdk/oauth-client-credentials-environment-variables/Core/RawClient.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-environment-variables/composer.json
 create mode 100644 seed/php-sdk/oauth-client-credentials-environment-variables/phpstan.neon
 create mode 100644 seed/php-sdk/oauth-client-credentials-environment-variables/phpunit.xml
 create mode 100644 seed/php-sdk/oauth-client-credentials-environment-variables/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-environment-variables/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-nested-root/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/oauth-client-credentials-nested-root/.gitignore
 create mode 100644 seed/php-sdk/oauth-client-credentials-nested-root/Core/RawClient.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-nested-root/composer.json
 create mode 100644 seed/php-sdk/oauth-client-credentials-nested-root/phpstan.neon
 create mode 100644 seed/php-sdk/oauth-client-credentials-nested-root/phpunit.xml
 create mode 100644 seed/php-sdk/oauth-client-credentials-nested-root/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/oauth-client-credentials-nested-root/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/oauth-client-credentials/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/oauth-client-credentials/.gitignore
 create mode 100644 seed/php-sdk/oauth-client-credentials/Core/RawClient.php
 create mode 100644 seed/php-sdk/oauth-client-credentials/composer.json
 create mode 100644 seed/php-sdk/oauth-client-credentials/phpstan.neon
 create mode 100644 seed/php-sdk/oauth-client-credentials/phpunit.xml
 create mode 100644 seed/php-sdk/oauth-client-credentials/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/oauth-client-credentials/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/object/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/object/.gitignore
 create mode 100644 seed/php-sdk/object/Core/RawClient.php
 create mode 100644 seed/php-sdk/object/composer.json
 create mode 100644 seed/php-sdk/object/phpstan.neon
 create mode 100644 seed/php-sdk/object/phpunit.xml
 create mode 100644 seed/php-sdk/object/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/object/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/objects-with-imports/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/objects-with-imports/.gitignore
 create mode 100644 seed/php-sdk/objects-with-imports/Core/RawClient.php
 create mode 100644 seed/php-sdk/objects-with-imports/composer.json
 create mode 100644 seed/php-sdk/objects-with-imports/phpstan.neon
 create mode 100644 seed/php-sdk/objects-with-imports/phpunit.xml
 create mode 100644 seed/php-sdk/objects-with-imports/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/objects-with-imports/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/optional/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/optional/.gitignore
 create mode 100644 seed/php-sdk/optional/Core/RawClient.php
 create mode 100644 seed/php-sdk/optional/composer.json
 create mode 100644 seed/php-sdk/optional/phpstan.neon
 create mode 100644 seed/php-sdk/optional/phpunit.xml
 create mode 100644 seed/php-sdk/optional/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/optional/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/package-yml/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/package-yml/.gitignore
 create mode 100644 seed/php-sdk/package-yml/Core/RawClient.php
 create mode 100644 seed/php-sdk/package-yml/composer.json
 create mode 100644 seed/php-sdk/package-yml/phpstan.neon
 create mode 100644 seed/php-sdk/package-yml/phpunit.xml
 create mode 100644 seed/php-sdk/package-yml/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/package-yml/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/pagination/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/pagination/.gitignore
 create mode 100644 seed/php-sdk/pagination/Core/RawClient.php
 create mode 100644 seed/php-sdk/pagination/composer.json
 create mode 100644 seed/php-sdk/pagination/phpstan.neon
 create mode 100644 seed/php-sdk/pagination/phpunit.xml
 create mode 100644 seed/php-sdk/pagination/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/pagination/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/plain-text/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/plain-text/.gitignore
 create mode 100644 seed/php-sdk/plain-text/Core/RawClient.php
 create mode 100644 seed/php-sdk/plain-text/composer.json
 create mode 100644 seed/php-sdk/plain-text/phpstan.neon
 create mode 100644 seed/php-sdk/plain-text/phpunit.xml
 create mode 100644 seed/php-sdk/plain-text/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/plain-text/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/query-parameters/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/query-parameters/.gitignore
 create mode 100644 seed/php-sdk/query-parameters/Core/RawClient.php
 create mode 100644 seed/php-sdk/query-parameters/composer.json
 create mode 100644 seed/php-sdk/query-parameters/phpstan.neon
 create mode 100644 seed/php-sdk/query-parameters/phpunit.xml
 create mode 100644 seed/php-sdk/query-parameters/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/query-parameters/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/reserved-keywords/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/reserved-keywords/.gitignore
 create mode 100644 seed/php-sdk/reserved-keywords/Core/RawClient.php
 create mode 100644 seed/php-sdk/reserved-keywords/composer.json
 create mode 100644 seed/php-sdk/reserved-keywords/phpstan.neon
 create mode 100644 seed/php-sdk/reserved-keywords/phpunit.xml
 create mode 100644 seed/php-sdk/reserved-keywords/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/reserved-keywords/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/response-property/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/response-property/.gitignore
 create mode 100644 seed/php-sdk/response-property/Core/RawClient.php
 create mode 100644 seed/php-sdk/response-property/composer.json
 create mode 100644 seed/php-sdk/response-property/phpstan.neon
 create mode 100644 seed/php-sdk/response-property/phpunit.xml
 create mode 100644 seed/php-sdk/response-property/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/response-property/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/simple-fhir/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/simple-fhir/.gitignore
 create mode 100644 seed/php-sdk/simple-fhir/Core/RawClient.php
 create mode 100644 seed/php-sdk/simple-fhir/composer.json
 create mode 100644 seed/php-sdk/simple-fhir/phpstan.neon
 create mode 100644 seed/php-sdk/simple-fhir/phpunit.xml
 create mode 100644 seed/php-sdk/simple-fhir/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/simple-fhir/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/single-url-environment-default/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/single-url-environment-default/.gitignore
 create mode 100644 seed/php-sdk/single-url-environment-default/Core/RawClient.php
 create mode 100644 seed/php-sdk/single-url-environment-default/composer.json
 create mode 100644 seed/php-sdk/single-url-environment-default/phpstan.neon
 create mode 100644 seed/php-sdk/single-url-environment-default/phpunit.xml
 create mode 100644 seed/php-sdk/single-url-environment-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/single-url-environment-default/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/single-url-environment-no-default/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/single-url-environment-no-default/.gitignore
 create mode 100644 seed/php-sdk/single-url-environment-no-default/Core/RawClient.php
 create mode 100644 seed/php-sdk/single-url-environment-no-default/composer.json
 create mode 100644 seed/php-sdk/single-url-environment-no-default/phpstan.neon
 create mode 100644 seed/php-sdk/single-url-environment-no-default/phpunit.xml
 create mode 100644 seed/php-sdk/single-url-environment-no-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/single-url-environment-no-default/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/streaming-parameter/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/streaming-parameter/.gitignore
 create mode 100644 seed/php-sdk/streaming-parameter/Core/RawClient.php
 create mode 100644 seed/php-sdk/streaming-parameter/composer.json
 create mode 100644 seed/php-sdk/streaming-parameter/phpstan.neon
 create mode 100644 seed/php-sdk/streaming-parameter/phpunit.xml
 create mode 100644 seed/php-sdk/streaming-parameter/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/streaming-parameter/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/streaming/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/streaming/.gitignore
 create mode 100644 seed/php-sdk/streaming/Core/RawClient.php
 create mode 100644 seed/php-sdk/streaming/composer.json
 create mode 100644 seed/php-sdk/streaming/phpstan.neon
 create mode 100644 seed/php-sdk/streaming/phpunit.xml
 create mode 100644 seed/php-sdk/streaming/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/streaming/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/trace/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/trace/.gitignore
 create mode 100644 seed/php-sdk/trace/Core/RawClient.php
 create mode 100644 seed/php-sdk/trace/composer.json
 create mode 100644 seed/php-sdk/trace/phpstan.neon
 create mode 100644 seed/php-sdk/trace/phpunit.xml
 create mode 100644 seed/php-sdk/trace/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/trace/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/undiscriminated-unions/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/undiscriminated-unions/.gitignore
 create mode 100644 seed/php-sdk/undiscriminated-unions/Core/RawClient.php
 create mode 100644 seed/php-sdk/undiscriminated-unions/composer.json
 create mode 100644 seed/php-sdk/undiscriminated-unions/phpstan.neon
 create mode 100644 seed/php-sdk/undiscriminated-unions/phpunit.xml
 create mode 100644 seed/php-sdk/undiscriminated-unions/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/undiscriminated-unions/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/unions/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/unions/.gitignore
 create mode 100644 seed/php-sdk/unions/Core/RawClient.php
 create mode 100644 seed/php-sdk/unions/composer.json
 create mode 100644 seed/php-sdk/unions/phpstan.neon
 create mode 100644 seed/php-sdk/unions/phpunit.xml
 create mode 100644 seed/php-sdk/unions/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/unions/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/unknown/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/unknown/.gitignore
 create mode 100644 seed/php-sdk/unknown/Core/RawClient.php
 create mode 100644 seed/php-sdk/unknown/composer.json
 create mode 100644 seed/php-sdk/unknown/phpstan.neon
 create mode 100644 seed/php-sdk/unknown/phpunit.xml
 create mode 100644 seed/php-sdk/unknown/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/unknown/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/validation/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/validation/.gitignore
 create mode 100644 seed/php-sdk/validation/Core/RawClient.php
 create mode 100644 seed/php-sdk/validation/composer.json
 create mode 100644 seed/php-sdk/validation/phpstan.neon
 create mode 100644 seed/php-sdk/validation/phpunit.xml
 create mode 100644 seed/php-sdk/validation/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/validation/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/variables/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/variables/.gitignore
 create mode 100644 seed/php-sdk/variables/Core/RawClient.php
 create mode 100644 seed/php-sdk/variables/composer.json
 create mode 100644 seed/php-sdk/variables/phpstan.neon
 create mode 100644 seed/php-sdk/variables/phpunit.xml
 create mode 100644 seed/php-sdk/variables/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/variables/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/version-no-default/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/version-no-default/.gitignore
 create mode 100644 seed/php-sdk/version-no-default/Core/RawClient.php
 create mode 100644 seed/php-sdk/version-no-default/composer.json
 create mode 100644 seed/php-sdk/version-no-default/phpstan.neon
 create mode 100644 seed/php-sdk/version-no-default/phpunit.xml
 create mode 100644 seed/php-sdk/version-no-default/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/version-no-default/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/version/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/version/.gitignore
 create mode 100644 seed/php-sdk/version/Core/RawClient.php
 create mode 100644 seed/php-sdk/version/composer.json
 create mode 100644 seed/php-sdk/version/phpstan.neon
 create mode 100644 seed/php-sdk/version/phpunit.xml
 create mode 100644 seed/php-sdk/version/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/version/tests/Core/RawClient.php
 create mode 100644 seed/php-sdk/websocket/.github/workflows/ci.yml
 create mode 100644 seed/php-sdk/websocket/.gitignore
 create mode 100644 seed/php-sdk/websocket/Core/RawClient.php
 create mode 100644 seed/php-sdk/websocket/composer.json
 create mode 100644 seed/php-sdk/websocket/phpstan.neon
 create mode 100644 seed/php-sdk/websocket/phpunit.xml
 create mode 100644 seed/php-sdk/websocket/src/Placeholder/Placeholder.php
 create mode 100644 seed/php-sdk/websocket/tests/Core/RawClient.php

diff --git a/generators/commons/src/AbstractGeneratorContext.ts b/generators/commons/src/AbstractGeneratorContext.ts
index 3065077f8ff..35a72e3e7b7 100644
--- a/generators/commons/src/AbstractGeneratorContext.ts
+++ b/generators/commons/src/AbstractGeneratorContext.ts
@@ -10,6 +10,7 @@ const LOG_LEVEL_CONVERSIONS: Record<LogLevel, FernGeneratorExec.logging.LogLevel
 
 export abstract class AbstractGeneratorContext {
     public readonly logger: Logger;
+    public readonly version: string | undefined;
 
     public constructor(
         public readonly config: FernGeneratorExec.config.GeneratorConfig,
@@ -30,5 +31,12 @@ export abstract class AbstractGeneratorContext {
                 console.warn("Encountered error when sending update", e);
             }
         });
+
+        this.version = config?.output?.mode?._visit({
+            downloadFiles: () => undefined,
+            github: (github) => github.version,
+            publish: (publish) => publish.version,
+            _other: () => undefined
+        });
     }
 }
diff --git a/generators/commons/src/project/AbstractProject.ts b/generators/commons/src/project/AbstractProject.ts
new file mode 100644
index 00000000000..1744ee9fdf9
--- /dev/null
+++ b/generators/commons/src/project/AbstractProject.ts
@@ -0,0 +1,25 @@
+import { AbstractGeneratorContext } from "../AbstractGeneratorContext";
+import { AbsoluteFilePath } from "@fern-api/fs-utils";
+import { File } from "./File";
+
+export abstract class AbstractProject<GeneratorContext extends AbstractGeneratorContext> {
+    public readonly absolutePathToOutputDirectory: AbsoluteFilePath;
+    public readonly rawFiles: File[] = [];
+
+    public constructor(public readonly context: GeneratorContext) {
+        this.absolutePathToOutputDirectory = AbsoluteFilePath.of(this.context.config.output.path);
+    }
+
+    public addRawFiles(file: File): void {
+        this.rawFiles.push(file);
+    }
+
+    public async writeRawFiles(): Promise<void> {
+        await Promise.all(this.rawFiles.map(async (file) => await file.write(this.absolutePathToOutputDirectory)));
+    }
+
+    /**
+     * Persists the project by writing it to disk.
+     */
+    protected abstract persist(): Promise<void>;
+}
diff --git a/generators/commons/src/project/index.ts b/generators/commons/src/project/index.ts
index 514abf1af6b..26d0e4fc253 100644
--- a/generators/commons/src/project/index.ts
+++ b/generators/commons/src/project/index.ts
@@ -1 +1,2 @@
+export { AbstractProject } from "./AbstractProject";
 export { File } from "./File";
diff --git a/generators/csharp/codegen/src/context/AbstractCsharpGeneratorContext.ts b/generators/csharp/codegen/src/context/AbstractCsharpGeneratorContext.ts
index 296ff5450c4..3978d47bff2 100644
--- a/generators/csharp/codegen/src/context/AbstractCsharpGeneratorContext.ts
+++ b/generators/csharp/codegen/src/context/AbstractCsharpGeneratorContext.ts
@@ -53,7 +53,10 @@ export abstract class AbstractCsharpGeneratorContext<
         this.namespace =
             this.customConfig.namespace ??
             upperFirst(camelCase(`${this.config.organization}_${this.ir.apiName.pascalCase.unsafeName}`));
-        this.project = new CsharpProject(this, this.namespace);
+        this.project = new CsharpProject({
+            context: this,
+            name: this.namespace
+        });
         this.csharpTypeMapper = new CsharpTypeMapper(this);
         this.csharpProtobufTypeMapper = new CsharpProtobufTypeMapper(this);
         this.protobufResolver = new ProtobufResolver(this, this.csharpTypeMapper);
@@ -100,15 +103,6 @@ export abstract class AbstractCsharpGeneratorContext<
         return `${this.getTestNamespace()}.Unit.MockServer`;
     }
 
-    public getVersion(): string | undefined {
-        return this.config.output?.mode._visit({
-            downloadFiles: () => undefined,
-            github: (github) => github.version,
-            publish: (publish) => publish.version,
-            _other: () => undefined
-        });
-    }
-
     public hasGrpcEndpoints(): boolean {
         // TODO: Replace this with the this.ir.sdkConfig.hasGrpcEndpoints property (when available).
         return Object.values(this.ir.services).some((service) => service.transport?.type === "grpc");
diff --git a/generators/csharp/codegen/src/project/CsharpProject.ts b/generators/csharp/codegen/src/project/CsharpProject.ts
index 0a7f064dfc6..519923534c3 100644
--- a/generators/csharp/codegen/src/project/CsharpProject.ts
+++ b/generators/csharp/codegen/src/project/CsharpProject.ts
@@ -1,5 +1,5 @@
 import { AbsoluteFilePath, join, RelativeFilePath } from "@fern-api/fs-utils";
-import { SourceFetcher, File } from "@fern-api/generator-commons";
+import { SourceFetcher, File, AbstractProject } from "@fern-api/generator-commons";
 import { loggingExeca } from "@fern-api/logging-execa";
 import { mkdir, readFile, writeFile } from "fs/promises";
 import { template } from "lodash-es";
@@ -19,8 +19,8 @@ export const PUBLIC_CORE_DIRECTORY_NAME = "Public";
 /**
  * In memory representation of a C# project.
  */
-export class CsharpProject {
-    private rawFiles: File[] = [];
+export class CsharpProject extends AbstractProject<AbstractCsharpGeneratorContext<BaseCsharpCustomConfigSchema>> {
+    private name: string;
     private sourceFiles: CSharpFile[] = [];
     private testFiles: CSharpFile[] = [];
     private coreFiles: File[] = [];
@@ -28,15 +28,18 @@ export class CsharpProject {
     private publicCoreFiles: File[] = [];
     private publicCoreTestFiles: File[] = [];
     private testUtilFiles: File[] = [];
-    private absolutePathToOutputDirectory: AbsoluteFilePath;
     private sourceFetcher: SourceFetcher;
     public readonly filepaths: CsharpProjectFilepaths;
 
-    public constructor(
-        private readonly context: AbstractCsharpGeneratorContext<BaseCsharpCustomConfigSchema>,
-        private readonly name: string
-    ) {
-        this.absolutePathToOutputDirectory = AbsoluteFilePath.of(this.context.config.output.path);
+    public constructor({
+        context,
+        name
+    }: {
+        context: AbstractCsharpGeneratorContext<BaseCsharpCustomConfigSchema>;
+        name: string;
+    }) {
+        super(context);
+        this.name = name;
         this.filepaths = new CsharpProjectFilepaths(name);
         this.sourceFetcher = new SourceFetcher({
             context: this.context,
@@ -48,10 +51,6 @@ export class CsharpProject {
         return this.filepaths.getProjectDirectory();
     }
 
-    public addRawFiles(file: File): void {
-        this.rawFiles.push(file);
-    }
-
     public addCoreFiles(file: File): void {
         this.coreFiles.push(file);
     }
@@ -92,9 +91,7 @@ export class CsharpProject {
             cwd: this.absolutePathToOutputDirectory
         });
 
-        for (const file of this.rawFiles) {
-            await file.write(this.absolutePathToOutputDirectory);
-        }
+        await this.writeRawFiles();
 
         for (const file of this.sourceFiles) {
             await file.write(absolutePathToProjectDirectory);
@@ -192,7 +189,6 @@ export class CsharpProject {
         const protobufSourceFilePaths = await this.sourceFetcher.copyProtobufSources(absolutePathToProtoDirectory);
 
         const csproj = new CsProj({
-            version: this.context.getVersion(),
             license: this.context.config.license?._visit({
                 custom: (val) => {
                     return val.filename;
@@ -452,15 +448,13 @@ declare namespace CsProj {
 const FOUR_SPACES = "    ";
 
 class CsProj {
-    private version: string | undefined;
     private license: string | undefined;
     private githubUrl: string | undefined;
     private packageId: string | undefined;
     private context: AbstractCsharpGeneratorContext<BaseCsharpCustomConfigSchema>;
     private protobufSourceFilePaths: RelativeFilePath[];
 
-    public constructor({ version, license, githubUrl, context, protobufSourceFilePaths }: CsProj.Args) {
-        this.version = version;
+    public constructor({ license, githubUrl, context, protobufSourceFilePaths }: CsProj.Args) {
         this.license = license;
         this.githubUrl = githubUrl;
         this.context = context;
@@ -585,8 +579,8 @@ ${this.getAdditionalItemGroups().join(`\n${FOUR_SPACES}`)}
 
     private getPropertyGroups(): string[] {
         const result: string[] = [];
-        if (this.version != null) {
-            result.push(`<Version>${this.version}</Version>`);
+        if (this.context.version != null) {
+            result.push(`<Version>${this.context.version}</Version>`);
         }
 
         result.push("<PackageReadmeFile>README.md</PackageReadmeFile>");
diff --git a/generators/csharp/model/src/version/VersionGenerator.ts b/generators/csharp/model/src/version/VersionGenerator.ts
index d1e7495e536..e57a4e166e4 100644
--- a/generators/csharp/model/src/version/VersionGenerator.ts
+++ b/generators/csharp/model/src/version/VersionGenerator.ts
@@ -26,7 +26,7 @@ export class VersionGenerator extends FileGenerator<CSharpFile, ModelCustomConfi
                 type: csharp.Type.string(),
                 access: "public",
                 const_: true,
-                initializer: csharp.codeblock(`"${this.context.getVersion() ?? DEFAULT_VERSION}"`)
+                initializer: csharp.codeblock(`"${this.context.version ?? DEFAULT_VERSION}"`)
             })
         );
 
diff --git a/generators/php/codegen/package.json b/generators/php/codegen/package.json
index 56579a518b6..3095c2938d2 100644
--- a/generators/php/codegen/package.json
+++ b/generators/php/codegen/package.json
@@ -26,9 +26,19 @@
     "organize-imports": "organize-imports-cli tsconfig.json",
     "depcheck": "depcheck"
   },
+  "dependencies": {
+    "@fern-api/fs-utils": "workspace:*",
+    "@fern-api/generator-commons": "workspace:*",
+    "@fern-api/logging-execa": "workspace:*",
+    "@fern-fern/ir-sdk": "^53.7.0",
+    "lodash-es": "^4.17.21",
+    "zod": "^3.22.3"
+  },
   "devDependencies": {
     "@fern-api/fs-utils": "workspace:*",
     "@fern-api/generator-commons": "workspace:*",
+    "@fern-api/logging-execa": "workspace:*",
+    "@types/lodash-es": "^4.17.12",
     "@fern-fern/ir-sdk": "^53.7.0",
     "zod": "^3.22.3",
     "@types/jest": "^29.5.12",
diff --git a/generators/php/codegen/src/AsIs.ts b/generators/php/codegen/src/AsIs.ts
index 940433f605c..2edf55bdb8a 100644
--- a/generators/php/codegen/src/AsIs.ts
+++ b/generators/php/codegen/src/AsIs.ts
@@ -1 +1,8 @@
-export enum AsIsFiles {}
+export enum AsIsFiles {
+    GitIgnore = ".gitignore",
+    GithubCiYml = "github-ci.yml",
+    PhpStanNeon = "phpstan.neon",
+    PhpUnitXml = "phpunit.xml",
+    RawClient = "RawClient.Template.php",
+    RawClientTest = "RawClientTest.Template.php"
+}
diff --git a/generators/php/codegen/src/FileGenerator.ts b/generators/php/codegen/src/FileGenerator.ts
index aa2098505ca..50c5446ce7f 100644
--- a/generators/php/codegen/src/FileGenerator.ts
+++ b/generators/php/codegen/src/FileGenerator.ts
@@ -1,7 +1,7 @@
 import { RelativeFilePath } from "@fern-api/fs-utils";
 import { AbstractPhpGeneratorContext } from "./context/AbstractPhpGeneratorContext";
 import { BasePhpCustomConfigSchema } from "./custom-config/BasePhpCustomConfigSchema";
-import { File } from "./project/File";
+import { File } from "@fern-api/generator-commons";
 
 export abstract class FileGenerator<
     GeneratedFile extends File,
diff --git a/generators/php/codegen/src/asIs/.gitignore b/generators/php/codegen/src/asIs/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/generators/php/codegen/src/asIs/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/generators/php/codegen/src/asIs/RawClient.Template.php b/generators/php/codegen/src/asIs/RawClient.Template.php
new file mode 100644
index 00000000000..8d62ba2c89e
--- /dev/null
+++ b/generators/php/codegen/src/asIs/RawClient.Template.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace <%= namespace%>;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
\ No newline at end of file
diff --git a/generators/php/codegen/src/asIs/RawClientTest.Template.php b/generators/php/codegen/src/asIs/RawClientTest.Template.php
new file mode 100644
index 00000000000..5e40efae81b
--- /dev/null
+++ b/generators/php/codegen/src/asIs/RawClientTest.Template.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace <%= namespace%>;
+
+use PHPUnit\Framework\TestCase;
+
+class RawClientTest extends TestCase
+{
+    public function testRawClient()
+    {
+        $this->assertTrue(true);
+    }
+}
\ No newline at end of file
diff --git a/generators/php/codegen/src/asIs/github-ci.yml b/generators/php/codegen/src/asIs/github-ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/generators/php/codegen/src/asIs/github-ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/generators/php/codegen/src/asIs/phpstan.neon b/generators/php/codegen/src/asIs/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/generators/php/codegen/src/asIs/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/generators/php/codegen/src/asIs/phpunit.xml b/generators/php/codegen/src/asIs/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/generators/php/codegen/src/asIs/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/generators/php/codegen/src/cli/AbstractPhpGeneratorCli.ts b/generators/php/codegen/src/cli/AbstractPhpGeneratorCli.ts
index bdbdf38818b..e8487ab987e 100644
--- a/generators/php/codegen/src/cli/AbstractPhpGeneratorCli.ts
+++ b/generators/php/codegen/src/cli/AbstractPhpGeneratorCli.ts
@@ -10,7 +10,7 @@ export abstract class AbstractPhpGeneratorCli<
     CsharpGeneratorContext extends AbstractPhpGeneratorContext<CustomConfig>
 > extends AbstractGeneratorCli<CustomConfig, IntermediateRepresentation, CsharpGeneratorContext> {
     /**
-     * Parses the IR for the Csharp generators
+     * Parses the IR for the PHP generators
      * @param irFilepath
      * @returns
      */
diff --git a/generators/php/codegen/src/context/AbstractPhpGeneratorContext.ts b/generators/php/codegen/src/context/AbstractPhpGeneratorContext.ts
index 5d8f1860456..8f095c031e5 100644
--- a/generators/php/codegen/src/context/AbstractPhpGeneratorContext.ts
+++ b/generators/php/codegen/src/context/AbstractPhpGeneratorContext.ts
@@ -1,10 +1,15 @@
 import { AbstractGeneratorContext, FernGeneratorExec, GeneratorNotificationService } from "@fern-api/generator-commons";
 import { IntermediateRepresentation } from "@fern-fern/ir-sdk/api";
 import { BasePhpCustomConfigSchema } from "../custom-config/BasePhpCustomConfigSchema";
+import { PhpProject } from "../project";
+import { camelCase, upperFirst } from "lodash-es";
 
 export abstract class AbstractPhpGeneratorContext<
     CustomConfig extends BasePhpCustomConfigSchema
 > extends AbstractGeneratorContext {
+    private namespace: string;
+    public readonly project: PhpProject;
+
     public constructor(
         public readonly ir: IntermediateRepresentation,
         public readonly config: FernGeneratorExec.config.GeneratorConfig,
@@ -12,5 +17,32 @@ export abstract class AbstractPhpGeneratorContext<
         public readonly generatorNotificationService: GeneratorNotificationService
     ) {
         super(config, generatorNotificationService);
+        this.namespace = this.customConfig.namespace ?? upperFirst(camelCase(`${this.config.organization}`));
+        this.project = new PhpProject({
+            context: this,
+            name: this.namespace
+        });
+    }
+
+    public getNamespace(): string {
+        return this.namespace;
+    }
+
+    public getTestsNamespace(): string {
+        return `${this.namespace}\\Tests`;
+    }
+
+    public getCoreNamespace(): string {
+        return `${this.namespace}\\Core`;
+    }
+
+    public getCoreTestsNamespace(): string {
+        return `${this.namespace}\\Core\\Tests`;
     }
+
+    public abstract getRawAsIsFiles(): string[];
+
+    public abstract getCoreAsIsFiles(): string[];
+
+    public abstract getCoreTestAsIsFiles(): string[];
 }
diff --git a/generators/php/codegen/src/custom-config/BasePhpCustomConfigSchema.ts b/generators/php/codegen/src/custom-config/BasePhpCustomConfigSchema.ts
index b6633f68b98..274ad289c28 100644
--- a/generators/php/codegen/src/custom-config/BasePhpCustomConfigSchema.ts
+++ b/generators/php/codegen/src/custom-config/BasePhpCustomConfigSchema.ts
@@ -1,5 +1,7 @@
 import { z } from "zod";
 
-export const BasePhpCustomConfigSchema = z.object({});
+export const BasePhpCustomConfigSchema = z.object({
+    namespace: z.string().optional()
+});
 
 export type BasePhpCustomConfigSchema = z.infer<typeof BasePhpCustomConfigSchema>;
diff --git a/generators/php/codegen/src/index.ts b/generators/php/codegen/src/index.ts
index 7d4ea5c186a..e7875f13954 100644
--- a/generators/php/codegen/src/index.ts
+++ b/generators/php/codegen/src/index.ts
@@ -2,4 +2,5 @@ export * from "./AsIs";
 export { AbstractPhpGeneratorContext } from "./context/AbstractPhpGeneratorContext";
 export { AbstractPhpGeneratorCli } from "./cli/AbstractPhpGeneratorCli";
 export { BasePhpCustomConfigSchema } from "./custom-config/BasePhpCustomConfigSchema";
+export { PhpFile } from "./project/PhpFile";
 export * as php from "./php";
diff --git a/generators/php/codegen/src/project/File.ts b/generators/php/codegen/src/project/File.ts
deleted file mode 100644
index a0931e2e6ad..00000000000
--- a/generators/php/codegen/src/project/File.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { AbsoluteFilePath, join, RelativeFilePath } from "@fern-api/fs-utils";
-import { mkdir, writeFile } from "fs/promises";
-
-export class File {
-    public filename: string;
-    public directory: RelativeFilePath;
-    public fileContents: string | Buffer;
-
-    constructor(filename: string, directory: RelativeFilePath, fileContents: string | Buffer) {
-        this.filename = filename;
-        this.directory = directory;
-        this.fileContents = fileContents;
-    }
-
-    public async write(directoryPrefix: AbsoluteFilePath): Promise<void> {
-        const outputDirectory = join(directoryPrefix, this.directory);
-        await mkdir(outputDirectory, { recursive: true });
-        await writeFile(`${outputDirectory}/${this.filename}`, this.fileContents);
-    }
-}
diff --git a/generators/php/codegen/src/project/PhpFile.ts b/generators/php/codegen/src/project/PhpFile.ts
new file mode 100644
index 00000000000..2372c14a5a3
--- /dev/null
+++ b/generators/php/codegen/src/project/PhpFile.ts
@@ -0,0 +1,45 @@
+import { AbsoluteFilePath, RelativeFilePath } from "@fern-api/fs-utils";
+import { FernFilepath } from "@fern-fern/ir-sdk/api";
+import path from "path";
+import { BasePhpCustomConfigSchema } from "../custom-config/BasePhpCustomConfigSchema";
+import { File } from "@fern-api/generator-commons";
+
+export type Namespace = string;
+
+export declare namespace PhpFile {
+    interface Args {
+        /* The root namespace of the project. Can be pulled directly from context. */
+        namespace: string;
+        /* Custom generator config */
+        customConfig: BasePhpCustomConfigSchema;
+    }
+}
+
+export class PhpFile extends File {
+    constructor({ namespace, customConfig }: PhpFile.Args) {
+        super(
+            "Placeholder.php",
+            RelativeFilePath.of("Placeholder"),
+            `<?php
+
+namespace ${namespace}\\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
+`
+        );
+    }
+
+    public async tryWrite(directoryPrefix: AbsoluteFilePath): Promise<void> {
+        await this.write(directoryPrefix);
+    }
+
+    public static getFilePathFromFernFilePath(fernFilePath: FernFilepath): RelativeFilePath {
+        return RelativeFilePath.of(path.join(...fernFilePath.allParts.map((part) => part.pascalCase.safeName)));
+    }
+}
diff --git a/generators/php/codegen/src/project/PhpProject.ts b/generators/php/codegen/src/project/PhpProject.ts
new file mode 100644
index 00000000000..d9a05affc13
--- /dev/null
+++ b/generators/php/codegen/src/project/PhpProject.ts
@@ -0,0 +1,277 @@
+import { AbsoluteFilePath, join, RelativeFilePath } from "@fern-api/fs-utils";
+import { AbstractProject, File } from "@fern-api/generator-commons";
+import { loggingExeca } from "@fern-api/logging-execa";
+import { mkdir, readFile, writeFile } from "fs/promises";
+import { template } from "lodash-es";
+import path from "path";
+import { AsIsFiles } from "../AsIs";
+import { AbstractPhpGeneratorContext } from "../context/AbstractPhpGeneratorContext";
+import { BasePhpCustomConfigSchema } from "../custom-config/BasePhpCustomConfigSchema";
+import { PhpFile } from "./PhpFile";
+
+const AS_IS_DIRECTORY = path.join(__dirname, "asIs");
+const CORE_DIRECTORY_NAME = "Core";
+const SRC_DIRECTORY_NAME = "src";
+const TESTS_DIRECTORY_NAME = "tests";
+
+const COMPOSER_JSON_FILENAME = "composer.json";
+
+/**
+ * In memory representation of a PHP project.
+ */
+export class PhpProject extends AbstractProject<AbstractPhpGeneratorContext<BasePhpCustomConfigSchema>> {
+    private name: string;
+    private sourceFiles: PhpFile[] = [];
+    private testFiles: PhpFile[] = [];
+    private coreFiles: File[] = [];
+    private coreTestFiles: File[] = [];
+    public readonly filepaths: PhpProjectFilepaths;
+
+    public constructor({
+        context,
+        name
+    }: {
+        context: AbstractPhpGeneratorContext<BasePhpCustomConfigSchema>;
+        name: string;
+    }) {
+        super(context);
+        this.name = name;
+        this.filepaths = new PhpProjectFilepaths();
+    }
+
+    public addSourceFiles(file: PhpFile): void {
+        this.sourceFiles.push(file);
+    }
+
+    public addTestFiles(file: PhpFile): void {
+        this.testFiles.push(file);
+    }
+
+    public addCoreFiles(file: File): void {
+        this.coreFiles.push(file);
+    }
+
+    public async persist(): Promise<void> {
+        await this.createRawFiles();
+        await this.createSourceDirectory();
+        await this.createTestsDirectory();
+        await this.createCoreDirectory();
+        await this.createCoreTestsDirectory();
+        await this.createGitHubWorkflowsDirectory();
+        await this.createComposerJson();
+    }
+
+    private async createComposerJson(): Promise<void> {
+        const composerJson = new ComposerJson({
+            projectName: this.name,
+            license: this.context.config.license?._visit({
+                basic: (val) => {
+                    return val.id;
+                },
+                custom: () => undefined, // composer doesn't support custom license filepaths.
+                _other: () => undefined
+            }),
+            context: this.context
+        });
+        const composerJsonContent = composerJson.toString();
+        await writeFile(
+            join(this.absolutePathToOutputDirectory, RelativeFilePath.of(COMPOSER_JSON_FILENAME)),
+            composerJsonContent
+        );
+    }
+
+    private async createRawFiles(): Promise<void> {
+        for (const filename of this.context.getRawAsIsFiles()) {
+            this.addRawFiles(await this.createRawAsIsFile({ filename }));
+        }
+        await this.writeRawFiles();
+    }
+
+    private async createRawAsIsFile({ filename }: { filename: string }): Promise<File> {
+        const contents = (await readFile(getAsIsFilepath(filename))).toString();
+        return new File(filename, RelativeFilePath.of(""), contents);
+    }
+
+    private async createAsIsFile({ filename, namespace }: { filename: string; namespace: string }): Promise<File> {
+        const contents = (await readFile(getAsIsFilepath(filename))).toString();
+        return new File(
+            filename.replace(".Template", ""),
+            RelativeFilePath.of(""),
+            replaceTemplate({
+                contents,
+                namespace
+            })
+        );
+    }
+
+    private async createGitHubWorkflowsDirectory(): Promise<void> {
+        const githubWorkflowTemplate = (await readFile(getAsIsFilepath(AsIsFiles.GithubCiYml))).toString();
+        const githubWorkflow = template(githubWorkflowTemplate)(/* TODO: Add publish job */).replaceAll("\\{", "{");
+        const githubWorkflowsDirectoryPath = join(
+            this.absolutePathToOutputDirectory,
+            RelativeFilePath.of(".github/workflows")
+        );
+        await this.mkdir(githubWorkflowsDirectoryPath);
+        await writeFile(join(githubWorkflowsDirectoryPath, RelativeFilePath.of("ci.yml")), githubWorkflow);
+    }
+
+    private async createSourceDirectory(): Promise<AbsoluteFilePath> {
+        return await this.createPhpDirectory({
+            absolutePathToDirectory: join(this.absolutePathToOutputDirectory, this.filepaths.getSourceDirectory()),
+            files: this.sourceFiles
+        });
+    }
+
+    private async createTestsDirectory(): Promise<AbsoluteFilePath> {
+        return await this.createPhpDirectory({
+            absolutePathToDirectory: join(this.absolutePathToOutputDirectory, this.filepaths.getTestsDirectory()),
+            files: this.testFiles
+        });
+    }
+
+    private async createCoreDirectory(): Promise<AbsoluteFilePath> {
+        for (const filename of this.context.getCoreAsIsFiles()) {
+            this.coreFiles.push(
+                await this.createAsIsFile({
+                    filename,
+                    namespace: this.context.getCoreNamespace()
+                })
+            );
+        }
+        return await this.createPhpDirectory({
+            absolutePathToDirectory: join(this.absolutePathToOutputDirectory, this.filepaths.getCoreDirectory()),
+            files: this.coreFiles
+        });
+    }
+
+    private async createCoreTestsDirectory(): Promise<AbsoluteFilePath> {
+        for (const filename of this.context.getCoreTestAsIsFiles()) {
+            this.coreTestFiles.push(
+                await this.createAsIsFile({
+                    filename,
+                    namespace: this.context.getCoreTestsNamespace()
+                })
+            );
+        }
+        return await this.createPhpDirectory({
+            absolutePathToDirectory: join(this.absolutePathToOutputDirectory, this.filepaths.getCoreTestsDirectory()),
+            files: this.coreFiles
+        });
+    }
+
+    private async createPhpDirectory({
+        absolutePathToDirectory,
+        files
+    }: {
+        absolutePathToDirectory: AbsoluteFilePath;
+        files: File[];
+    }): Promise<AbsoluteFilePath> {
+        await this.mkdir(absolutePathToDirectory);
+        await Promise.all(files.map(async (file) => await file.write(this.absolutePathToOutputDirectory)));
+        if (files.length > 0) {
+            await loggingExeca(this.context.logger, "php-cs-fixer", ["fix", "."], {
+                doNotPipeOutput: true,
+                cwd: absolutePathToDirectory
+            });
+        }
+        return absolutePathToDirectory;
+    }
+
+    private async mkdir(absolutePathToDirectory: AbsoluteFilePath): Promise<void> {
+        this.context.logger.debug(`mkdir ${absolutePathToDirectory}`);
+        await mkdir(absolutePathToDirectory, { recursive: true });
+    }
+}
+
+class PhpProjectFilepaths {
+    public getSourceDirectory(): RelativeFilePath {
+        return RelativeFilePath.of(SRC_DIRECTORY_NAME);
+    }
+
+    public getTestsDirectory(): RelativeFilePath {
+        return RelativeFilePath.of(TESTS_DIRECTORY_NAME);
+    }
+
+    public getCoreDirectory(): RelativeFilePath {
+        return RelativeFilePath.of(CORE_DIRECTORY_NAME);
+    }
+
+    public getCoreTestsDirectory(): RelativeFilePath {
+        return join(this.getTestsDirectory(), this.getCoreDirectory());
+    }
+}
+
+declare namespace ComposerJson {
+    interface Args {
+        context: AbstractPhpGeneratorContext<BasePhpCustomConfigSchema>;
+        projectName: string;
+        license?: string;
+    }
+}
+
+class ComposerJson {
+    private context: AbstractPhpGeneratorContext<BasePhpCustomConfigSchema>;
+    private projectName: string;
+    private license: string | undefined;
+
+    public constructor({ context, projectName, license }: ComposerJson.Args) {
+        this.context = context;
+        this.projectName = projectName;
+        this.license = license;
+    }
+
+    public toString(): string {
+        const composerProjectName = `${this.context.config.organization}/${this.context.config.organization}`;
+        return `
+{
+  "name": "${composerProjectName}",
+  "version": ${this.context.version != null ? `"${this.context.version}"` : "0.0.0"},
+  "description": "${this.projectName} PHP Library",
+  "keywords": [
+    "${this.context.config.organization}",
+    "api",
+    "sdk"
+  ],
+  "license": ${this.license != null ? `[\n    "${this.license}"\n  ]` : "[]"},
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "${this.projectName}\\\\": "${SRC_DIRECTORY_NAME}/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\\\${this.projectName}\\\\Tests\\\\": "${TESTS_DIRECTORY_NAME}/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l ${SRC_DIRECTORY_NAME}",
+      "@php -l ${TESTS_DIRECTORY_NAME}"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
+`;
+    }
+}
+
+function replaceTemplate({ contents, namespace }: { contents: string; namespace: string }): string {
+    return template(contents)({
+        namespace
+    });
+}
+
+function getAsIsFilepath(filename: string): string {
+    return AbsoluteFilePath.of(path.join(AS_IS_DIRECTORY, filename));
+}
diff --git a/generators/php/codegen/src/project/index.ts b/generators/php/codegen/src/project/index.ts
new file mode 100644
index 00000000000..cdc7550b1a8
--- /dev/null
+++ b/generators/php/codegen/src/project/index.ts
@@ -0,0 +1,2 @@
+export { PhpFile } from "./PhpFile";
+export { PhpProject } from "./PhpProject";
diff --git a/generators/php/model/Dockerfile b/generators/php/model/Dockerfile
index 693bc65c590..6d497126ebd 100644
--- a/generators/php/model/Dockerfile
+++ b/generators/php/model/Dockerfile
@@ -3,8 +3,8 @@ FROM composer:2.7.9
 
 RUN apk --no-cache add bash curl git zip && git config --global user.name "fern" && git config --global user.email "hey@buildwithfern.com"
 
-RUN composer global require friendsofphp/php-cs-fixer
-ENV PATH="$PATH:/root/.composer/vendor/bin"
+RUN curl -L https://cs.symfony.com/download/php-cs-fixer-v3.phar -o /usr/local/bin/php-cs-fixer \
+    && chmod +x /usr/local/bin/php-cs-fixer
 ENV YARN_CACHE_FOLDER=/.yarn
 
 COPY generators/php/model/dist /dist
diff --git a/generators/php/model/src/ModelCustomConfig.ts b/generators/php/model/src/ModelCustomConfig.ts
index 272109517da..4bd5ec8a21d 100644
--- a/generators/php/model/src/ModelCustomConfig.ts
+++ b/generators/php/model/src/ModelCustomConfig.ts
@@ -1,5 +1,7 @@
 import { z } from "zod";
 
-export const ModelCustomConfigSchema = z.object({});
+export const ModelCustomConfigSchema = z.strictObject({
+    namespace: z.string().optional()
+});
 
 export type ModelCustomConfigSchema = z.infer<typeof ModelCustomConfigSchema>;
diff --git a/generators/php/model/src/ModelGeneratorCli.ts b/generators/php/model/src/ModelGeneratorCli.ts
index b2207730670..068f89d5291 100644
--- a/generators/php/model/src/ModelGeneratorCli.ts
+++ b/generators/php/model/src/ModelGeneratorCli.ts
@@ -3,6 +3,7 @@ import { AbstractPhpGeneratorCli } from "@fern-api/php-codegen";
 import { IntermediateRepresentation } from "@fern-fern/ir-sdk/api";
 import { ModelCustomConfigSchema } from "./ModelCustomConfig";
 import { ModelGeneratorContext } from "./ModelGeneratorContext";
+import { generateModels } from "./generateModels";
 
 export class ModelGeneratorCLI extends AbstractPhpGeneratorCli<ModelCustomConfigSchema, ModelGeneratorContext> {
     protected constructContext({
@@ -19,19 +20,27 @@ export class ModelGeneratorCLI extends AbstractPhpGeneratorCli<ModelCustomConfig
         return new ModelGeneratorContext(ir, generatorConfig, customConfig, generatorNotificationService);
     }
 
-    protected async parseCustomConfigOrThrow(customConfig: unknown): Promise<void> {
-        return undefined;
+    protected parseCustomConfigOrThrow(customConfig: unknown): ModelCustomConfigSchema {
+        return {};
     }
 
     protected async publishPackage(context: ModelGeneratorContext): Promise<void> {
-        return undefined;
+        throw new Error("Method not implemented.");
     }
 
     protected async writeForGithub(context: ModelGeneratorContext): Promise<void> {
-        return undefined;
+        await this.generate(context);
     }
 
     protected async writeForDownload(context: ModelGeneratorContext): Promise<void> {
-        return undefined;
+        await this.generate(context);
+    }
+
+    protected async generate(context: ModelGeneratorContext): Promise<void> {
+        const generatedTypes = generateModels({ context });
+        for (const file of generatedTypes) {
+            context.project.addSourceFiles(file);
+        }
+        await context.project.persist();
     }
 }
diff --git a/generators/php/model/src/ModelGeneratorContext.ts b/generators/php/model/src/ModelGeneratorContext.ts
index ffb1839174e..25046564a2e 100644
--- a/generators/php/model/src/ModelGeneratorContext.ts
+++ b/generators/php/model/src/ModelGeneratorContext.ts
@@ -1,4 +1,16 @@
-import { AbstractPhpGeneratorContext } from "@fern-api/php-codegen";
+import { AbstractPhpGeneratorContext, AsIsFiles } from "@fern-api/php-codegen";
 import { ModelCustomConfigSchema } from "./ModelCustomConfig";
 
-export class ModelGeneratorContext extends AbstractPhpGeneratorContext<ModelCustomConfigSchema> {}
+export class ModelGeneratorContext extends AbstractPhpGeneratorContext<ModelCustomConfigSchema> {
+    public getRawAsIsFiles(): string[] {
+        return [AsIsFiles.GitIgnore, AsIsFiles.PhpStanNeon, AsIsFiles.PhpUnitXml];
+    }
+
+    public getCoreAsIsFiles(): string[] {
+        return [];
+    }
+
+    public getCoreTestAsIsFiles(): string[] {
+        return [];
+    }
+}
diff --git a/generators/php/model/src/generateModels.ts b/generators/php/model/src/generateModels.ts
new file mode 100644
index 00000000000..881abefafe4
--- /dev/null
+++ b/generators/php/model/src/generateModels.ts
@@ -0,0 +1,13 @@
+import { PhpFile } from "@fern-api/php-codegen";
+import { ModelGeneratorContext } from "./ModelGeneratorContext";
+
+export function generateModels({ context }: { context: ModelGeneratorContext }): PhpFile[] {
+    const files: PhpFile[] = [];
+    files.push(
+        new PhpFile({
+            namespace: context.getNamespace(),
+            customConfig: context.customConfig
+        })
+    );
+    return files;
+}
diff --git a/generators/php/model/src/index.ts b/generators/php/model/src/index.ts
index 1b9787e1018..14e382f1a72 100644
--- a/generators/php/model/src/index.ts
+++ b/generators/php/model/src/index.ts
@@ -1 +1,2 @@
 export * from "./ModelGeneratorCli";
+export { generateModels } from "./generateModels";
diff --git a/generators/php/sdk/Dockerfile b/generators/php/sdk/Dockerfile
index d77e0c82969..d1c03729ee6 100644
--- a/generators/php/sdk/Dockerfile
+++ b/generators/php/sdk/Dockerfile
@@ -3,8 +3,8 @@ FROM composer:2.7.9
 
 RUN apk --no-cache add bash curl git zip && git config --global user.name "fern" && git config --global user.email "hey@buildwithfern.com"
 
-RUN composer global require friendsofphp/php-cs-fixer
-ENV PATH="$PATH:/root/.composer/vendor/bin"
+RUN curl -L https://cs.symfony.com/download/php-cs-fixer-v3.phar -o /usr/local/bin/php-cs-fixer \
+    && chmod +x /usr/local/bin/php-cs-fixer
 ENV YARN_CACHE_FOLDER=/.yarn
 
 COPY generators/php/sdk/dist /dist
diff --git a/generators/php/sdk/package.json b/generators/php/sdk/package.json
index b6a5650bda5..dea1fbedc61 100644
--- a/generators/php/sdk/package.json
+++ b/generators/php/sdk/package.json
@@ -32,9 +32,9 @@
     "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-php-sdk:latest ../../.."
   },
   "devDependencies": {
-    "@fern-api/fs-utils": "workspace:*",
     "@fern-api/generator-commons": "workspace:*",
     "@fern-api/php-codegen": "workspace:*",
+    "@fern-api/php-model": "workspace:*",
     "@fern-fern/generator-exec-sdk": "^0.0.898",
     "@fern-fern/ir-sdk": "^53.7.0",
     "@types/jest": "^29.5.12",
diff --git a/generators/php/sdk/src/SdkCustomConfig.ts b/generators/php/sdk/src/SdkCustomConfig.ts
index 9982e3a560d..3ab8132b7ce 100644
--- a/generators/php/sdk/src/SdkCustomConfig.ts
+++ b/generators/php/sdk/src/SdkCustomConfig.ts
@@ -1,5 +1,7 @@
 import { z } from "zod";
 
-export const SdkCustomConfigSchema = z.strictObject({});
+export const SdkCustomConfigSchema = z.strictObject({
+    namespace: z.string().optional()
+});
 
 export type SdkCustomConfigSchema = z.infer<typeof SdkCustomConfigSchema>;
diff --git a/generators/php/sdk/src/SdkGeneratorCli.ts b/generators/php/sdk/src/SdkGeneratorCli.ts
index 6599a8453eb..e27660bbf72 100644
--- a/generators/php/sdk/src/SdkGeneratorCli.ts
+++ b/generators/php/sdk/src/SdkGeneratorCli.ts
@@ -4,6 +4,7 @@ import { FernGeneratorExec } from "@fern-fern/generator-exec-sdk";
 import { IntermediateRepresentation } from "@fern-fern/ir-sdk/api";
 import { SdkCustomConfigSchema } from "./SdkCustomConfig";
 import { SdkGeneratorContext } from "./SdkGeneratorContext";
+import { generateModels } from "@fern-api/php-model";
 
 export class SdkGeneratorCLI extends AbstractPhpGeneratorCli<SdkCustomConfigSchema, SdkGeneratorContext> {
     protected constructContext({
@@ -20,19 +21,31 @@ export class SdkGeneratorCLI extends AbstractPhpGeneratorCli<SdkCustomConfigSche
         return new SdkGeneratorContext(ir, generatorConfig, customConfig, generatorNotificationService);
     }
 
-    protected async parseCustomConfigOrThrow(customConfig: unknown): Promise<SdkCustomConfigSchema> {
+    protected parseCustomConfigOrThrow(customConfig: unknown): SdkCustomConfigSchema {
+        const parsed = customConfig != null ? SdkCustomConfigSchema.parse(customConfig) : undefined;
+        if (parsed != null) {
+            return parsed;
+        }
         return {};
     }
 
     protected async publishPackage(context: SdkGeneratorContext): Promise<void> {
-        return undefined;
+        throw new Error("Method not implemented.");
     }
 
     protected async writeForGithub(context: SdkGeneratorContext): Promise<void> {
-        return undefined;
+        await this.generate(context);
     }
 
     protected async writeForDownload(context: SdkGeneratorContext): Promise<void> {
-        return undefined;
+        await this.generate(context);
+    }
+
+    protected async generate(context: SdkGeneratorContext): Promise<void> {
+        const models = generateModels({ context });
+        for (const file of models) {
+            context.project.addSourceFiles(file);
+        }
+        await context.project.persist();
     }
 }
diff --git a/generators/php/sdk/src/SdkGeneratorContext.ts b/generators/php/sdk/src/SdkGeneratorContext.ts
index 94befd3018a..a5af343f6a7 100644
--- a/generators/php/sdk/src/SdkGeneratorContext.ts
+++ b/generators/php/sdk/src/SdkGeneratorContext.ts
@@ -1,11 +1,9 @@
 import { AbstractPhpGeneratorContext } from "@fern-api/php-codegen";
-import { RelativeFilePath } from "@fern-api/fs-utils";
 import { GeneratorNotificationService } from "@fern-api/generator-commons";
 import { FernGeneratorExec } from "@fern-fern/generator-exec-sdk";
 import { IntermediateRepresentation } from "@fern-fern/ir-sdk/api";
 import { SdkCustomConfigSchema } from "./SdkCustomConfig";
-
-export const MOCK_SERVER_TEST_FOLDER = RelativeFilePath.of("Unit/MockServer");
+import { AsIsFiles } from "@fern-api/php-codegen";
 
 export class SdkGeneratorContext extends AbstractPhpGeneratorContext<SdkCustomConfigSchema> {
     public constructor(
@@ -16,4 +14,16 @@ export class SdkGeneratorContext extends AbstractPhpGeneratorContext<SdkCustomCo
     ) {
         super(ir, config, customConfig, generatorNotificationService);
     }
+
+    public getRawAsIsFiles(): string[] {
+        return [AsIsFiles.GitIgnore, AsIsFiles.PhpStanNeon, AsIsFiles.PhpUnitXml];
+    }
+
+    public getCoreAsIsFiles(): string[] {
+        return [AsIsFiles.RawClient];
+    }
+
+    public getCoreTestAsIsFiles(): string[] {
+        return [AsIsFiles.RawClientTest];
+    }
 }
diff --git a/generators/typescript/sdk/client-class-generator/src/GeneratedSdkClientClassImpl.ts b/generators/typescript/sdk/client-class-generator/src/GeneratedSdkClientClassImpl.ts
index 3d131d39b34..7ff6a73595f 100644
--- a/generators/typescript/sdk/client-class-generator/src/GeneratedSdkClientClassImpl.ts
+++ b/generators/typescript/sdk/client-class-generator/src/GeneratedSdkClientClassImpl.ts
@@ -821,7 +821,7 @@ export class GeneratedSdkClientClassImpl implements GeneratedSdkClientClass {
             });
         }
 
-        const generatedVersion = context.version.getGeneratedVersion();
+        const generatedVersion = context.versionContext.getGeneratedVersion();
         if (generatedVersion != null) {
             const header = generatedVersion.getHeader();
             const headerName = this.getOptionKeyForHeader(header);
@@ -929,7 +929,7 @@ export class GeneratedSdkClientClassImpl implements GeneratedSdkClientClass {
             ]
         };
 
-        const generatedVersion = context.version.getGeneratedVersion();
+        const generatedVersion = context.versionContext.getGeneratedVersion();
         if (generatedVersion != null) {
             const header = generatedVersion.getHeader();
             requestOptions.properties.push({
@@ -1051,7 +1051,7 @@ export class GeneratedSdkClientClassImpl implements GeneratedSdkClientClass {
             }
         }
 
-        const generatedVersion = context.version.getGeneratedVersion();
+        const generatedVersion = context.versionContext.getGeneratedVersion();
         if (generatedVersion != null && !generatedVersion.hasDefaultVersion()) {
             const header = generatedVersion.getHeader();
             properties.push(
@@ -1242,7 +1242,7 @@ export class GeneratedSdkClientClassImpl implements GeneratedSdkClientClass {
             }
         }
 
-        const generatedVersion = context.version.getGeneratedVersion();
+        const generatedVersion = context.versionContext.getGeneratedVersion();
         if (generatedVersion != null) {
             const header = generatedVersion.getHeader();
             properties.push({
diff --git a/generators/typescript/sdk/generator/src/SdkGenerator.ts b/generators/typescript/sdk/generator/src/SdkGenerator.ts
index bf428c675b1..193764e175c 100644
--- a/generators/typescript/sdk/generator/src/SdkGenerator.ts
+++ b/generators/typescript/sdk/generator/src/SdkGenerator.ts
@@ -1060,7 +1060,7 @@ export class SdkGenerator {
             filepath: this.versionDeclarationReferencer.getExportedFilepath(),
             run: ({ sourceFile, importsManager }) => {
                 const context = this.generateSdkContext({ sourceFile, importsManager });
-                const generatedVersion = context.version.getGeneratedVersion();
+                const generatedVersion = context.versionContext.getGeneratedVersion();
                 if (generatedVersion != null) {
                     generatedVersion.writeToFile(context);
                 }
@@ -1217,6 +1217,7 @@ export class SdkGenerator {
     ): SdkContextImpl {
         return new SdkContextImpl({
             logger: this.context.logger,
+            version: this.context.version,
             config: this.rawConfig,
             ir: this.intermediateRepresentation,
             npmPackage: this.npmPackage,
diff --git a/generators/typescript/sdk/generator/src/contexts/SdkContextImpl.ts b/generators/typescript/sdk/generator/src/contexts/SdkContextImpl.ts
index 4967b90c9d1..97fc47aa078 100644
--- a/generators/typescript/sdk/generator/src/contexts/SdkContextImpl.ts
+++ b/generators/typescript/sdk/generator/src/contexts/SdkContextImpl.ts
@@ -64,6 +64,7 @@ const ROOT_CLIENT_VARIABLE_NAME = "client";
 export declare namespace SdkContextImpl {
     export interface Init {
         logger: Logger;
+        version: string | undefined;
         ir: IntermediateRepresentation;
         config: FernGeneratorExec.GeneratorConfig;
         sourceFile: SourceFile;
@@ -131,7 +132,7 @@ export class SdkContextImpl implements SdkContext {
     public readonly rootClientVariableName: string;
     public readonly sdkInstanceReferenceForSnippet: ts.Identifier;
 
-    public readonly version: VersionContextImpl;
+    public readonly versionContext: VersionContextImpl;
     public readonly sdkError: SdkErrorContextImpl;
     public readonly sdkErrorSchema: SdkErrorSchemaContextImpl;
     public readonly endpointErrorUnion: EndpointErrorUnionContextImpl;
@@ -224,7 +225,7 @@ export class SdkContextImpl implements SdkContext {
         });
         this.fernConstants = fernConstants;
 
-        this.version = new VersionContextImpl({
+        this.versionContext = new VersionContextImpl({
             intermediateRepresentation,
             versionGenerator,
             versionDeclarationReferencer,
@@ -330,4 +331,5 @@ export class SdkContextImpl implements SdkContext {
             timeoutSdkErrorGenerator
         });
     }
+    version: string | undefined;
 }
diff --git a/generators/typescript/utils/abstract-generator-cli/src/AbstractGeneratorCli.ts b/generators/typescript/utils/abstract-generator-cli/src/AbstractGeneratorCli.ts
index e75bc5b7a7c..f2495ceddd9 100644
--- a/generators/typescript/utils/abstract-generator-cli/src/AbstractGeneratorCli.ts
+++ b/generators/typescript/utils/abstract-generator-cli/src/AbstractGeneratorCli.ts
@@ -58,7 +58,14 @@ export abstract class AbstractGeneratorCli<CustomConfig> {
                 })
             );
 
-            const generatorContext = new GeneratorContextImpl(logger);
+            const version = config.output?.mode._visit({
+                downloadFiles: () => undefined,
+                github: (github) => github.version,
+                publish: (publish) => publish.version,
+                _other: () => undefined
+            });
+
+            const generatorContext = new GeneratorContextImpl(logger, version);
             const typescriptProject = await this.generateTypescriptProject({
                 config,
                 customConfig,
@@ -165,7 +172,7 @@ export abstract class AbstractGeneratorCli<CustomConfig> {
 class GeneratorContextImpl implements GeneratorContext {
     private isSuccess = true;
 
-    constructor(public readonly logger: Logger) {}
+    constructor(public readonly logger: Logger, public readonly version: string | undefined) {}
 
     public fail(): void {
         this.isSuccess = false;
diff --git a/generators/typescript/utils/contexts/src/GeneratorContext.ts b/generators/typescript/utils/contexts/src/GeneratorContext.ts
index ebcf203495a..1bc8c4ed19c 100644
--- a/generators/typescript/utils/contexts/src/GeneratorContext.ts
+++ b/generators/typescript/utils/contexts/src/GeneratorContext.ts
@@ -2,5 +2,6 @@ import { Logger } from "@fern-api/logger";
 
 export interface GeneratorContext {
     logger: Logger;
+    version: string | undefined;
     fail: () => void;
 }
diff --git a/generators/typescript/utils/contexts/src/sdk-context/SdkContext.ts b/generators/typescript/utils/contexts/src/sdk-context/SdkContext.ts
index 78bdadaca42..233c01af436 100644
--- a/generators/typescript/utils/contexts/src/sdk-context/SdkContext.ts
+++ b/generators/typescript/utils/contexts/src/sdk-context/SdkContext.ts
@@ -19,6 +19,7 @@ import { Logger } from "@fern-api/logger";
 
 export interface SdkContext extends ModelContext {
     logger: Logger;
+    version: string | undefined;
     ir: IntermediateRepresentation;
     config: FernGeneratorExec.GeneratorConfig;
     generatorNotificationService: GeneratorNotificationService;
@@ -35,7 +36,7 @@ export interface SdkContext extends ModelContext {
     timeoutSdkError: TimeoutSdkErrorContext;
     requestWrapper: RequestWrapperContext;
     sdkClientClass: SdkClientClassContext;
-    version: VersionContext;
+    versionContext: VersionContext;
     targetRuntime: JavaScriptRuntime;
     includeSerdeLayer: boolean;
     retainOriginalCasing: boolean;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index aef723fa534..8259cfb1361 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -450,19 +450,32 @@ importers:
         version: 2.0.5(@types/node@18.7.18)(jsdom@20.0.3)(sass@1.72.0)(terser@5.31.5)
 
   generators/php/codegen:
-    devDependencies:
+    dependencies:
       '@fern-api/fs-utils':
         specifier: workspace:*
         version: link:../../../packages/commons/fs-utils
       '@fern-api/generator-commons':
         specifier: workspace:*
         version: link:../../commons
+      '@fern-api/logging-execa':
+        specifier: workspace:*
+        version: link:../../../packages/commons/logging-execa
       '@fern-fern/ir-sdk':
         specifier: ^53.7.0
         version: 53.9.0
+      lodash-es:
+        specifier: ^4.17.21
+        version: 4.17.21
+      zod:
+        specifier: ^3.22.3
+        version: 3.22.4
+    devDependencies:
       '@types/jest':
         specifier: ^29.5.12
         version: 29.5.12
+      '@types/lodash-es':
+        specifier: ^4.17.12
+        version: 4.17.12
       '@types/node':
         specifier: ^18.7.18
         version: 18.7.18
@@ -484,9 +497,6 @@ importers:
       vitest:
         specifier: ^2.0.5
         version: 2.0.5(@types/node@18.7.18)(jsdom@20.0.3)(sass@1.72.0)(terser@5.31.5)
-      zod:
-        specifier: ^3.22.3
-        version: 3.22.4
 
   generators/php/model:
     devDependencies:
@@ -541,15 +551,15 @@ importers:
 
   generators/php/sdk:
     devDependencies:
-      '@fern-api/fs-utils':
-        specifier: workspace:*
-        version: link:../../../packages/commons/fs-utils
       '@fern-api/generator-commons':
         specifier: workspace:*
         version: link:../../commons
       '@fern-api/php-codegen':
         specifier: workspace:*
         version: link:../codegen
+      '@fern-api/php-model':
+        specifier: workspace:*
+        version: link:../model
       '@fern-fern/generator-exec-sdk':
         specifier: ^0.0.898
         version: 0.0.898
@@ -3288,6 +3298,8 @@ importers:
         specifier: ^2.0.5
         version: 2.0.5(@types/node@18.7.18)(jsdom@20.0.3)(sass@1.72.0)(terser@5.31.5)
 
+  packages/cli/cli/dist/dev: {}
+
   packages/cli/configuration:
     dependencies:
       '@fern-api/core-utils':
diff --git a/seed/php-model/alias-extends/.github/workflows/ci.yml b/seed/php-model/alias-extends/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/alias-extends/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/alias-extends/.gitignore b/seed/php-model/alias-extends/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/alias-extends/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/alias-extends/composer.json b/seed/php-model/alias-extends/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/alias-extends/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/alias-extends/phpstan.neon b/seed/php-model/alias-extends/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/alias-extends/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/alias-extends/phpunit.xml b/seed/php-model/alias-extends/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/alias-extends/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/alias-extends/src/Placeholder/Placeholder.php b/seed/php-model/alias-extends/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/alias-extends/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/alias/.github/workflows/ci.yml b/seed/php-model/alias/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/alias/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/alias/.gitignore b/seed/php-model/alias/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/alias/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/alias/composer.json b/seed/php-model/alias/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/alias/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/alias/phpstan.neon b/seed/php-model/alias/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/alias/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/alias/phpunit.xml b/seed/php-model/alias/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/alias/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/alias/src/Placeholder/Placeholder.php b/seed/php-model/alias/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/alias/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/any-auth/.github/workflows/ci.yml b/seed/php-model/any-auth/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/any-auth/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/any-auth/.gitignore b/seed/php-model/any-auth/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/any-auth/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/any-auth/composer.json b/seed/php-model/any-auth/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/any-auth/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/any-auth/phpstan.neon b/seed/php-model/any-auth/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/any-auth/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/any-auth/phpunit.xml b/seed/php-model/any-auth/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/any-auth/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/any-auth/src/Placeholder/Placeholder.php b/seed/php-model/any-auth/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/any-auth/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/api-wide-base-path/.github/workflows/ci.yml b/seed/php-model/api-wide-base-path/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/api-wide-base-path/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/api-wide-base-path/.gitignore b/seed/php-model/api-wide-base-path/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/api-wide-base-path/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/api-wide-base-path/composer.json b/seed/php-model/api-wide-base-path/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/api-wide-base-path/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/api-wide-base-path/phpstan.neon b/seed/php-model/api-wide-base-path/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/api-wide-base-path/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/api-wide-base-path/phpunit.xml b/seed/php-model/api-wide-base-path/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/api-wide-base-path/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/api-wide-base-path/src/Placeholder/Placeholder.php b/seed/php-model/api-wide-base-path/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/api-wide-base-path/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/audiences/.github/workflows/ci.yml b/seed/php-model/audiences/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/audiences/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/audiences/.gitignore b/seed/php-model/audiences/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/audiences/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/audiences/composer.json b/seed/php-model/audiences/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/audiences/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/audiences/phpstan.neon b/seed/php-model/audiences/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/audiences/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/audiences/phpunit.xml b/seed/php-model/audiences/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/audiences/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/audiences/src/Placeholder/Placeholder.php b/seed/php-model/audiences/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/audiences/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/auth-environment-variables/.github/workflows/ci.yml b/seed/php-model/auth-environment-variables/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/auth-environment-variables/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/auth-environment-variables/.gitignore b/seed/php-model/auth-environment-variables/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/auth-environment-variables/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/auth-environment-variables/composer.json b/seed/php-model/auth-environment-variables/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/auth-environment-variables/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/auth-environment-variables/phpstan.neon b/seed/php-model/auth-environment-variables/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/auth-environment-variables/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/auth-environment-variables/phpunit.xml b/seed/php-model/auth-environment-variables/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/auth-environment-variables/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/auth-environment-variables/src/Placeholder/Placeholder.php b/seed/php-model/auth-environment-variables/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/auth-environment-variables/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/basic-auth-environment-variables/.github/workflows/ci.yml b/seed/php-model/basic-auth-environment-variables/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/basic-auth-environment-variables/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/basic-auth-environment-variables/.gitignore b/seed/php-model/basic-auth-environment-variables/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/basic-auth-environment-variables/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/basic-auth-environment-variables/composer.json b/seed/php-model/basic-auth-environment-variables/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/basic-auth-environment-variables/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/basic-auth-environment-variables/phpstan.neon b/seed/php-model/basic-auth-environment-variables/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/basic-auth-environment-variables/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/basic-auth-environment-variables/phpunit.xml b/seed/php-model/basic-auth-environment-variables/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/basic-auth-environment-variables/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/basic-auth-environment-variables/src/Placeholder/Placeholder.php b/seed/php-model/basic-auth-environment-variables/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/basic-auth-environment-variables/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/basic-auth/.github/workflows/ci.yml b/seed/php-model/basic-auth/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/basic-auth/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/basic-auth/.gitignore b/seed/php-model/basic-auth/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/basic-auth/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/basic-auth/composer.json b/seed/php-model/basic-auth/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/basic-auth/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/basic-auth/phpstan.neon b/seed/php-model/basic-auth/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/basic-auth/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/basic-auth/phpunit.xml b/seed/php-model/basic-auth/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/basic-auth/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/basic-auth/src/Placeholder/Placeholder.php b/seed/php-model/basic-auth/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/basic-auth/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/bearer-token-environment-variable/.github/workflows/ci.yml b/seed/php-model/bearer-token-environment-variable/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/bearer-token-environment-variable/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/bearer-token-environment-variable/.gitignore b/seed/php-model/bearer-token-environment-variable/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/bearer-token-environment-variable/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/bearer-token-environment-variable/composer.json b/seed/php-model/bearer-token-environment-variable/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/bearer-token-environment-variable/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/bearer-token-environment-variable/phpstan.neon b/seed/php-model/bearer-token-environment-variable/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/bearer-token-environment-variable/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/bearer-token-environment-variable/phpunit.xml b/seed/php-model/bearer-token-environment-variable/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/bearer-token-environment-variable/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/bearer-token-environment-variable/src/Placeholder/Placeholder.php b/seed/php-model/bearer-token-environment-variable/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/bearer-token-environment-variable/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/bytes/.github/workflows/ci.yml b/seed/php-model/bytes/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/bytes/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/bytes/.gitignore b/seed/php-model/bytes/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/bytes/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/bytes/composer.json b/seed/php-model/bytes/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/bytes/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/bytes/phpstan.neon b/seed/php-model/bytes/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/bytes/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/bytes/phpunit.xml b/seed/php-model/bytes/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/bytes/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/bytes/src/Placeholder/Placeholder.php b/seed/php-model/bytes/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/bytes/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/circular-references-advanced/.github/workflows/ci.yml b/seed/php-model/circular-references-advanced/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/circular-references-advanced/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/circular-references-advanced/.gitignore b/seed/php-model/circular-references-advanced/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/circular-references-advanced/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/circular-references-advanced/composer.json b/seed/php-model/circular-references-advanced/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/circular-references-advanced/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/circular-references-advanced/phpstan.neon b/seed/php-model/circular-references-advanced/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/circular-references-advanced/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/circular-references-advanced/phpunit.xml b/seed/php-model/circular-references-advanced/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/circular-references-advanced/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/circular-references-advanced/src/Placeholder/Placeholder.php b/seed/php-model/circular-references-advanced/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/circular-references-advanced/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/circular-references/.github/workflows/ci.yml b/seed/php-model/circular-references/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/circular-references/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/circular-references/.gitignore b/seed/php-model/circular-references/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/circular-references/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/circular-references/composer.json b/seed/php-model/circular-references/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/circular-references/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/circular-references/phpstan.neon b/seed/php-model/circular-references/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/circular-references/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/circular-references/phpunit.xml b/seed/php-model/circular-references/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/circular-references/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/circular-references/src/Placeholder/Placeholder.php b/seed/php-model/circular-references/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/circular-references/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/cross-package-type-names/.github/workflows/ci.yml b/seed/php-model/cross-package-type-names/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/cross-package-type-names/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/cross-package-type-names/.gitignore b/seed/php-model/cross-package-type-names/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/cross-package-type-names/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/cross-package-type-names/composer.json b/seed/php-model/cross-package-type-names/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/cross-package-type-names/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/cross-package-type-names/phpstan.neon b/seed/php-model/cross-package-type-names/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/cross-package-type-names/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/cross-package-type-names/phpunit.xml b/seed/php-model/cross-package-type-names/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/cross-package-type-names/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/cross-package-type-names/src/Placeholder/Placeholder.php b/seed/php-model/cross-package-type-names/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/cross-package-type-names/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/custom-auth/.github/workflows/ci.yml b/seed/php-model/custom-auth/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/custom-auth/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/custom-auth/.gitignore b/seed/php-model/custom-auth/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/custom-auth/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/custom-auth/composer.json b/seed/php-model/custom-auth/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/custom-auth/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/custom-auth/phpstan.neon b/seed/php-model/custom-auth/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/custom-auth/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/custom-auth/phpunit.xml b/seed/php-model/custom-auth/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/custom-auth/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/custom-auth/src/Placeholder/Placeholder.php b/seed/php-model/custom-auth/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/custom-auth/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/enum/.github/workflows/ci.yml b/seed/php-model/enum/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/enum/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/enum/.gitignore b/seed/php-model/enum/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/enum/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/enum/composer.json b/seed/php-model/enum/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/enum/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/enum/phpstan.neon b/seed/php-model/enum/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/enum/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/enum/phpunit.xml b/seed/php-model/enum/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/enum/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/enum/src/Placeholder/Placeholder.php b/seed/php-model/enum/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/enum/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/error-property/.github/workflows/ci.yml b/seed/php-model/error-property/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/error-property/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/error-property/.gitignore b/seed/php-model/error-property/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/error-property/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/error-property/composer.json b/seed/php-model/error-property/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/error-property/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/error-property/phpstan.neon b/seed/php-model/error-property/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/error-property/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/error-property/phpunit.xml b/seed/php-model/error-property/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/error-property/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/error-property/src/Placeholder/Placeholder.php b/seed/php-model/error-property/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/error-property/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/examples/.github/workflows/ci.yml b/seed/php-model/examples/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/examples/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/examples/.gitignore b/seed/php-model/examples/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/examples/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/examples/composer.json b/seed/php-model/examples/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/examples/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/examples/phpstan.neon b/seed/php-model/examples/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/examples/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/examples/phpunit.xml b/seed/php-model/examples/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/examples/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/examples/src/Placeholder/Placeholder.php b/seed/php-model/examples/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/examples/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/exhaustive/.github/workflows/ci.yml b/seed/php-model/exhaustive/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/exhaustive/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/exhaustive/.gitignore b/seed/php-model/exhaustive/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/exhaustive/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/exhaustive/composer.json b/seed/php-model/exhaustive/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/exhaustive/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/exhaustive/phpstan.neon b/seed/php-model/exhaustive/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/exhaustive/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/exhaustive/phpunit.xml b/seed/php-model/exhaustive/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/exhaustive/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/exhaustive/src/Placeholder/Placeholder.php b/seed/php-model/exhaustive/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/exhaustive/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/extends/.github/workflows/ci.yml b/seed/php-model/extends/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/extends/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/extends/.gitignore b/seed/php-model/extends/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/extends/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/extends/composer.json b/seed/php-model/extends/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/extends/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/extends/phpstan.neon b/seed/php-model/extends/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/extends/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/extends/phpunit.xml b/seed/php-model/extends/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/extends/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/extends/src/Placeholder/Placeholder.php b/seed/php-model/extends/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/extends/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/extra-properties/.github/workflows/ci.yml b/seed/php-model/extra-properties/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/extra-properties/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/extra-properties/.gitignore b/seed/php-model/extra-properties/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/extra-properties/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/extra-properties/composer.json b/seed/php-model/extra-properties/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/extra-properties/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/extra-properties/phpstan.neon b/seed/php-model/extra-properties/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/extra-properties/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/extra-properties/phpunit.xml b/seed/php-model/extra-properties/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/extra-properties/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/extra-properties/src/Placeholder/Placeholder.php b/seed/php-model/extra-properties/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/extra-properties/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/file-download/.github/workflows/ci.yml b/seed/php-model/file-download/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/file-download/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/file-download/.gitignore b/seed/php-model/file-download/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/file-download/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/file-download/composer.json b/seed/php-model/file-download/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/file-download/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/file-download/phpstan.neon b/seed/php-model/file-download/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/file-download/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/file-download/phpunit.xml b/seed/php-model/file-download/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/file-download/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/file-download/src/Placeholder/Placeholder.php b/seed/php-model/file-download/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/file-download/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/file-upload/.github/workflows/ci.yml b/seed/php-model/file-upload/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/file-upload/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/file-upload/.gitignore b/seed/php-model/file-upload/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/file-upload/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/file-upload/composer.json b/seed/php-model/file-upload/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/file-upload/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/file-upload/phpstan.neon b/seed/php-model/file-upload/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/file-upload/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/file-upload/phpunit.xml b/seed/php-model/file-upload/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/file-upload/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/file-upload/src/Placeholder/Placeholder.php b/seed/php-model/file-upload/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/file-upload/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/folders/.github/workflows/ci.yml b/seed/php-model/folders/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/folders/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/folders/.gitignore b/seed/php-model/folders/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/folders/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/folders/composer.json b/seed/php-model/folders/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/folders/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/folders/phpstan.neon b/seed/php-model/folders/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/folders/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/folders/phpunit.xml b/seed/php-model/folders/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/folders/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/folders/src/Placeholder/Placeholder.php b/seed/php-model/folders/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/folders/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/grpc-proto-exhaustive/.github/workflows/ci.yml b/seed/php-model/grpc-proto-exhaustive/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/grpc-proto-exhaustive/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/grpc-proto-exhaustive/.gitignore b/seed/php-model/grpc-proto-exhaustive/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/grpc-proto-exhaustive/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/grpc-proto-exhaustive/composer.json b/seed/php-model/grpc-proto-exhaustive/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/grpc-proto-exhaustive/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/grpc-proto-exhaustive/phpstan.neon b/seed/php-model/grpc-proto-exhaustive/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/grpc-proto-exhaustive/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/grpc-proto-exhaustive/phpunit.xml b/seed/php-model/grpc-proto-exhaustive/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/grpc-proto-exhaustive/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/grpc-proto-exhaustive/src/Placeholder/Placeholder.php b/seed/php-model/grpc-proto-exhaustive/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/grpc-proto-exhaustive/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/grpc-proto/.github/workflows/ci.yml b/seed/php-model/grpc-proto/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/grpc-proto/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/grpc-proto/.gitignore b/seed/php-model/grpc-proto/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/grpc-proto/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/grpc-proto/composer.json b/seed/php-model/grpc-proto/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/grpc-proto/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/grpc-proto/phpstan.neon b/seed/php-model/grpc-proto/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/grpc-proto/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/grpc-proto/phpunit.xml b/seed/php-model/grpc-proto/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/grpc-proto/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/grpc-proto/src/Placeholder/Placeholder.php b/seed/php-model/grpc-proto/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/grpc-proto/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/idempotency-headers/.github/workflows/ci.yml b/seed/php-model/idempotency-headers/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/idempotency-headers/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/idempotency-headers/.gitignore b/seed/php-model/idempotency-headers/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/idempotency-headers/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/idempotency-headers/composer.json b/seed/php-model/idempotency-headers/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/idempotency-headers/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/idempotency-headers/phpstan.neon b/seed/php-model/idempotency-headers/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/idempotency-headers/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/idempotency-headers/phpunit.xml b/seed/php-model/idempotency-headers/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/idempotency-headers/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/idempotency-headers/src/Placeholder/Placeholder.php b/seed/php-model/idempotency-headers/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/idempotency-headers/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/imdb/.github/workflows/ci.yml b/seed/php-model/imdb/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/imdb/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/imdb/.gitignore b/seed/php-model/imdb/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/imdb/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/imdb/composer.json b/seed/php-model/imdb/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/imdb/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/imdb/phpstan.neon b/seed/php-model/imdb/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/imdb/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/imdb/phpunit.xml b/seed/php-model/imdb/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/imdb/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/imdb/src/Placeholder/Placeholder.php b/seed/php-model/imdb/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/imdb/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/literal/.github/workflows/ci.yml b/seed/php-model/literal/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/literal/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/literal/.gitignore b/seed/php-model/literal/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/literal/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/literal/composer.json b/seed/php-model/literal/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/literal/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/literal/phpstan.neon b/seed/php-model/literal/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/literal/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/literal/phpunit.xml b/seed/php-model/literal/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/literal/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/literal/src/Placeholder/Placeholder.php b/seed/php-model/literal/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/literal/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/mixed-case/.github/workflows/ci.yml b/seed/php-model/mixed-case/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/mixed-case/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/mixed-case/.gitignore b/seed/php-model/mixed-case/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/mixed-case/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/mixed-case/composer.json b/seed/php-model/mixed-case/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/mixed-case/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/mixed-case/phpstan.neon b/seed/php-model/mixed-case/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/mixed-case/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/mixed-case/phpunit.xml b/seed/php-model/mixed-case/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/mixed-case/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/mixed-case/src/Placeholder/Placeholder.php b/seed/php-model/mixed-case/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/mixed-case/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/mixed-file-directory/.github/workflows/ci.yml b/seed/php-model/mixed-file-directory/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/mixed-file-directory/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/mixed-file-directory/.gitignore b/seed/php-model/mixed-file-directory/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/mixed-file-directory/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/mixed-file-directory/composer.json b/seed/php-model/mixed-file-directory/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/mixed-file-directory/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/mixed-file-directory/phpstan.neon b/seed/php-model/mixed-file-directory/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/mixed-file-directory/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/mixed-file-directory/phpunit.xml b/seed/php-model/mixed-file-directory/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/mixed-file-directory/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/mixed-file-directory/src/Placeholder/Placeholder.php b/seed/php-model/mixed-file-directory/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/mixed-file-directory/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/multi-line-docs/.github/workflows/ci.yml b/seed/php-model/multi-line-docs/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/multi-line-docs/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/multi-line-docs/.gitignore b/seed/php-model/multi-line-docs/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/multi-line-docs/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/multi-line-docs/composer.json b/seed/php-model/multi-line-docs/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/multi-line-docs/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/multi-line-docs/phpstan.neon b/seed/php-model/multi-line-docs/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/multi-line-docs/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/multi-line-docs/phpunit.xml b/seed/php-model/multi-line-docs/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/multi-line-docs/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/multi-line-docs/src/Placeholder/Placeholder.php b/seed/php-model/multi-line-docs/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/multi-line-docs/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/multi-url-environment-no-default/.github/workflows/ci.yml b/seed/php-model/multi-url-environment-no-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/multi-url-environment-no-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/multi-url-environment-no-default/.gitignore b/seed/php-model/multi-url-environment-no-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/multi-url-environment-no-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/multi-url-environment-no-default/composer.json b/seed/php-model/multi-url-environment-no-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/multi-url-environment-no-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/multi-url-environment-no-default/phpstan.neon b/seed/php-model/multi-url-environment-no-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/multi-url-environment-no-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/multi-url-environment-no-default/phpunit.xml b/seed/php-model/multi-url-environment-no-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/multi-url-environment-no-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/multi-url-environment-no-default/src/Placeholder/Placeholder.php b/seed/php-model/multi-url-environment-no-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/multi-url-environment-no-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/multi-url-environment/.github/workflows/ci.yml b/seed/php-model/multi-url-environment/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/multi-url-environment/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/multi-url-environment/.gitignore b/seed/php-model/multi-url-environment/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/multi-url-environment/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/multi-url-environment/composer.json b/seed/php-model/multi-url-environment/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/multi-url-environment/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/multi-url-environment/phpstan.neon b/seed/php-model/multi-url-environment/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/multi-url-environment/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/multi-url-environment/phpunit.xml b/seed/php-model/multi-url-environment/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/multi-url-environment/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/multi-url-environment/src/Placeholder/Placeholder.php b/seed/php-model/multi-url-environment/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/multi-url-environment/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/no-environment/.github/workflows/ci.yml b/seed/php-model/no-environment/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/no-environment/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/no-environment/.gitignore b/seed/php-model/no-environment/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/no-environment/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/no-environment/composer.json b/seed/php-model/no-environment/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/no-environment/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/no-environment/phpstan.neon b/seed/php-model/no-environment/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/no-environment/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/no-environment/phpunit.xml b/seed/php-model/no-environment/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/no-environment/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/no-environment/src/Placeholder/Placeholder.php b/seed/php-model/no-environment/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/no-environment/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/oauth-client-credentials-default/.github/workflows/ci.yml b/seed/php-model/oauth-client-credentials-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-default/.gitignore b/seed/php-model/oauth-client-credentials-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-default/composer.json b/seed/php-model/oauth-client-credentials-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/oauth-client-credentials-default/phpstan.neon b/seed/php-model/oauth-client-credentials-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-default/phpunit.xml b/seed/php-model/oauth-client-credentials-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-default/src/Placeholder/Placeholder.php b/seed/php-model/oauth-client-credentials-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/oauth-client-credentials-environment-variables/.github/workflows/ci.yml b/seed/php-model/oauth-client-credentials-environment-variables/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-environment-variables/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-environment-variables/.gitignore b/seed/php-model/oauth-client-credentials-environment-variables/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-environment-variables/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-environment-variables/composer.json b/seed/php-model/oauth-client-credentials-environment-variables/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-environment-variables/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/oauth-client-credentials-environment-variables/phpstan.neon b/seed/php-model/oauth-client-credentials-environment-variables/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-environment-variables/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-environment-variables/phpunit.xml b/seed/php-model/oauth-client-credentials-environment-variables/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-environment-variables/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-environment-variables/src/Placeholder/Placeholder.php b/seed/php-model/oauth-client-credentials-environment-variables/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-environment-variables/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/oauth-client-credentials-nested-root/.github/workflows/ci.yml b/seed/php-model/oauth-client-credentials-nested-root/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-nested-root/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-nested-root/.gitignore b/seed/php-model/oauth-client-credentials-nested-root/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-nested-root/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-nested-root/composer.json b/seed/php-model/oauth-client-credentials-nested-root/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-nested-root/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/oauth-client-credentials-nested-root/phpstan.neon b/seed/php-model/oauth-client-credentials-nested-root/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-nested-root/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-nested-root/phpunit.xml b/seed/php-model/oauth-client-credentials-nested-root/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-nested-root/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials-nested-root/src/Placeholder/Placeholder.php b/seed/php-model/oauth-client-credentials-nested-root/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials-nested-root/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/oauth-client-credentials/.github/workflows/ci.yml b/seed/php-model/oauth-client-credentials/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials/.gitignore b/seed/php-model/oauth-client-credentials/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials/composer.json b/seed/php-model/oauth-client-credentials/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/oauth-client-credentials/phpstan.neon b/seed/php-model/oauth-client-credentials/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials/phpunit.xml b/seed/php-model/oauth-client-credentials/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/oauth-client-credentials/src/Placeholder/Placeholder.php b/seed/php-model/oauth-client-credentials/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/oauth-client-credentials/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/object/.github/workflows/ci.yml b/seed/php-model/object/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/object/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/object/.gitignore b/seed/php-model/object/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/object/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/object/composer.json b/seed/php-model/object/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/object/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/object/phpstan.neon b/seed/php-model/object/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/object/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/object/phpunit.xml b/seed/php-model/object/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/object/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/object/src/Placeholder/Placeholder.php b/seed/php-model/object/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/object/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/objects-with-imports/.github/workflows/ci.yml b/seed/php-model/objects-with-imports/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/objects-with-imports/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/objects-with-imports/.gitignore b/seed/php-model/objects-with-imports/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/objects-with-imports/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/objects-with-imports/composer.json b/seed/php-model/objects-with-imports/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/objects-with-imports/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/objects-with-imports/phpstan.neon b/seed/php-model/objects-with-imports/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/objects-with-imports/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/objects-with-imports/phpunit.xml b/seed/php-model/objects-with-imports/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/objects-with-imports/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/objects-with-imports/src/Placeholder/Placeholder.php b/seed/php-model/objects-with-imports/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/objects-with-imports/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/optional/.github/workflows/ci.yml b/seed/php-model/optional/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/optional/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/optional/.gitignore b/seed/php-model/optional/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/optional/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/optional/composer.json b/seed/php-model/optional/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/optional/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/optional/phpstan.neon b/seed/php-model/optional/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/optional/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/optional/phpunit.xml b/seed/php-model/optional/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/optional/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/optional/src/Placeholder/Placeholder.php b/seed/php-model/optional/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/optional/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/package-yml/.github/workflows/ci.yml b/seed/php-model/package-yml/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/package-yml/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/package-yml/.gitignore b/seed/php-model/package-yml/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/package-yml/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/package-yml/composer.json b/seed/php-model/package-yml/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/package-yml/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/package-yml/phpstan.neon b/seed/php-model/package-yml/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/package-yml/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/package-yml/phpunit.xml b/seed/php-model/package-yml/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/package-yml/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/package-yml/src/Placeholder/Placeholder.php b/seed/php-model/package-yml/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/package-yml/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/pagination/.github/workflows/ci.yml b/seed/php-model/pagination/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/pagination/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/pagination/.gitignore b/seed/php-model/pagination/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/pagination/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/pagination/composer.json b/seed/php-model/pagination/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/pagination/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/pagination/phpstan.neon b/seed/php-model/pagination/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/pagination/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/pagination/phpunit.xml b/seed/php-model/pagination/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/pagination/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/pagination/src/Placeholder/Placeholder.php b/seed/php-model/pagination/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/pagination/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/plain-text/.github/workflows/ci.yml b/seed/php-model/plain-text/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/plain-text/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/plain-text/.gitignore b/seed/php-model/plain-text/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/plain-text/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/plain-text/composer.json b/seed/php-model/plain-text/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/plain-text/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/plain-text/phpstan.neon b/seed/php-model/plain-text/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/plain-text/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/plain-text/phpunit.xml b/seed/php-model/plain-text/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/plain-text/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/plain-text/src/Placeholder/Placeholder.php b/seed/php-model/plain-text/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/plain-text/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/query-parameters/.github/workflows/ci.yml b/seed/php-model/query-parameters/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/query-parameters/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/query-parameters/.gitignore b/seed/php-model/query-parameters/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/query-parameters/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/query-parameters/composer.json b/seed/php-model/query-parameters/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/query-parameters/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/query-parameters/phpstan.neon b/seed/php-model/query-parameters/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/query-parameters/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/query-parameters/phpunit.xml b/seed/php-model/query-parameters/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/query-parameters/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/query-parameters/src/Placeholder/Placeholder.php b/seed/php-model/query-parameters/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/query-parameters/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/reserved-keywords/.github/workflows/ci.yml b/seed/php-model/reserved-keywords/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/reserved-keywords/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/reserved-keywords/.gitignore b/seed/php-model/reserved-keywords/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/reserved-keywords/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/reserved-keywords/composer.json b/seed/php-model/reserved-keywords/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/reserved-keywords/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/reserved-keywords/phpstan.neon b/seed/php-model/reserved-keywords/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/reserved-keywords/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/reserved-keywords/phpunit.xml b/seed/php-model/reserved-keywords/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/reserved-keywords/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/reserved-keywords/src/Placeholder/Placeholder.php b/seed/php-model/reserved-keywords/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/reserved-keywords/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/response-property/.github/workflows/ci.yml b/seed/php-model/response-property/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/response-property/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/response-property/.gitignore b/seed/php-model/response-property/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/response-property/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/response-property/composer.json b/seed/php-model/response-property/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/response-property/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/response-property/phpstan.neon b/seed/php-model/response-property/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/response-property/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/response-property/phpunit.xml b/seed/php-model/response-property/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/response-property/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/response-property/src/Placeholder/Placeholder.php b/seed/php-model/response-property/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/response-property/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/seed.yml b/seed/php-model/seed.yml
index 72e416fdd2c..17c4eb5ca41 100644
--- a/seed/php-model/seed.yml
+++ b/seed/php-model/seed.yml
@@ -14,5 +14,8 @@ language: php
 generatorType: SDK
 defaultOutputMode: github
 fixtures: {}
-scripts: []
+scripts:
+  - docker: composer:2.7.9
+    commands:
+      - composer install && composer build && composer analyze && composer test
 allowedFailures: []
\ No newline at end of file
diff --git a/seed/php-model/simple-fhir/.github/workflows/ci.yml b/seed/php-model/simple-fhir/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/simple-fhir/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/simple-fhir/.gitignore b/seed/php-model/simple-fhir/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/simple-fhir/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/simple-fhir/composer.json b/seed/php-model/simple-fhir/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/simple-fhir/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/simple-fhir/phpstan.neon b/seed/php-model/simple-fhir/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/simple-fhir/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/simple-fhir/phpunit.xml b/seed/php-model/simple-fhir/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/simple-fhir/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/simple-fhir/src/Placeholder/Placeholder.php b/seed/php-model/simple-fhir/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/simple-fhir/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/single-url-environment-default/.github/workflows/ci.yml b/seed/php-model/single-url-environment-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/single-url-environment-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/single-url-environment-default/.gitignore b/seed/php-model/single-url-environment-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/single-url-environment-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/single-url-environment-default/composer.json b/seed/php-model/single-url-environment-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/single-url-environment-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/single-url-environment-default/phpstan.neon b/seed/php-model/single-url-environment-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/single-url-environment-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/single-url-environment-default/phpunit.xml b/seed/php-model/single-url-environment-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/single-url-environment-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/single-url-environment-default/src/Placeholder/Placeholder.php b/seed/php-model/single-url-environment-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/single-url-environment-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/single-url-environment-no-default/.github/workflows/ci.yml b/seed/php-model/single-url-environment-no-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/single-url-environment-no-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/single-url-environment-no-default/.gitignore b/seed/php-model/single-url-environment-no-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/single-url-environment-no-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/single-url-environment-no-default/composer.json b/seed/php-model/single-url-environment-no-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/single-url-environment-no-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/single-url-environment-no-default/phpstan.neon b/seed/php-model/single-url-environment-no-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/single-url-environment-no-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/single-url-environment-no-default/phpunit.xml b/seed/php-model/single-url-environment-no-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/single-url-environment-no-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/single-url-environment-no-default/src/Placeholder/Placeholder.php b/seed/php-model/single-url-environment-no-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/single-url-environment-no-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/streaming-parameter/.github/workflows/ci.yml b/seed/php-model/streaming-parameter/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/streaming-parameter/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/streaming-parameter/.gitignore b/seed/php-model/streaming-parameter/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/streaming-parameter/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/streaming-parameter/composer.json b/seed/php-model/streaming-parameter/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/streaming-parameter/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/streaming-parameter/phpstan.neon b/seed/php-model/streaming-parameter/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/streaming-parameter/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/streaming-parameter/phpunit.xml b/seed/php-model/streaming-parameter/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/streaming-parameter/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/streaming-parameter/src/Placeholder/Placeholder.php b/seed/php-model/streaming-parameter/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/streaming-parameter/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/streaming/.github/workflows/ci.yml b/seed/php-model/streaming/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/streaming/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/streaming/.gitignore b/seed/php-model/streaming/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/streaming/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/streaming/composer.json b/seed/php-model/streaming/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/streaming/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/streaming/phpstan.neon b/seed/php-model/streaming/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/streaming/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/streaming/phpunit.xml b/seed/php-model/streaming/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/streaming/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/streaming/src/Placeholder/Placeholder.php b/seed/php-model/streaming/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/streaming/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/trace/.github/workflows/ci.yml b/seed/php-model/trace/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/trace/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/trace/.gitignore b/seed/php-model/trace/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/trace/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/trace/composer.json b/seed/php-model/trace/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/trace/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/trace/phpstan.neon b/seed/php-model/trace/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/trace/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/trace/phpunit.xml b/seed/php-model/trace/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/trace/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/trace/src/Placeholder/Placeholder.php b/seed/php-model/trace/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/trace/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/undiscriminated-unions/.github/workflows/ci.yml b/seed/php-model/undiscriminated-unions/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/undiscriminated-unions/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/undiscriminated-unions/.gitignore b/seed/php-model/undiscriminated-unions/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/undiscriminated-unions/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/undiscriminated-unions/composer.json b/seed/php-model/undiscriminated-unions/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/undiscriminated-unions/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/undiscriminated-unions/phpstan.neon b/seed/php-model/undiscriminated-unions/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/undiscriminated-unions/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/undiscriminated-unions/phpunit.xml b/seed/php-model/undiscriminated-unions/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/undiscriminated-unions/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/undiscriminated-unions/src/Placeholder/Placeholder.php b/seed/php-model/undiscriminated-unions/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/undiscriminated-unions/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/unions/.github/workflows/ci.yml b/seed/php-model/unions/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/unions/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/unions/.gitignore b/seed/php-model/unions/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/unions/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/unions/composer.json b/seed/php-model/unions/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/unions/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/unions/phpstan.neon b/seed/php-model/unions/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/unions/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/unions/phpunit.xml b/seed/php-model/unions/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/unions/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/unions/src/Placeholder/Placeholder.php b/seed/php-model/unions/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/unions/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/unknown/.github/workflows/ci.yml b/seed/php-model/unknown/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/unknown/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/unknown/.gitignore b/seed/php-model/unknown/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/unknown/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/unknown/composer.json b/seed/php-model/unknown/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/unknown/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/unknown/phpstan.neon b/seed/php-model/unknown/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/unknown/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/unknown/phpunit.xml b/seed/php-model/unknown/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/unknown/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/unknown/src/Placeholder/Placeholder.php b/seed/php-model/unknown/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/unknown/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/validation/.github/workflows/ci.yml b/seed/php-model/validation/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/validation/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/validation/.gitignore b/seed/php-model/validation/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/validation/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/validation/composer.json b/seed/php-model/validation/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/validation/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/validation/phpstan.neon b/seed/php-model/validation/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/validation/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/validation/phpunit.xml b/seed/php-model/validation/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/validation/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/validation/src/Placeholder/Placeholder.php b/seed/php-model/validation/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/validation/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/variables/.github/workflows/ci.yml b/seed/php-model/variables/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/variables/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/variables/.gitignore b/seed/php-model/variables/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/variables/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/variables/composer.json b/seed/php-model/variables/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/variables/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/variables/phpstan.neon b/seed/php-model/variables/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/variables/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/variables/phpunit.xml b/seed/php-model/variables/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/variables/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/variables/src/Placeholder/Placeholder.php b/seed/php-model/variables/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/variables/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/version-no-default/.github/workflows/ci.yml b/seed/php-model/version-no-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/version-no-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/version-no-default/.gitignore b/seed/php-model/version-no-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/version-no-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/version-no-default/composer.json b/seed/php-model/version-no-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/version-no-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/version-no-default/phpstan.neon b/seed/php-model/version-no-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/version-no-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/version-no-default/phpunit.xml b/seed/php-model/version-no-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/version-no-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/version-no-default/src/Placeholder/Placeholder.php b/seed/php-model/version-no-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/version-no-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/version/.github/workflows/ci.yml b/seed/php-model/version/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/version/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/version/.gitignore b/seed/php-model/version/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/version/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/version/composer.json b/seed/php-model/version/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/version/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/version/phpstan.neon b/seed/php-model/version/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/version/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/version/phpunit.xml b/seed/php-model/version/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/version/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/version/src/Placeholder/Placeholder.php b/seed/php-model/version/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/version/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-model/websocket/.github/workflows/ci.yml b/seed/php-model/websocket/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-model/websocket/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-model/websocket/.gitignore b/seed/php-model/websocket/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-model/websocket/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-model/websocket/composer.json b/seed/php-model/websocket/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-model/websocket/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-model/websocket/phpstan.neon b/seed/php-model/websocket/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-model/websocket/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-model/websocket/phpunit.xml b/seed/php-model/websocket/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-model/websocket/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-model/websocket/src/Placeholder/Placeholder.php b/seed/php-model/websocket/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-model/websocket/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/alias-extends/.github/workflows/ci.yml b/seed/php-sdk/alias-extends/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/alias-extends/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/alias-extends/.gitignore b/seed/php-sdk/alias-extends/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/alias-extends/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/generators/php/codegen/src/asIs/RawClient.php b/seed/php-sdk/alias-extends/Core/RawClient.php
similarity index 80%
rename from generators/php/codegen/src/asIs/RawClient.php
rename to seed/php-sdk/alias-extends/Core/RawClient.php
index 84365881c06..f64e847550f 100644
--- a/generators/php/codegen/src/asIs/RawClient.php
+++ b/seed/php-sdk/alias-extends/Core/RawClient.php
@@ -1,9 +1,11 @@
 <?php
 
+namespace Seed\Core;
+
 class RawClient
 {
     public function __construct()
     {
         // TODO: Implement me!
     }
-}
\ No newline at end of file
+}
diff --git a/seed/php-sdk/alias-extends/composer.json b/seed/php-sdk/alias-extends/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/alias-extends/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/alias-extends/phpstan.neon b/seed/php-sdk/alias-extends/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/alias-extends/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/alias-extends/phpunit.xml b/seed/php-sdk/alias-extends/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/alias-extends/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/alias-extends/src/Placeholder/Placeholder.php b/seed/php-sdk/alias-extends/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/alias-extends/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/alias-extends/tests/Core/RawClient.php b/seed/php-sdk/alias-extends/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/alias-extends/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/alias/.github/workflows/ci.yml b/seed/php-sdk/alias/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/alias/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/alias/.gitignore b/seed/php-sdk/alias/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/alias/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/alias/Core/RawClient.php b/seed/php-sdk/alias/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/alias/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/alias/composer.json b/seed/php-sdk/alias/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/alias/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/alias/phpstan.neon b/seed/php-sdk/alias/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/alias/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/alias/phpunit.xml b/seed/php-sdk/alias/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/alias/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/alias/src/Placeholder/Placeholder.php b/seed/php-sdk/alias/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/alias/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/alias/tests/Core/RawClient.php b/seed/php-sdk/alias/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/alias/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/any-auth/.github/workflows/ci.yml b/seed/php-sdk/any-auth/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/any-auth/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/any-auth/.gitignore b/seed/php-sdk/any-auth/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/any-auth/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/any-auth/Core/RawClient.php b/seed/php-sdk/any-auth/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/any-auth/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/any-auth/composer.json b/seed/php-sdk/any-auth/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/any-auth/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/any-auth/phpstan.neon b/seed/php-sdk/any-auth/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/any-auth/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/any-auth/phpunit.xml b/seed/php-sdk/any-auth/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/any-auth/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/any-auth/src/Placeholder/Placeholder.php b/seed/php-sdk/any-auth/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/any-auth/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/any-auth/tests/Core/RawClient.php b/seed/php-sdk/any-auth/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/any-auth/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/api-wide-base-path/.github/workflows/ci.yml b/seed/php-sdk/api-wide-base-path/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/api-wide-base-path/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/api-wide-base-path/.gitignore b/seed/php-sdk/api-wide-base-path/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/api-wide-base-path/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/api-wide-base-path/Core/RawClient.php b/seed/php-sdk/api-wide-base-path/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/api-wide-base-path/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/api-wide-base-path/composer.json b/seed/php-sdk/api-wide-base-path/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/api-wide-base-path/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/api-wide-base-path/phpstan.neon b/seed/php-sdk/api-wide-base-path/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/api-wide-base-path/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/api-wide-base-path/phpunit.xml b/seed/php-sdk/api-wide-base-path/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/api-wide-base-path/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/api-wide-base-path/src/Placeholder/Placeholder.php b/seed/php-sdk/api-wide-base-path/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/api-wide-base-path/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/api-wide-base-path/tests/Core/RawClient.php b/seed/php-sdk/api-wide-base-path/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/api-wide-base-path/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/audiences/.github/workflows/ci.yml b/seed/php-sdk/audiences/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/audiences/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/audiences/.gitignore b/seed/php-sdk/audiences/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/audiences/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/audiences/Core/RawClient.php b/seed/php-sdk/audiences/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/audiences/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/audiences/composer.json b/seed/php-sdk/audiences/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/audiences/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/audiences/phpstan.neon b/seed/php-sdk/audiences/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/audiences/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/audiences/phpunit.xml b/seed/php-sdk/audiences/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/audiences/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/audiences/src/Placeholder/Placeholder.php b/seed/php-sdk/audiences/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/audiences/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/audiences/tests/Core/RawClient.php b/seed/php-sdk/audiences/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/audiences/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/auth-environment-variables/.github/workflows/ci.yml b/seed/php-sdk/auth-environment-variables/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/auth-environment-variables/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/auth-environment-variables/.gitignore b/seed/php-sdk/auth-environment-variables/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/auth-environment-variables/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/auth-environment-variables/Core/RawClient.php b/seed/php-sdk/auth-environment-variables/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/auth-environment-variables/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/auth-environment-variables/composer.json b/seed/php-sdk/auth-environment-variables/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/auth-environment-variables/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/auth-environment-variables/phpstan.neon b/seed/php-sdk/auth-environment-variables/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/auth-environment-variables/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/auth-environment-variables/phpunit.xml b/seed/php-sdk/auth-environment-variables/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/auth-environment-variables/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/auth-environment-variables/src/Placeholder/Placeholder.php b/seed/php-sdk/auth-environment-variables/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/auth-environment-variables/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/auth-environment-variables/tests/Core/RawClient.php b/seed/php-sdk/auth-environment-variables/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/auth-environment-variables/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/basic-auth-environment-variables/.github/workflows/ci.yml b/seed/php-sdk/basic-auth-environment-variables/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/basic-auth-environment-variables/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/basic-auth-environment-variables/.gitignore b/seed/php-sdk/basic-auth-environment-variables/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/basic-auth-environment-variables/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/basic-auth-environment-variables/Core/RawClient.php b/seed/php-sdk/basic-auth-environment-variables/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/basic-auth-environment-variables/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/basic-auth-environment-variables/composer.json b/seed/php-sdk/basic-auth-environment-variables/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/basic-auth-environment-variables/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/basic-auth-environment-variables/phpstan.neon b/seed/php-sdk/basic-auth-environment-variables/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/basic-auth-environment-variables/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/basic-auth-environment-variables/phpunit.xml b/seed/php-sdk/basic-auth-environment-variables/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/basic-auth-environment-variables/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/basic-auth-environment-variables/src/Placeholder/Placeholder.php b/seed/php-sdk/basic-auth-environment-variables/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/basic-auth-environment-variables/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/basic-auth-environment-variables/tests/Core/RawClient.php b/seed/php-sdk/basic-auth-environment-variables/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/basic-auth-environment-variables/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/basic-auth/.github/workflows/ci.yml b/seed/php-sdk/basic-auth/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/basic-auth/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/basic-auth/.gitignore b/seed/php-sdk/basic-auth/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/basic-auth/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/basic-auth/Core/RawClient.php b/seed/php-sdk/basic-auth/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/basic-auth/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/basic-auth/composer.json b/seed/php-sdk/basic-auth/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/basic-auth/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/basic-auth/phpstan.neon b/seed/php-sdk/basic-auth/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/basic-auth/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/basic-auth/phpunit.xml b/seed/php-sdk/basic-auth/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/basic-auth/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/basic-auth/src/Placeholder/Placeholder.php b/seed/php-sdk/basic-auth/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/basic-auth/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/basic-auth/tests/Core/RawClient.php b/seed/php-sdk/basic-auth/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/basic-auth/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/bearer-token-environment-variable/.github/workflows/ci.yml b/seed/php-sdk/bearer-token-environment-variable/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/bearer-token-environment-variable/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/bearer-token-environment-variable/.gitignore b/seed/php-sdk/bearer-token-environment-variable/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/bearer-token-environment-variable/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/bearer-token-environment-variable/Core/RawClient.php b/seed/php-sdk/bearer-token-environment-variable/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/bearer-token-environment-variable/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/bearer-token-environment-variable/composer.json b/seed/php-sdk/bearer-token-environment-variable/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/bearer-token-environment-variable/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/bearer-token-environment-variable/phpstan.neon b/seed/php-sdk/bearer-token-environment-variable/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/bearer-token-environment-variable/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/bearer-token-environment-variable/phpunit.xml b/seed/php-sdk/bearer-token-environment-variable/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/bearer-token-environment-variable/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/bearer-token-environment-variable/src/Placeholder/Placeholder.php b/seed/php-sdk/bearer-token-environment-variable/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/bearer-token-environment-variable/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/bearer-token-environment-variable/tests/Core/RawClient.php b/seed/php-sdk/bearer-token-environment-variable/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/bearer-token-environment-variable/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/bytes/.github/workflows/ci.yml b/seed/php-sdk/bytes/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/bytes/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/bytes/.gitignore b/seed/php-sdk/bytes/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/bytes/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/bytes/Core/RawClient.php b/seed/php-sdk/bytes/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/bytes/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/bytes/composer.json b/seed/php-sdk/bytes/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/bytes/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/bytes/phpstan.neon b/seed/php-sdk/bytes/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/bytes/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/bytes/phpunit.xml b/seed/php-sdk/bytes/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/bytes/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/bytes/src/Placeholder/Placeholder.php b/seed/php-sdk/bytes/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/bytes/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/bytes/tests/Core/RawClient.php b/seed/php-sdk/bytes/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/bytes/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/circular-references-advanced/.github/workflows/ci.yml b/seed/php-sdk/circular-references-advanced/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/circular-references-advanced/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/circular-references-advanced/.gitignore b/seed/php-sdk/circular-references-advanced/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/circular-references-advanced/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/circular-references-advanced/Core/RawClient.php b/seed/php-sdk/circular-references-advanced/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/circular-references-advanced/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/circular-references-advanced/composer.json b/seed/php-sdk/circular-references-advanced/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/circular-references-advanced/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/circular-references-advanced/phpstan.neon b/seed/php-sdk/circular-references-advanced/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/circular-references-advanced/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/circular-references-advanced/phpunit.xml b/seed/php-sdk/circular-references-advanced/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/circular-references-advanced/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/circular-references-advanced/src/Placeholder/Placeholder.php b/seed/php-sdk/circular-references-advanced/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/circular-references-advanced/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/circular-references-advanced/tests/Core/RawClient.php b/seed/php-sdk/circular-references-advanced/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/circular-references-advanced/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/circular-references/.github/workflows/ci.yml b/seed/php-sdk/circular-references/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/circular-references/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/circular-references/.gitignore b/seed/php-sdk/circular-references/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/circular-references/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/circular-references/Core/RawClient.php b/seed/php-sdk/circular-references/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/circular-references/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/circular-references/composer.json b/seed/php-sdk/circular-references/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/circular-references/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/circular-references/phpstan.neon b/seed/php-sdk/circular-references/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/circular-references/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/circular-references/phpunit.xml b/seed/php-sdk/circular-references/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/circular-references/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/circular-references/src/Placeholder/Placeholder.php b/seed/php-sdk/circular-references/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/circular-references/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/circular-references/tests/Core/RawClient.php b/seed/php-sdk/circular-references/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/circular-references/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/cross-package-type-names/.github/workflows/ci.yml b/seed/php-sdk/cross-package-type-names/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/cross-package-type-names/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/cross-package-type-names/.gitignore b/seed/php-sdk/cross-package-type-names/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/cross-package-type-names/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/cross-package-type-names/Core/RawClient.php b/seed/php-sdk/cross-package-type-names/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/cross-package-type-names/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/cross-package-type-names/composer.json b/seed/php-sdk/cross-package-type-names/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/cross-package-type-names/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/cross-package-type-names/phpstan.neon b/seed/php-sdk/cross-package-type-names/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/cross-package-type-names/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/cross-package-type-names/phpunit.xml b/seed/php-sdk/cross-package-type-names/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/cross-package-type-names/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/cross-package-type-names/src/Placeholder/Placeholder.php b/seed/php-sdk/cross-package-type-names/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/cross-package-type-names/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/cross-package-type-names/tests/Core/RawClient.php b/seed/php-sdk/cross-package-type-names/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/cross-package-type-names/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/custom-auth/.github/workflows/ci.yml b/seed/php-sdk/custom-auth/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/custom-auth/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/custom-auth/.gitignore b/seed/php-sdk/custom-auth/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/custom-auth/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/custom-auth/Core/RawClient.php b/seed/php-sdk/custom-auth/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/custom-auth/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/custom-auth/composer.json b/seed/php-sdk/custom-auth/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/custom-auth/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/custom-auth/phpstan.neon b/seed/php-sdk/custom-auth/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/custom-auth/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/custom-auth/phpunit.xml b/seed/php-sdk/custom-auth/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/custom-auth/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/custom-auth/src/Placeholder/Placeholder.php b/seed/php-sdk/custom-auth/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/custom-auth/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/custom-auth/tests/Core/RawClient.php b/seed/php-sdk/custom-auth/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/custom-auth/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/enum/.github/workflows/ci.yml b/seed/php-sdk/enum/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/enum/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/enum/.gitignore b/seed/php-sdk/enum/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/enum/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/enum/Core/RawClient.php b/seed/php-sdk/enum/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/enum/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/enum/composer.json b/seed/php-sdk/enum/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/enum/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/enum/phpstan.neon b/seed/php-sdk/enum/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/enum/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/enum/phpunit.xml b/seed/php-sdk/enum/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/enum/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/enum/src/Placeholder/Placeholder.php b/seed/php-sdk/enum/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/enum/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/enum/tests/Core/RawClient.php b/seed/php-sdk/enum/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/enum/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/error-property/.github/workflows/ci.yml b/seed/php-sdk/error-property/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/error-property/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/error-property/.gitignore b/seed/php-sdk/error-property/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/error-property/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/error-property/Core/RawClient.php b/seed/php-sdk/error-property/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/error-property/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/error-property/composer.json b/seed/php-sdk/error-property/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/error-property/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/error-property/phpstan.neon b/seed/php-sdk/error-property/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/error-property/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/error-property/phpunit.xml b/seed/php-sdk/error-property/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/error-property/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/error-property/src/Placeholder/Placeholder.php b/seed/php-sdk/error-property/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/error-property/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/error-property/tests/Core/RawClient.php b/seed/php-sdk/error-property/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/error-property/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/examples/.github/workflows/ci.yml b/seed/php-sdk/examples/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/examples/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/examples/.gitignore b/seed/php-sdk/examples/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/examples/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/examples/Core/RawClient.php b/seed/php-sdk/examples/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/examples/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/examples/composer.json b/seed/php-sdk/examples/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/examples/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/examples/phpstan.neon b/seed/php-sdk/examples/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/examples/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/examples/phpunit.xml b/seed/php-sdk/examples/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/examples/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/examples/src/Placeholder/Placeholder.php b/seed/php-sdk/examples/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/examples/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/examples/tests/Core/RawClient.php b/seed/php-sdk/examples/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/examples/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/exhaustive/.github/workflows/ci.yml b/seed/php-sdk/exhaustive/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/exhaustive/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/exhaustive/.gitignore b/seed/php-sdk/exhaustive/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/exhaustive/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/exhaustive/Core/RawClient.php b/seed/php-sdk/exhaustive/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/exhaustive/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/exhaustive/composer.json b/seed/php-sdk/exhaustive/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/exhaustive/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/exhaustive/phpstan.neon b/seed/php-sdk/exhaustive/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/exhaustive/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/exhaustive/phpunit.xml b/seed/php-sdk/exhaustive/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/exhaustive/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/exhaustive/src/Placeholder/Placeholder.php b/seed/php-sdk/exhaustive/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/exhaustive/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/exhaustive/tests/Core/RawClient.php b/seed/php-sdk/exhaustive/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/exhaustive/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/extends/.github/workflows/ci.yml b/seed/php-sdk/extends/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/extends/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/extends/.gitignore b/seed/php-sdk/extends/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/extends/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/extends/Core/RawClient.php b/seed/php-sdk/extends/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/extends/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/extends/composer.json b/seed/php-sdk/extends/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/extends/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/extends/phpstan.neon b/seed/php-sdk/extends/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/extends/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/extends/phpunit.xml b/seed/php-sdk/extends/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/extends/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/extends/src/Placeholder/Placeholder.php b/seed/php-sdk/extends/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/extends/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/extends/tests/Core/RawClient.php b/seed/php-sdk/extends/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/extends/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/extra-properties/.github/workflows/ci.yml b/seed/php-sdk/extra-properties/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/extra-properties/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/extra-properties/.gitignore b/seed/php-sdk/extra-properties/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/extra-properties/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/extra-properties/Core/RawClient.php b/seed/php-sdk/extra-properties/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/extra-properties/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/extra-properties/composer.json b/seed/php-sdk/extra-properties/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/extra-properties/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/extra-properties/phpstan.neon b/seed/php-sdk/extra-properties/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/extra-properties/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/extra-properties/phpunit.xml b/seed/php-sdk/extra-properties/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/extra-properties/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/extra-properties/src/Placeholder/Placeholder.php b/seed/php-sdk/extra-properties/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/extra-properties/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/extra-properties/tests/Core/RawClient.php b/seed/php-sdk/extra-properties/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/extra-properties/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/file-download/.github/workflows/ci.yml b/seed/php-sdk/file-download/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/file-download/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/file-download/.gitignore b/seed/php-sdk/file-download/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/file-download/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/file-download/Core/RawClient.php b/seed/php-sdk/file-download/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/file-download/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/file-download/composer.json b/seed/php-sdk/file-download/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/file-download/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/file-download/phpstan.neon b/seed/php-sdk/file-download/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/file-download/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/file-download/phpunit.xml b/seed/php-sdk/file-download/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/file-download/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/file-download/src/Placeholder/Placeholder.php b/seed/php-sdk/file-download/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/file-download/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/file-download/tests/Core/RawClient.php b/seed/php-sdk/file-download/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/file-download/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/file-upload/.github/workflows/ci.yml b/seed/php-sdk/file-upload/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/file-upload/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/file-upload/.gitignore b/seed/php-sdk/file-upload/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/file-upload/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/file-upload/Core/RawClient.php b/seed/php-sdk/file-upload/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/file-upload/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/file-upload/composer.json b/seed/php-sdk/file-upload/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/file-upload/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/file-upload/phpstan.neon b/seed/php-sdk/file-upload/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/file-upload/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/file-upload/phpunit.xml b/seed/php-sdk/file-upload/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/file-upload/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/file-upload/src/Placeholder/Placeholder.php b/seed/php-sdk/file-upload/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/file-upload/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/file-upload/tests/Core/RawClient.php b/seed/php-sdk/file-upload/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/file-upload/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/folders/.github/workflows/ci.yml b/seed/php-sdk/folders/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/folders/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/folders/.gitignore b/seed/php-sdk/folders/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/folders/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/folders/Core/RawClient.php b/seed/php-sdk/folders/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/folders/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/folders/composer.json b/seed/php-sdk/folders/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/folders/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/folders/phpstan.neon b/seed/php-sdk/folders/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/folders/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/folders/phpunit.xml b/seed/php-sdk/folders/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/folders/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/folders/src/Placeholder/Placeholder.php b/seed/php-sdk/folders/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/folders/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/folders/tests/Core/RawClient.php b/seed/php-sdk/folders/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/folders/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/grpc-proto-exhaustive/.github/workflows/ci.yml b/seed/php-sdk/grpc-proto-exhaustive/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/grpc-proto-exhaustive/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/grpc-proto-exhaustive/.gitignore b/seed/php-sdk/grpc-proto-exhaustive/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/grpc-proto-exhaustive/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/grpc-proto-exhaustive/Core/RawClient.php b/seed/php-sdk/grpc-proto-exhaustive/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/grpc-proto-exhaustive/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/grpc-proto-exhaustive/composer.json b/seed/php-sdk/grpc-proto-exhaustive/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/grpc-proto-exhaustive/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/grpc-proto-exhaustive/phpstan.neon b/seed/php-sdk/grpc-proto-exhaustive/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/grpc-proto-exhaustive/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/grpc-proto-exhaustive/phpunit.xml b/seed/php-sdk/grpc-proto-exhaustive/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/grpc-proto-exhaustive/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/grpc-proto-exhaustive/src/Placeholder/Placeholder.php b/seed/php-sdk/grpc-proto-exhaustive/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/grpc-proto-exhaustive/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/grpc-proto-exhaustive/tests/Core/RawClient.php b/seed/php-sdk/grpc-proto-exhaustive/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/grpc-proto-exhaustive/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/grpc-proto/.github/workflows/ci.yml b/seed/php-sdk/grpc-proto/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/grpc-proto/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/grpc-proto/.gitignore b/seed/php-sdk/grpc-proto/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/grpc-proto/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/grpc-proto/Core/RawClient.php b/seed/php-sdk/grpc-proto/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/grpc-proto/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/grpc-proto/composer.json b/seed/php-sdk/grpc-proto/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/grpc-proto/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/grpc-proto/phpstan.neon b/seed/php-sdk/grpc-proto/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/grpc-proto/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/grpc-proto/phpunit.xml b/seed/php-sdk/grpc-proto/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/grpc-proto/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/grpc-proto/src/Placeholder/Placeholder.php b/seed/php-sdk/grpc-proto/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/grpc-proto/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/grpc-proto/tests/Core/RawClient.php b/seed/php-sdk/grpc-proto/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/grpc-proto/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/idempotency-headers/.github/workflows/ci.yml b/seed/php-sdk/idempotency-headers/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/idempotency-headers/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/idempotency-headers/.gitignore b/seed/php-sdk/idempotency-headers/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/idempotency-headers/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/idempotency-headers/Core/RawClient.php b/seed/php-sdk/idempotency-headers/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/idempotency-headers/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/idempotency-headers/composer.json b/seed/php-sdk/idempotency-headers/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/idempotency-headers/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/idempotency-headers/phpstan.neon b/seed/php-sdk/idempotency-headers/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/idempotency-headers/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/idempotency-headers/phpunit.xml b/seed/php-sdk/idempotency-headers/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/idempotency-headers/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/idempotency-headers/src/Placeholder/Placeholder.php b/seed/php-sdk/idempotency-headers/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/idempotency-headers/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/idempotency-headers/tests/Core/RawClient.php b/seed/php-sdk/idempotency-headers/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/idempotency-headers/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/imdb/.github/workflows/ci.yml b/seed/php-sdk/imdb/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/imdb/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/imdb/.gitignore b/seed/php-sdk/imdb/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/imdb/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/imdb/Core/RawClient.php b/seed/php-sdk/imdb/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/imdb/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/imdb/composer.json b/seed/php-sdk/imdb/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/imdb/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/imdb/phpstan.neon b/seed/php-sdk/imdb/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/imdb/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/imdb/phpunit.xml b/seed/php-sdk/imdb/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/imdb/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/imdb/src/Placeholder/Placeholder.php b/seed/php-sdk/imdb/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/imdb/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/imdb/tests/Core/RawClient.php b/seed/php-sdk/imdb/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/imdb/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/literal/.github/workflows/ci.yml b/seed/php-sdk/literal/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/literal/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/literal/.gitignore b/seed/php-sdk/literal/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/literal/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/literal/Core/RawClient.php b/seed/php-sdk/literal/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/literal/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/literal/composer.json b/seed/php-sdk/literal/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/literal/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/literal/phpstan.neon b/seed/php-sdk/literal/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/literal/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/literal/phpunit.xml b/seed/php-sdk/literal/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/literal/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/literal/src/Placeholder/Placeholder.php b/seed/php-sdk/literal/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/literal/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/literal/tests/Core/RawClient.php b/seed/php-sdk/literal/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/literal/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/mixed-case/.github/workflows/ci.yml b/seed/php-sdk/mixed-case/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/mixed-case/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/mixed-case/.gitignore b/seed/php-sdk/mixed-case/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/mixed-case/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/mixed-case/Core/RawClient.php b/seed/php-sdk/mixed-case/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/mixed-case/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/mixed-case/composer.json b/seed/php-sdk/mixed-case/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/mixed-case/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/mixed-case/phpstan.neon b/seed/php-sdk/mixed-case/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/mixed-case/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/mixed-case/phpunit.xml b/seed/php-sdk/mixed-case/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/mixed-case/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/mixed-case/src/Placeholder/Placeholder.php b/seed/php-sdk/mixed-case/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/mixed-case/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/mixed-case/tests/Core/RawClient.php b/seed/php-sdk/mixed-case/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/mixed-case/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/mixed-file-directory/.github/workflows/ci.yml b/seed/php-sdk/mixed-file-directory/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/mixed-file-directory/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/mixed-file-directory/.gitignore b/seed/php-sdk/mixed-file-directory/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/mixed-file-directory/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/mixed-file-directory/Core/RawClient.php b/seed/php-sdk/mixed-file-directory/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/mixed-file-directory/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/mixed-file-directory/composer.json b/seed/php-sdk/mixed-file-directory/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/mixed-file-directory/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/mixed-file-directory/phpstan.neon b/seed/php-sdk/mixed-file-directory/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/mixed-file-directory/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/mixed-file-directory/phpunit.xml b/seed/php-sdk/mixed-file-directory/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/mixed-file-directory/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/mixed-file-directory/src/Placeholder/Placeholder.php b/seed/php-sdk/mixed-file-directory/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/mixed-file-directory/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/mixed-file-directory/tests/Core/RawClient.php b/seed/php-sdk/mixed-file-directory/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/mixed-file-directory/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-line-docs/.github/workflows/ci.yml b/seed/php-sdk/multi-line-docs/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/multi-line-docs/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/multi-line-docs/.gitignore b/seed/php-sdk/multi-line-docs/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/multi-line-docs/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/multi-line-docs/Core/RawClient.php b/seed/php-sdk/multi-line-docs/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/multi-line-docs/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-line-docs/composer.json b/seed/php-sdk/multi-line-docs/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/multi-line-docs/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/multi-line-docs/phpstan.neon b/seed/php-sdk/multi-line-docs/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/multi-line-docs/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/multi-line-docs/phpunit.xml b/seed/php-sdk/multi-line-docs/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/multi-line-docs/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/multi-line-docs/src/Placeholder/Placeholder.php b/seed/php-sdk/multi-line-docs/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/multi-line-docs/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-line-docs/tests/Core/RawClient.php b/seed/php-sdk/multi-line-docs/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/multi-line-docs/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-url-environment-no-default/.github/workflows/ci.yml b/seed/php-sdk/multi-url-environment-no-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment-no-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/multi-url-environment-no-default/.gitignore b/seed/php-sdk/multi-url-environment-no-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment-no-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/multi-url-environment-no-default/Core/RawClient.php b/seed/php-sdk/multi-url-environment-no-default/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment-no-default/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-url-environment-no-default/composer.json b/seed/php-sdk/multi-url-environment-no-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment-no-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/multi-url-environment-no-default/phpstan.neon b/seed/php-sdk/multi-url-environment-no-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment-no-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/multi-url-environment-no-default/phpunit.xml b/seed/php-sdk/multi-url-environment-no-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment-no-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/multi-url-environment-no-default/src/Placeholder/Placeholder.php b/seed/php-sdk/multi-url-environment-no-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment-no-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-url-environment-no-default/tests/Core/RawClient.php b/seed/php-sdk/multi-url-environment-no-default/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment-no-default/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-url-environment/.github/workflows/ci.yml b/seed/php-sdk/multi-url-environment/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/multi-url-environment/.gitignore b/seed/php-sdk/multi-url-environment/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/multi-url-environment/Core/RawClient.php b/seed/php-sdk/multi-url-environment/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-url-environment/composer.json b/seed/php-sdk/multi-url-environment/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/multi-url-environment/phpstan.neon b/seed/php-sdk/multi-url-environment/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/multi-url-environment/phpunit.xml b/seed/php-sdk/multi-url-environment/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/multi-url-environment/src/Placeholder/Placeholder.php b/seed/php-sdk/multi-url-environment/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/multi-url-environment/tests/Core/RawClient.php b/seed/php-sdk/multi-url-environment/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/multi-url-environment/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/no-environment/.github/workflows/ci.yml b/seed/php-sdk/no-environment/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/no-environment/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/no-environment/.gitignore b/seed/php-sdk/no-environment/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/no-environment/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/no-environment/Core/RawClient.php b/seed/php-sdk/no-environment/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/no-environment/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/no-environment/composer.json b/seed/php-sdk/no-environment/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/no-environment/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/no-environment/phpstan.neon b/seed/php-sdk/no-environment/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/no-environment/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/no-environment/phpunit.xml b/seed/php-sdk/no-environment/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/no-environment/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/no-environment/src/Placeholder/Placeholder.php b/seed/php-sdk/no-environment/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/no-environment/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/no-environment/tests/Core/RawClient.php b/seed/php-sdk/no-environment/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/no-environment/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-default/.github/workflows/ci.yml b/seed/php-sdk/oauth-client-credentials-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-default/.gitignore b/seed/php-sdk/oauth-client-credentials-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-default/Core/RawClient.php b/seed/php-sdk/oauth-client-credentials-default/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-default/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-default/composer.json b/seed/php-sdk/oauth-client-credentials-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-default/phpstan.neon b/seed/php-sdk/oauth-client-credentials-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-default/phpunit.xml b/seed/php-sdk/oauth-client-credentials-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-default/src/Placeholder/Placeholder.php b/seed/php-sdk/oauth-client-credentials-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-default/tests/Core/RawClient.php b/seed/php-sdk/oauth-client-credentials-default/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-default/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-environment-variables/.github/workflows/ci.yml b/seed/php-sdk/oauth-client-credentials-environment-variables/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-environment-variables/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-environment-variables/.gitignore b/seed/php-sdk/oauth-client-credentials-environment-variables/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-environment-variables/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-environment-variables/Core/RawClient.php b/seed/php-sdk/oauth-client-credentials-environment-variables/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-environment-variables/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-environment-variables/composer.json b/seed/php-sdk/oauth-client-credentials-environment-variables/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-environment-variables/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-environment-variables/phpstan.neon b/seed/php-sdk/oauth-client-credentials-environment-variables/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-environment-variables/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-environment-variables/phpunit.xml b/seed/php-sdk/oauth-client-credentials-environment-variables/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-environment-variables/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-environment-variables/src/Placeholder/Placeholder.php b/seed/php-sdk/oauth-client-credentials-environment-variables/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-environment-variables/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-environment-variables/tests/Core/RawClient.php b/seed/php-sdk/oauth-client-credentials-environment-variables/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-environment-variables/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-nested-root/.github/workflows/ci.yml b/seed/php-sdk/oauth-client-credentials-nested-root/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-nested-root/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-nested-root/.gitignore b/seed/php-sdk/oauth-client-credentials-nested-root/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-nested-root/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-nested-root/Core/RawClient.php b/seed/php-sdk/oauth-client-credentials-nested-root/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-nested-root/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-nested-root/composer.json b/seed/php-sdk/oauth-client-credentials-nested-root/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-nested-root/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-nested-root/phpstan.neon b/seed/php-sdk/oauth-client-credentials-nested-root/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-nested-root/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-nested-root/phpunit.xml b/seed/php-sdk/oauth-client-credentials-nested-root/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-nested-root/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials-nested-root/src/Placeholder/Placeholder.php b/seed/php-sdk/oauth-client-credentials-nested-root/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-nested-root/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials-nested-root/tests/Core/RawClient.php b/seed/php-sdk/oauth-client-credentials-nested-root/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials-nested-root/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials/.github/workflows/ci.yml b/seed/php-sdk/oauth-client-credentials/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials/.gitignore b/seed/php-sdk/oauth-client-credentials/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials/Core/RawClient.php b/seed/php-sdk/oauth-client-credentials/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials/composer.json b/seed/php-sdk/oauth-client-credentials/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/oauth-client-credentials/phpstan.neon b/seed/php-sdk/oauth-client-credentials/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials/phpunit.xml b/seed/php-sdk/oauth-client-credentials/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/oauth-client-credentials/src/Placeholder/Placeholder.php b/seed/php-sdk/oauth-client-credentials/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/oauth-client-credentials/tests/Core/RawClient.php b/seed/php-sdk/oauth-client-credentials/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/oauth-client-credentials/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/object/.github/workflows/ci.yml b/seed/php-sdk/object/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/object/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/object/.gitignore b/seed/php-sdk/object/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/object/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/object/Core/RawClient.php b/seed/php-sdk/object/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/object/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/object/composer.json b/seed/php-sdk/object/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/object/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/object/phpstan.neon b/seed/php-sdk/object/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/object/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/object/phpunit.xml b/seed/php-sdk/object/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/object/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/object/src/Placeholder/Placeholder.php b/seed/php-sdk/object/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/object/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/object/tests/Core/RawClient.php b/seed/php-sdk/object/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/object/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/objects-with-imports/.github/workflows/ci.yml b/seed/php-sdk/objects-with-imports/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/objects-with-imports/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/objects-with-imports/.gitignore b/seed/php-sdk/objects-with-imports/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/objects-with-imports/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/objects-with-imports/Core/RawClient.php b/seed/php-sdk/objects-with-imports/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/objects-with-imports/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/objects-with-imports/composer.json b/seed/php-sdk/objects-with-imports/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/objects-with-imports/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/objects-with-imports/phpstan.neon b/seed/php-sdk/objects-with-imports/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/objects-with-imports/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/objects-with-imports/phpunit.xml b/seed/php-sdk/objects-with-imports/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/objects-with-imports/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/objects-with-imports/src/Placeholder/Placeholder.php b/seed/php-sdk/objects-with-imports/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/objects-with-imports/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/objects-with-imports/tests/Core/RawClient.php b/seed/php-sdk/objects-with-imports/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/objects-with-imports/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/optional/.github/workflows/ci.yml b/seed/php-sdk/optional/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/optional/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/optional/.gitignore b/seed/php-sdk/optional/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/optional/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/optional/Core/RawClient.php b/seed/php-sdk/optional/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/optional/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/optional/composer.json b/seed/php-sdk/optional/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/optional/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/optional/phpstan.neon b/seed/php-sdk/optional/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/optional/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/optional/phpunit.xml b/seed/php-sdk/optional/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/optional/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/optional/src/Placeholder/Placeholder.php b/seed/php-sdk/optional/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/optional/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/optional/tests/Core/RawClient.php b/seed/php-sdk/optional/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/optional/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/package-yml/.github/workflows/ci.yml b/seed/php-sdk/package-yml/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/package-yml/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/package-yml/.gitignore b/seed/php-sdk/package-yml/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/package-yml/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/package-yml/Core/RawClient.php b/seed/php-sdk/package-yml/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/package-yml/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/package-yml/composer.json b/seed/php-sdk/package-yml/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/package-yml/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/package-yml/phpstan.neon b/seed/php-sdk/package-yml/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/package-yml/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/package-yml/phpunit.xml b/seed/php-sdk/package-yml/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/package-yml/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/package-yml/src/Placeholder/Placeholder.php b/seed/php-sdk/package-yml/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/package-yml/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/package-yml/tests/Core/RawClient.php b/seed/php-sdk/package-yml/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/package-yml/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/pagination/.github/workflows/ci.yml b/seed/php-sdk/pagination/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/pagination/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/pagination/.gitignore b/seed/php-sdk/pagination/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/pagination/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/pagination/Core/RawClient.php b/seed/php-sdk/pagination/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/pagination/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/pagination/composer.json b/seed/php-sdk/pagination/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/pagination/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/pagination/phpstan.neon b/seed/php-sdk/pagination/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/pagination/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/pagination/phpunit.xml b/seed/php-sdk/pagination/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/pagination/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/pagination/src/Placeholder/Placeholder.php b/seed/php-sdk/pagination/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/pagination/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/pagination/tests/Core/RawClient.php b/seed/php-sdk/pagination/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/pagination/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/plain-text/.github/workflows/ci.yml b/seed/php-sdk/plain-text/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/plain-text/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/plain-text/.gitignore b/seed/php-sdk/plain-text/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/plain-text/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/plain-text/Core/RawClient.php b/seed/php-sdk/plain-text/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/plain-text/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/plain-text/composer.json b/seed/php-sdk/plain-text/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/plain-text/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/plain-text/phpstan.neon b/seed/php-sdk/plain-text/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/plain-text/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/plain-text/phpunit.xml b/seed/php-sdk/plain-text/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/plain-text/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/plain-text/src/Placeholder/Placeholder.php b/seed/php-sdk/plain-text/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/plain-text/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/plain-text/tests/Core/RawClient.php b/seed/php-sdk/plain-text/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/plain-text/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/query-parameters/.github/workflows/ci.yml b/seed/php-sdk/query-parameters/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/query-parameters/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/query-parameters/.gitignore b/seed/php-sdk/query-parameters/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/query-parameters/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/query-parameters/Core/RawClient.php b/seed/php-sdk/query-parameters/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/query-parameters/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/query-parameters/composer.json b/seed/php-sdk/query-parameters/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/query-parameters/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/query-parameters/phpstan.neon b/seed/php-sdk/query-parameters/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/query-parameters/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/query-parameters/phpunit.xml b/seed/php-sdk/query-parameters/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/query-parameters/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/query-parameters/src/Placeholder/Placeholder.php b/seed/php-sdk/query-parameters/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/query-parameters/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/query-parameters/tests/Core/RawClient.php b/seed/php-sdk/query-parameters/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/query-parameters/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/reserved-keywords/.github/workflows/ci.yml b/seed/php-sdk/reserved-keywords/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/reserved-keywords/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/reserved-keywords/.gitignore b/seed/php-sdk/reserved-keywords/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/reserved-keywords/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/reserved-keywords/Core/RawClient.php b/seed/php-sdk/reserved-keywords/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/reserved-keywords/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/reserved-keywords/composer.json b/seed/php-sdk/reserved-keywords/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/reserved-keywords/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/reserved-keywords/phpstan.neon b/seed/php-sdk/reserved-keywords/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/reserved-keywords/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/reserved-keywords/phpunit.xml b/seed/php-sdk/reserved-keywords/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/reserved-keywords/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/reserved-keywords/src/Placeholder/Placeholder.php b/seed/php-sdk/reserved-keywords/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/reserved-keywords/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/reserved-keywords/tests/Core/RawClient.php b/seed/php-sdk/reserved-keywords/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/reserved-keywords/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/response-property/.github/workflows/ci.yml b/seed/php-sdk/response-property/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/response-property/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/response-property/.gitignore b/seed/php-sdk/response-property/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/response-property/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/response-property/Core/RawClient.php b/seed/php-sdk/response-property/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/response-property/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/response-property/composer.json b/seed/php-sdk/response-property/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/response-property/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/response-property/phpstan.neon b/seed/php-sdk/response-property/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/response-property/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/response-property/phpunit.xml b/seed/php-sdk/response-property/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/response-property/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/response-property/src/Placeholder/Placeholder.php b/seed/php-sdk/response-property/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/response-property/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/response-property/tests/Core/RawClient.php b/seed/php-sdk/response-property/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/response-property/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/seed.yml b/seed/php-sdk/seed.yml
index 38a29333320..9ce0fa14643 100644
--- a/seed/php-sdk/seed.yml
+++ b/seed/php-sdk/seed.yml
@@ -9,10 +9,12 @@ test:
     buildCommand:
       - pnpm --filter @fern-api/php-sdk dist:cli
     runCommand: node sdk/dist/bundle.cjs
-
 language: php
 generatorType: SDK
 defaultOutputMode: github
 fixtures: {}
-scripts: []
+scripts:
+  - docker: composer:2.7.9
+    commands:
+      - composer install && composer build && composer analyze && composer test
 allowedFailures: []
diff --git a/seed/php-sdk/simple-fhir/.github/workflows/ci.yml b/seed/php-sdk/simple-fhir/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/simple-fhir/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/simple-fhir/.gitignore b/seed/php-sdk/simple-fhir/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/simple-fhir/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/simple-fhir/Core/RawClient.php b/seed/php-sdk/simple-fhir/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/simple-fhir/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/simple-fhir/composer.json b/seed/php-sdk/simple-fhir/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/simple-fhir/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/simple-fhir/phpstan.neon b/seed/php-sdk/simple-fhir/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/simple-fhir/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/simple-fhir/phpunit.xml b/seed/php-sdk/simple-fhir/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/simple-fhir/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/simple-fhir/src/Placeholder/Placeholder.php b/seed/php-sdk/simple-fhir/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/simple-fhir/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/simple-fhir/tests/Core/RawClient.php b/seed/php-sdk/simple-fhir/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/simple-fhir/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/single-url-environment-default/.github/workflows/ci.yml b/seed/php-sdk/single-url-environment-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/single-url-environment-default/.gitignore b/seed/php-sdk/single-url-environment-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/single-url-environment-default/Core/RawClient.php b/seed/php-sdk/single-url-environment-default/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-default/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/single-url-environment-default/composer.json b/seed/php-sdk/single-url-environment-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/single-url-environment-default/phpstan.neon b/seed/php-sdk/single-url-environment-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/single-url-environment-default/phpunit.xml b/seed/php-sdk/single-url-environment-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/single-url-environment-default/src/Placeholder/Placeholder.php b/seed/php-sdk/single-url-environment-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/single-url-environment-default/tests/Core/RawClient.php b/seed/php-sdk/single-url-environment-default/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-default/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/single-url-environment-no-default/.github/workflows/ci.yml b/seed/php-sdk/single-url-environment-no-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-no-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/single-url-environment-no-default/.gitignore b/seed/php-sdk/single-url-environment-no-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-no-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/single-url-environment-no-default/Core/RawClient.php b/seed/php-sdk/single-url-environment-no-default/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-no-default/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/single-url-environment-no-default/composer.json b/seed/php-sdk/single-url-environment-no-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-no-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/single-url-environment-no-default/phpstan.neon b/seed/php-sdk/single-url-environment-no-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-no-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/single-url-environment-no-default/phpunit.xml b/seed/php-sdk/single-url-environment-no-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-no-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/single-url-environment-no-default/src/Placeholder/Placeholder.php b/seed/php-sdk/single-url-environment-no-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-no-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/single-url-environment-no-default/tests/Core/RawClient.php b/seed/php-sdk/single-url-environment-no-default/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/single-url-environment-no-default/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/streaming-parameter/.github/workflows/ci.yml b/seed/php-sdk/streaming-parameter/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/streaming-parameter/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/streaming-parameter/.gitignore b/seed/php-sdk/streaming-parameter/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/streaming-parameter/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/streaming-parameter/Core/RawClient.php b/seed/php-sdk/streaming-parameter/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/streaming-parameter/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/streaming-parameter/composer.json b/seed/php-sdk/streaming-parameter/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/streaming-parameter/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/streaming-parameter/phpstan.neon b/seed/php-sdk/streaming-parameter/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/streaming-parameter/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/streaming-parameter/phpunit.xml b/seed/php-sdk/streaming-parameter/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/streaming-parameter/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/streaming-parameter/src/Placeholder/Placeholder.php b/seed/php-sdk/streaming-parameter/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/streaming-parameter/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/streaming-parameter/tests/Core/RawClient.php b/seed/php-sdk/streaming-parameter/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/streaming-parameter/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/streaming/.github/workflows/ci.yml b/seed/php-sdk/streaming/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/streaming/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/streaming/.gitignore b/seed/php-sdk/streaming/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/streaming/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/streaming/Core/RawClient.php b/seed/php-sdk/streaming/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/streaming/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/streaming/composer.json b/seed/php-sdk/streaming/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/streaming/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/streaming/phpstan.neon b/seed/php-sdk/streaming/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/streaming/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/streaming/phpunit.xml b/seed/php-sdk/streaming/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/streaming/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/streaming/src/Placeholder/Placeholder.php b/seed/php-sdk/streaming/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/streaming/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/streaming/tests/Core/RawClient.php b/seed/php-sdk/streaming/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/streaming/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/trace/.github/workflows/ci.yml b/seed/php-sdk/trace/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/trace/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/trace/.gitignore b/seed/php-sdk/trace/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/trace/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/trace/Core/RawClient.php b/seed/php-sdk/trace/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/trace/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/trace/composer.json b/seed/php-sdk/trace/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/trace/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/trace/phpstan.neon b/seed/php-sdk/trace/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/trace/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/trace/phpunit.xml b/seed/php-sdk/trace/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/trace/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/trace/src/Placeholder/Placeholder.php b/seed/php-sdk/trace/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/trace/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/trace/tests/Core/RawClient.php b/seed/php-sdk/trace/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/trace/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/undiscriminated-unions/.github/workflows/ci.yml b/seed/php-sdk/undiscriminated-unions/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/undiscriminated-unions/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/undiscriminated-unions/.gitignore b/seed/php-sdk/undiscriminated-unions/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/undiscriminated-unions/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/undiscriminated-unions/Core/RawClient.php b/seed/php-sdk/undiscriminated-unions/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/undiscriminated-unions/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/undiscriminated-unions/composer.json b/seed/php-sdk/undiscriminated-unions/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/undiscriminated-unions/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/undiscriminated-unions/phpstan.neon b/seed/php-sdk/undiscriminated-unions/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/undiscriminated-unions/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/undiscriminated-unions/phpunit.xml b/seed/php-sdk/undiscriminated-unions/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/undiscriminated-unions/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/undiscriminated-unions/src/Placeholder/Placeholder.php b/seed/php-sdk/undiscriminated-unions/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/undiscriminated-unions/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/undiscriminated-unions/tests/Core/RawClient.php b/seed/php-sdk/undiscriminated-unions/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/undiscriminated-unions/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/unions/.github/workflows/ci.yml b/seed/php-sdk/unions/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/unions/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/unions/.gitignore b/seed/php-sdk/unions/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/unions/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/unions/Core/RawClient.php b/seed/php-sdk/unions/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/unions/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/unions/composer.json b/seed/php-sdk/unions/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/unions/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/unions/phpstan.neon b/seed/php-sdk/unions/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/unions/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/unions/phpunit.xml b/seed/php-sdk/unions/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/unions/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/unions/src/Placeholder/Placeholder.php b/seed/php-sdk/unions/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/unions/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/unions/tests/Core/RawClient.php b/seed/php-sdk/unions/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/unions/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/unknown/.github/workflows/ci.yml b/seed/php-sdk/unknown/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/unknown/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/unknown/.gitignore b/seed/php-sdk/unknown/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/unknown/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/unknown/Core/RawClient.php b/seed/php-sdk/unknown/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/unknown/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/unknown/composer.json b/seed/php-sdk/unknown/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/unknown/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/unknown/phpstan.neon b/seed/php-sdk/unknown/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/unknown/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/unknown/phpunit.xml b/seed/php-sdk/unknown/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/unknown/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/unknown/src/Placeholder/Placeholder.php b/seed/php-sdk/unknown/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/unknown/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/unknown/tests/Core/RawClient.php b/seed/php-sdk/unknown/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/unknown/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/validation/.github/workflows/ci.yml b/seed/php-sdk/validation/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/validation/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/validation/.gitignore b/seed/php-sdk/validation/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/validation/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/validation/Core/RawClient.php b/seed/php-sdk/validation/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/validation/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/validation/composer.json b/seed/php-sdk/validation/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/validation/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/validation/phpstan.neon b/seed/php-sdk/validation/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/validation/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/validation/phpunit.xml b/seed/php-sdk/validation/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/validation/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/validation/src/Placeholder/Placeholder.php b/seed/php-sdk/validation/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/validation/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/validation/tests/Core/RawClient.php b/seed/php-sdk/validation/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/validation/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/variables/.github/workflows/ci.yml b/seed/php-sdk/variables/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/variables/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/variables/.gitignore b/seed/php-sdk/variables/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/variables/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/variables/Core/RawClient.php b/seed/php-sdk/variables/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/variables/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/variables/composer.json b/seed/php-sdk/variables/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/variables/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/variables/phpstan.neon b/seed/php-sdk/variables/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/variables/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/variables/phpunit.xml b/seed/php-sdk/variables/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/variables/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/variables/src/Placeholder/Placeholder.php b/seed/php-sdk/variables/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/variables/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/variables/tests/Core/RawClient.php b/seed/php-sdk/variables/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/variables/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/version-no-default/.github/workflows/ci.yml b/seed/php-sdk/version-no-default/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/version-no-default/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/version-no-default/.gitignore b/seed/php-sdk/version-no-default/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/version-no-default/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/version-no-default/Core/RawClient.php b/seed/php-sdk/version-no-default/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/version-no-default/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/version-no-default/composer.json b/seed/php-sdk/version-no-default/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/version-no-default/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/version-no-default/phpstan.neon b/seed/php-sdk/version-no-default/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/version-no-default/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/version-no-default/phpunit.xml b/seed/php-sdk/version-no-default/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/version-no-default/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/version-no-default/src/Placeholder/Placeholder.php b/seed/php-sdk/version-no-default/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/version-no-default/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/version-no-default/tests/Core/RawClient.php b/seed/php-sdk/version-no-default/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/version-no-default/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/version/.github/workflows/ci.yml b/seed/php-sdk/version/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/version/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/version/.gitignore b/seed/php-sdk/version/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/version/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/version/Core/RawClient.php b/seed/php-sdk/version/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/version/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/version/composer.json b/seed/php-sdk/version/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/version/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/version/phpstan.neon b/seed/php-sdk/version/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/version/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/version/phpunit.xml b/seed/php-sdk/version/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/version/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/version/src/Placeholder/Placeholder.php b/seed/php-sdk/version/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/version/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/version/tests/Core/RawClient.php b/seed/php-sdk/version/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/version/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/websocket/.github/workflows/ci.yml b/seed/php-sdk/websocket/.github/workflows/ci.yml
new file mode 100644
index 00000000000..4b99e5562ee
--- /dev/null
+++ b/seed/php-sdk/websocket/.github/workflows/ci.yml
@@ -0,0 +1,46 @@
+name: ci
+
+on: [push]
+
+jobs:
+  compile:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Build
+        run: |
+          composer build
+
+  unit-tests:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+
+      - name: Setup Composer
+        uses: php-actions/composer@v6
+        with:
+          php_version: "8.1"
+          version: "2.7.9"
+
+      - name: Install tools
+        run: |
+          composer install
+
+      - name: Run Tests
+        run: |
+          composer test
\ No newline at end of file
diff --git a/seed/php-sdk/websocket/.gitignore b/seed/php-sdk/websocket/.gitignore
new file mode 100644
index 00000000000..f38efc46ade
--- /dev/null
+++ b/seed/php-sdk/websocket/.gitignore
@@ -0,0 +1,4 @@
+.php-cs-fixer.cache
+.phpunit.result.cache
+composer.lock
+vendor/
\ No newline at end of file
diff --git a/seed/php-sdk/websocket/Core/RawClient.php b/seed/php-sdk/websocket/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/websocket/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/websocket/composer.json b/seed/php-sdk/websocket/composer.json
new file mode 100644
index 00000000000..7f5821806d4
--- /dev/null
+++ b/seed/php-sdk/websocket/composer.json
@@ -0,0 +1,40 @@
+
+{
+  "name": "seed/seed",
+  "version": "0.0.1",
+  "description": "Seed PHP Library",
+  "keywords": [
+    "seed",
+    "api",
+    "sdk"
+  ],
+  "license": [],
+  "require": {
+    "php": "^8.1",
+    "ext-json": "*",
+    "guzzlehttp/guzzle": "^7.9"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^9.0",
+    "friendsofphp/php-cs-fixer": "3.5.0",
+    "phpstan/phpstan": "^1.12"
+  },
+  "autoload": {
+    "psr-4": {
+      "Seed\\": "src/"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "\\Seed\\Tests\\": "tests/"
+    }
+  },
+  "scripts": {
+    "build": [
+      "@php -l src",
+      "@php -l tests"
+    ],
+    "test": "phpunit",
+    "analyze": "phpstan analyze src"
+  }
+}
diff --git a/seed/php-sdk/websocket/phpstan.neon b/seed/php-sdk/websocket/phpstan.neon
new file mode 100644
index 00000000000..29a11a92a19
--- /dev/null
+++ b/seed/php-sdk/websocket/phpstan.neon
@@ -0,0 +1,5 @@
+parameters:
+    level: max
+    paths:
+        - src
+        - tests
\ No newline at end of file
diff --git a/seed/php-sdk/websocket/phpunit.xml b/seed/php-sdk/websocket/phpunit.xml
new file mode 100644
index 00000000000..54630a51163
--- /dev/null
+++ b/seed/php-sdk/websocket/phpunit.xml
@@ -0,0 +1,7 @@
+<phpunit bootstrap="vendor/autoload.php">
+    <testsuites>
+        <testsuite name="Test Suite">
+            <directory suffix="Test.php">tests</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
\ No newline at end of file
diff --git a/seed/php-sdk/websocket/src/Placeholder/Placeholder.php b/seed/php-sdk/websocket/src/Placeholder/Placeholder.php
new file mode 100644
index 00000000000..a0eb33a6b60
--- /dev/null
+++ b/seed/php-sdk/websocket/src/Placeholder/Placeholder.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Placeholder;
+
+class Placeholder
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}
diff --git a/seed/php-sdk/websocket/tests/Core/RawClient.php b/seed/php-sdk/websocket/tests/Core/RawClient.php
new file mode 100644
index 00000000000..f64e847550f
--- /dev/null
+++ b/seed/php-sdk/websocket/tests/Core/RawClient.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Seed\Core;
+
+class RawClient
+{
+    public function __construct()
+    {
+        // TODO: Implement me!
+    }
+}