diff --git a/blog/2025-12-10-Release-0.md b/blog/2025-12-10-Release-0.md new file mode 100644 index 000000000..01f38675e --- /dev/null +++ b/blog/2025-12-10-Release-0.md @@ -0,0 +1,166 @@ +--- +author: meshcloud +title: Release 2025.53.0 +--- + +Release period: 2025-12-03 to 2025-12-10 + +This release includes the following issues: +* Automatic User Access Control Assignment +* Edit User Access During Workspace and Project Creation +* Open GitHub Workflow Files Directly from Building Block Definition +* Improved Structure for Platform Authentication Configuration in meshPlatform API +* Runner Selection for Building Block Integrations +* Communication Email Header Logo in Preview and Sent Emails +* Communication Center Email Preview Matches Actual Emails +* Azure Subscription Name Enforcement +* Built-In Integrations Exposed via meshIntegration API +* Streamlined Adding User Access with Modal Dialog +* Drift Detection of Secrets for meshPlatform API v2-preview + + +## Ticket Details +### Automatic User Access Control Assignment +**Audience:** User
+ +#### Description +When you create a new project, you are now automatically added with the highest-ranking role available to you, +matching the existing behavior during workspace creation. Asides the Admin Area Workspace Management, where you +can still add yourself directly as a workspace manager, the "Add Myself" button has been removed from workspace +and project access control overview screens, streamlining the interface and reducing clutter. + +Note: This change only affects customers who have access to the new access control v2 feature. If you are using the +standard access control interface, this change does not apply to you. + +### Edit User Access During Workspace and Project Creation +**Audience:** User
+ +#### Description +You can now edit user access assignments directly during workspace and project creation. Previously, you could only add +or remove users during the creation process, but not modify their roles or expiration dates. This improvement allows +you to adjust access settings in the creation flow. + +Note: This change only affects customers who have access to the new access control v2 feature. If you are using the +standard access control interface, this change does not apply to you. + +### Open GitHub Workflow Files Directly from Building Block Definition +**Audience:** User
+ +#### Description +When configuring a GitHub Actions Building Block Definition, you can now open the workflow files directly in GitHub +from the meshPanel. This makes it easier to verify your configuration and review the workflow implementation without +manually navigating to the GitHub repository. + +#### How to use +In the Building Block Definition configuration, after entering your GitHub workflow file names (deploy and destroy +workflows), click the "Open workflow" button next to each field to open the corresponding workflow file in a new tab. +The button becomes available once you have provided the integration, repository, and branch details. + +### Improved Structure for Platform Authentication Configuration in meshPlatform API +**Audience:** User
+ +#### Description +The meshPlatform API v2-preview now uses an improved and more consistent structure for configuring platform authentication +credentials. The authentication configuration has been reorganized to use a unified `auth` pattern across +all cloud platforms (AWS, Azure, GCP, and AKS). This change makes it easier to understand and configure different +authentication methods (credentials vs. workload identity) by using a consistent structure with a `type` field +that clearly identifies the authentication method being used. + +#### How to use +If you are using the meshPlatform API preview-v2 to manage platform configurations, you need to update your API requests to +use the new structure. Please refer to the updated API documentation for detailed examples of the new configuration structure for each +platform type. + +### Runner Selection for Building Block Integrations +**Audience:** User
+ +#### Description +You can now select a specific building block runner when creating or editing integrations for GitHub, GitLab, +and Azure DevOps. This allows you to choose which runner will execute the building block definitions that use +this integration. + +#### How to use +When creating or editing an integration, a new "Building Block Runner" section appears below the integration +configuration. You can select from available runners that match the integration type (e.g., GitHub Workflow +runners for GitHub integrations). If you change the runner for an existing integration that stores secrets +(GitHub or Azure DevOps), you'll need to re-enter those secrets as they are encrypted per runner. + +### Communication Email Header Logo in Preview and Sent Emails +**Audience:** User
+ +#### Description +The email preview in the communication center now displays your organization's logo at the top of the message, matching +what recipients will see. Additionally, the logo display in actual sent emails has been improved to ensure consistent +and professional formatting regardless of the original logo size. + +#### How to use +When creating a communication, the email preview will show your configured logo at the top of the message. This preview +accurately reflects how the logo will appear in emails sent to workspace members, helping you ensure your communications +maintain a professional appearance. + +### Communication Center Email Preview Matches Actual Emails +**Audience:** User
+ +#### Description +When you create communications in the communication center, the email preview now shows exactly what recipients will +receive. The greeting and message content are now displayed in the same format in both the preview and the actual sent +emails. + +#### How to use +When creating a communication, use the email preview feature to see exactly how your message will appear to recipients. +The preview accurately reflects the final email layout, including the personalized greeting (when applicable) and the +message content. This helps you ensure your communication looks professional before sending it to workspace members. + +### Azure Subscription Name Enforcement +**Audience:** User
+ +#### Description +During Azure replication, meshStack now ensures that the Azure subscription name is correctly applied +according to the configured subscription name pattern. This step was added to the replication process to guarantee +that subscription names remain consistent with your naming conventions, even if they were changed manually or +through other means. + +### Built-In Integrations Exposed via meshIntegration API +**Audience:** User
+ +#### Description +The meshIntegration API now exposes built-in integrations (Replicator and Metering) as read-only resources. You can +retrieve Workload Identity Federation (WIF) configuration details including OIDC issuer, subject identifiers, and token +paths for GCP, AWS, and Azure. This enables you to fully automate platform setup by retrieving WIF information via the +API before creating the platform in meshStack. + +#### How to use +Filter by integration type (replicator or metering) or retrieve individual integrations by their static UUID. Use the +WIF configuration from the status field to configure your cloud platform's identity provider before creating the +platform in meshStack. Built-in integrations are read-only and cannot be created, updated, or deleted via the API. + +### Streamlined Adding User Access with Modal Dialog +**Audience:** User
+ +#### Description +We improved the user experience when adding users to workspaces and projects in the new access control interface +(access control v2). Instead of using a dropdown popover, the "Add Users" functionality now opens in a clear modal +dialog, providing a more focused and intuitive interface. You can now add multiple users at once and invite new users +by email in the same flow, streamlining the process of managing workspace and project access. + +Note: This change only affects customers who have access to the new access control v2 feature. If you are using the +standard access control interface, this change does not apply to you. + +### Drift Detection of Secrets for meshPlatform API v2-preview +**Audience:** User
+ +#### Description +The meshPlatform API v2-preview now supports drift detection for platform configuration secrets. Previously, +GET responses returned a placeholder value for secrets, making it impossible to detect when secrets were changed +outside of Terraform or other API clients. Now, secrets are returned with a hash value that enables drift detection +while maintaining security by never exposing the actual secret values. This is a breaking change for the v2-preview +API, so existing API clients need to adapt to the new secret representation structure. + +#### How to use +When creating or updating platforms via the API, you can provide secret values using a "plaintext" property. +GET responses return a "hash" property instead of the actual secret or a placeholder. Terraform providers and +other API clients can store this hash and compare it on subsequent reads to detect when secrets have been changed +outside of their control. When updating a platform, you can either provide a new secret value to update it, or +provide the hash from a previous response to keep the existing secret unchanged. For details on the new secret +structure, see the API documentation at https://docs.meshcloud.io/api/mesh-platform-post-v/. + diff --git a/docs/integrations/github/github-actions.md b/docs/integrations/github/github-actions.md index 9dc676fa5..812365b2b 100644 --- a/docs/integrations/github/github-actions.md +++ b/docs/integrations/github/github-actions.md @@ -15,9 +15,18 @@ Platform engineers can offer "GitHub Actions Building Blocks" that trigger a Git **Note:** Follow Steps 1 and 2 only the first time you set up a GitHub Action Workflow integration. After the initial setup, you can go directly to Step 3 for additional triggers. -## Step 1: Set Up the GitHub Platform in meshStack +## Step 1: Set Up the GitHub Integration in meshStack -To set up GitHub as a platform, go to the Admin area in meshStack, select **Platforms**, and click on **Create New Platform** at the top right. Complete the required fields and select **GitHub** as the platform type. +To set up GitHub as an integration, go to the Admin area in meshStack, +select **Integrations**, and click on **Create Integration** at the top right. +Select **GitHub Integration** as the integration type and complete the required fields. + +The Platform Builder area also allows managing integrations for that workspace. +Integrations are always bound to a meshStack workspace and +cannot be transferred or shared. + +You can also set up the integration while configuring the building block definition, +[see below](#step-3-create-a-workflow-trigger). ## Step 2: Configure Pipeline Automation @@ -30,8 +39,8 @@ First of all you will need a so-called GitHub App. This is what meshStack uses t Once you have your GitHub App, meshStack needs to know the following to be integrated with GitHub: - the owner of the GitHub organization -- the ID of the GitHub App -- the app’s private key (this is a .pem file) +- the Application ID of the GitHub App (*not* Client ID) +- the app’s private key (this is a `*.pem` file) Those values are available to you once you [installed the GitHub App to a repository](https://docs.github.com/en/apps/using-github-apps/installing-your-own-github-app) and [generated a private key](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps#generating-private-keys). @@ -136,7 +145,40 @@ on: required: true ``` -This setup allows application teams to quickly and efficiently access automation workflows from the marketplace, enhancing their productivity and reducing the need for Git expertise. +Within a job, you need to decode the `buildingBlockRun` input. +Define a job step to decode all Building Block inputs as follows and provide them to following steps: +```yaml +jobs: + some-job: + runs-on: ubuntu-latest # ships with jq already! + steps: + # ... some other steps + - name: Decode buildingBlockRun inputs + id: decodeBuildingBlockInputs + shell: bash + env: + # pass in indirectly as env variable to avoid cluttering the job log with a large base64 string + BUILDING_BLOCK_RUN_INPUT: ${{ inputs.buildingBlockRun }} + run: | + set -euo pipefail + base64 -d <<<"$BUILDING_BLOCK_RUN_INPUT" \ + | jq -er ' + .spec.buildingBlock.spec.inputs + | unique_by(.key) + | .[] + | "\(.key)=\(.value)" + ' \ + | tee -a "$GITHUB_OUTPUT" # assumes no secrets are passed in as inputs, as they're printed by tee! + # ... do something with the output (example): + - name: Some step using an input + run: | + # Assumes the building block definition has an input called 'github_handle' + echo '${{ steps.decodeBuildingBlockInputs.outputs.github_handle }}' +``` + + ### Status Updates diff --git a/docs/operations/backup.md b/docs/operations/backup.md index 8aeb92f8e..3979f52a6 100644 --- a/docs/operations/backup.md +++ b/docs/operations/backup.md @@ -7,8 +7,7 @@ meshcloud will operate your meshStack installation as a managed service for you. ## Standard Backup Configuration -Backup are facilitated once a day. Backup files will be stored for 30 days. Depending on the cloud platform hosting the meshStack environment -the backup files will be stored in the available object storage of the cloud provider (e.g. AWS S3, GCP Cloud Storage) using an appropriate data encryption method supported by the provider (e.g. key based encryption). +Backup frequency is set to once per day, with a retention period of 30 days. Storage location is dependent on the cloud platform hosting meshStack; +files are placed in the cloud provider's object storage (e.g., AWS S3 or GCP Cloud Storage) and protected via the provider's standard data encryption methods (e.g., key-based encryption). -> If you have deviating requirements regarding backup frequency and/or retention please contact support@meshcloud.io. -> It is also possible to provide you access to the object storage in order to transfer the files in a central backup solution within your organization. +> If custom backup frequency and retention or the export of backups to a specific destination is required, please reach out to support@meshcloud.io. diff --git a/docs/operations/logging.md b/docs/operations/logging.md index 1a4550ff7..a8283a6a5 100644 --- a/docs/operations/logging.md +++ b/docs/operations/logging.md @@ -38,8 +38,12 @@ traceability. Events capture what happened, when it happened and who triggered the event. Workspace Owners and Managers can view events related to their specific -Workspaces in the "Compliance" tab in their workspace. Administrators have -access to all events in the "Admin Area" under "Compliance". +Workspaces in the "Compliance" tab in their workspace. Administrators and +users with the "Auditor" role have access to all events in the "Admin Area" +under "Compliance". + +Events can also be exported via API. See the "Event Logs" section in our API +documentation for more details. At the moment, the following objects are logged: @@ -58,7 +62,10 @@ At the moment, the following objects are logged: | OSB Service Instance | Created, updated, deleted | | OSB Service Binding | Created, updated, deleted | | meshStack Copilot System Prompt | Created, updated, deleted | -| Payment Method | [Feature Request](https://feedback.meshcloud.io/feature-requests/p/event-logs-for-payment-methods) | +| Payment Method | Created, updated, deleted | +| Policies | Created, updated, deleted | +| API Keys | Created, updated, deleted | +| API Users | Created, updated, deleted | | Admin Settings | [Feature Request](https://feedback.meshcloud.io/feature-requests/p/event-logs-for-welcome-and-landing-page-and-settings) | ## API Access Logs diff --git a/static/api/meshstack-openapi-docs.json b/static/api/meshstack-openapi-docs.json index ee5b19670..d336daecf 100644 --- a/static/api/meshstack-openapi-docs.json +++ b/static/api/meshstack-openapi-docs.json @@ -48,7 +48,7 @@ }, "examples": { "apiRoot": { - "value": "{\n \"_links\" : {\n \"meshobjects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n },\n \"metadata\" : {\n \"href\" : \"https://mesh-backend-url/api/metadata\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api\"\n }\n }\n}" + "value": "{\n \"_links\" : {\n \"metadata\" : {\n \"href\" : \"https://mesh-backend-url/api/metadata\"\n },\n \"meshobjects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api\"\n }\n }\n}" } } } @@ -79,32 +79,29 @@ "operationId": "apiKeyLoginResponse", "requestBody": { "content": { - "application/x-www-form-urlencoded": { + "application/json": { "schema": { - "$ref": "#/components/schemas/api-login2002944754" + "$ref": "#/components/schemas/api-login-582311654" }, "examples": { - "apiKeyLoginResponseRedirect": { - "value": "client_id=301a8e20-6403-4167-804d-fa22bfbecbb4&client_secret=VROxgAmQDjjUq2j20UhfhtARL7cQwLV8&grant_type=client_credentials" + "apiKeyLoginResponse": { + "value": "{\n \"clientId\" : \"72fa4be7-7e45-47b1-948b-419ddba40931\",\n \"clientSecret\" : \"s3bXpsxilCyDe1EgDBbcvhUT1wlAR6TX\"\n} " } } }, - "application/json": { + "application/x-www-form-urlencoded": { "schema": { - "$ref": "#/components/schemas/api-login-582311654" + "$ref": "#/components/schemas/api-login2002944754" }, "examples": { - "apiKeyLoginResponse": { - "value": "{\n \"clientId\" : \"301a8e20-6403-4167-804d-fa22bfbecbb4\",\n \"clientSecret\" : \"VROxgAmQDjjUq2j20UhfhtARL7cQwLV8\"\n} " + "apiKeyLoginResponseRedirect": { + "value": "client_id=72fa4be7-7e45-47b1-948b-419ddba40931&client_secret=s3bXpsxilCyDe1EgDBbcvhUT1wlAR6TX&grant_type=client_credentials" } } } } }, "responses": { - "307": { - "description": "307" - }, "200": { "description": "200", "content": { @@ -114,11 +111,14 @@ }, "examples": { "apiKeyLoginResponse": { - "value": "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjQ3NzAwNjAsImlhdCI6MTc2NDc2OTc2MCwianRpIjoiMWZkYTJhZGUtZjE0Yy00ZGRjLTg2YzEtOWJhODZjOTJjZjNlIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDUwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiODI5YzFmODQtOWM4MS00NmNhLWFmODgtOThmZDI0YTYzZDBjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiMzAxYThlMjAtNjQwMy00MTY3LTgwNGQtZmEyMmJmYmVjYmI0IiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJjbGllbnRIb3N0IjoiMTI3LjAuMC4xIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTMwMWE4ZTIwLTY0MDMtNDE2Ny04MDRkLWZhMjJiZmJlY2JiNCIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiIzMDFhOGUyMC02NDAzLTQxNjctODA0ZC1mYTIyYmZiZWNiYjQifQ.QXjG-l1ke5cdgfCxm1U-KsW7zG14aiOa03wSsXX2S5TwPbWKZy6zD_N-e5ZUyrxAk4BYZWjlSYQ-hJqe7TD9lD602SMXNvsfrc6viVz18Dpv7DP76wTcAS_USdvbf5zRu2Mne_BQpznrbCDmwnMPocsrJe_6NctbnPiSj0gNd80OU3i7gbMBCLX2KzvcuYlYsHfr5t8tFi9xwDPQPEsNVUh7UHpNXEg7v6kkGtSZLWeFtkFp2thLRr1XwWXnt6ebI-wUJ4fIXNyoRr5ZprR6bx_w3v06vflG6hcVFPDjwtfNE7e0ofbtVDzMYyGNa64JhaCYYeH7smsT-ZbdngEh2g\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}" + "value": "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjUyOTI1NTksImlhdCI6MTc2NTI5MjI1OSwianRpIjoiNmQ0ZmZlY2ItZDc3NS00M2Y0LTljNTMtMzg5ODBhOGY2NDc1IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDUwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiMDIzODVmOTUtNzY2OS00MTkyLWFjMWItZjM3NGY0OTY0MGVhIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiNzJmYTRiZTctN2U0NS00N2IxLTk0OGItNDE5ZGRiYTQwOTMxIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiY2xpZW50SG9zdCI6IjEyNy4wLjAuMSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTcyZmE0YmU3LTdlNDUtNDdiMS05NDhiLTQxOWRkYmE0MDkzMSIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiI3MmZhNGJlNy03ZTQ1LTQ3YjEtOTQ4Yi00MTlkZGJhNDA5MzEifQ.VgEXj-Gd8i_o1iFfq7ZGg5SDpWsi_UHxyV2Rrnk4ASo2H8r08X94MJ_8GlqI3nlw_uM-cUX01gJQoBIWKo6agx0I96eBKO15PnCnkvPDAGdgHFDWpO9K8vLQf7Nk67gX0d1ZAzTnSY-lDfMRhvj2z904jpNAq7fKvYuZea8rQXSjKMaYu4aKPOPOEaqZ3_Ri8aU0LOYYDaX1N3wQI0a2ARZfu3u8SlZVQHIlqgkMQZc42UHWVCaPXNGyIOgHjJhetGVoMRz7h5lAaPtv42bcI-GDBojmgVj9yEFkoB6ZUZRdQ-WITFXnSBQW7cLdlBn1IgxonSIuIn-wBzY3hTAX6g\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}" } } } } + }, + "307": { + "description": "307" } }, "security": [ @@ -225,42 +225,42 @@ "tags": [ "Object Root" ], - "summary": "Get Object Root", - "description": "Access the root endpoint of the meshObjects API to discover available mesh object types\n\n**Authentication:** This endpoint supports multiple authentication methods: API User authentication or API Key authentication.", + "summary": "Get meshObjects root", + "description": "Get the meshObjects root resource with available links\n\n**Authentication:** This endpoint supports multiple authentication methods: API User authentication or API Key authentication.", "operationId": "meshObjectsRootV", "parameters": [ { "name": "Accept", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v2.hal+json` for this version of the endpoint.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v1.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshobjects.v2.hal+json" + "example": "application/vnd.meshcloud.api.meshobjects.v1.hal+json" } ], "responses": { "200": { "description": "200", "content": { - "application/vnd.meshcloud.api.meshobjects.v2.hal+json": { + "application/vnd.meshcloud.api.meshobjects.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshObjectsRootV2" + "$ref": "#/components/schemas/meshObjectsRootV1" }, "examples": { - "meshObjectsRootV2": { - "value": "{\n \"_links\" : {\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?uuid,workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"meshplatforms\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms{?searchTerm}\",\n \"templated\" : true\n },\n \"meshbuildingblockdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshbuildingblockruns\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockruns/create?forRunnerUuid={forRunnerUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks{?workspaceIdentifier,projectIdentifier,platformIdentifier,name,definitionUuid,versionUuid,tenantUuid,targetRefKind,status,managedByWorkspaceIdentifier,managedByDefinitionUuid}\",\n \"templated\" : true\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,authorType,authorIdentifier,eventType,workspaceName,workspaceIdentifier,excludeTitle}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?workspaceIdentifier,paymentIdentifier,state}\",\n \"templated\" : true\n },\n \"meshintegrations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations{?displayName,ownedByWorkspace,type}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups{?workspaceIdentifier,username}\",\n \"templated\" : true\n },\n \"meshworkspaceuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspacegroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"meshlocations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations{?displayName}\",\n \"templated\" : true\n },\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshplatformtypes\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes{?category,lifecycleStatus}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}" + "meshObjectsRootV1": { + "value": "{\n \"_links\" : {\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?customerIdentifier,paymentIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}" } } }, - "application/vnd.meshcloud.api.meshobjects.v1.hal+json": { + "application/vnd.meshcloud.api.meshobjects.v2.hal+json": { "schema": { - "$ref": "#/components/schemas/meshObjectsRootV1" + "$ref": "#/components/schemas/meshObjectsRootV2" }, "examples": { - "meshObjectsRootV1": { - "value": "{\n \"_links\" : {\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?customerIdentifier,paymentIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}" + "meshObjectsRootV2": { + "value": "{\n \"_links\" : {\n \"meshbuildingblockruns\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockruns/create?forRunnerUuid={forRunnerUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks{?workspaceIdentifier,projectIdentifier,platformIdentifier,name,definitionUuid,versionUuid,tenantUuid,targetRefKind,status,managedByWorkspaceIdentifier,managedByDefinitionUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblockdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshplatforms\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms{?searchTerm}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshlocations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations{?displayName}\",\n \"templated\" : true\n },\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"meshintegrations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations{?displayName,ownedByWorkspace,type}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshplatformtypes\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes{?category,lifecycleStatus}\",\n \"templated\" : true\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,authorType,authorIdentifier,eventType,workspaceName,workspaceIdentifier,excludeTitle}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"meshworkspaceuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspacegroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups{?workspaceIdentifier,username}\",\n \"templated\" : true\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?uuid,workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?workspaceIdentifier,paymentIdentifier,state}\",\n \"templated\" : true\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}" } } } @@ -470,7 +470,7 @@ }, "examples": { "meshBuildingBlockDefinitionListV1": { - "value": "{\n \"_embedded\" : {\n \"meshBuildingBlockDefinitions\" : [ {\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:27.345384782Z\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"e4b4931c-cf55-4a73-a08b-7789efc9ad76\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions?workspaceIdentifier=my-workspace&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshBuildingBlockDefinitions\" : [ {\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:47.273824500Z\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"65553088-f3b0-49c0-98dc-a9977fd68b83\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions?workspaceIdentifier=my-workspace&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -538,7 +538,7 @@ }, "examples": { "meshBuildingBlockDefinitionPostV1": { - "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:28.175870586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"59862206-fc69-4291-9db8-31d9511d650c\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b7380b49-0878-419a-88dc-bf0bed72d977\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b7380b49-0878-419a-88dc-bf0bed72d977\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:48.150361348Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"f6bff195-bf12-450b-bce4-1c813fa59139\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/69738ff0-1eb0-4609-b580-44e9e420325b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=69738ff0-1eb0-4609-b580-44e9e420325b\"\n }\n }\n}" } } } @@ -719,7 +719,7 @@ }, "examples": { "meshBuildingBlockList": { - "value": "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.076297498Z\"\n },\n \"spec\" : {\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.096812698Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.070856495Z\"\n },\n \"spec\" : {\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.091152405Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } }, @@ -729,7 +729,7 @@ }, "examples": { "meshBuildingBlockListV2": { - "value": "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.007073002Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"a2d98a3e-0acb-4b9d-ba85-b110d058ecfd\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.017007172Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.517761Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"68b6df08-3a6c-443d-a39e-1d065bb13b5f\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.528351150Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -749,49 +749,49 @@ "Building Blocks" ], "summary": "Create building block", - "description": "Create a new meshBuildingBlock with specified inputs, parent relationships, and target configuration\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Create a new meshBuildingBlock with inputs and parent building block relationships\n\n**Authentication:** This endpoint supports API Key authentication.", "operationId": "meshBuildingBlockPost", "parameters": [ { "name": "Content-Type", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json" + "example": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json" }, { "name": "Accept", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json" + "example": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json" } ], "requestBody": { "content": { - "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json": { + "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshbuildingblocks-1155129151" + "$ref": "#/components/schemas/api-meshobjects-meshbuildingblocks-884287178" }, "examples": { - "meshBuildingBlockPostV2": { - "value": "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"b205ad0c-6740-4b06-b6cc-647e54914e96\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"e7b0e5ad-0ad7-4b8a-aec0-3f57d7ffa91c\"\n }]\n }\n} " + "meshBuildingBlockPost": { + "value": "{\n \"apiVersion\" : \"v1\",\n \"kind\" : \"meshBuildingBlock\",\n \"metadata\" : {\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"11d588ca-efc7-4b4e-b04c-0f927aa412db\"\n }]\n }\n} " } } }, - "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json": { + "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshbuildingblocks-884287178" + "$ref": "#/components/schemas/api-meshobjects-meshbuildingblocks-1155129151" }, "examples": { - "meshBuildingBlockPost": { - "value": "{\n \"apiVersion\" : \"v1\",\n \"kind\" : \"meshBuildingBlock\",\n \"metadata\" : {\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"dff6f800-abea-40ee-9783-976918e6090d\"\n }]\n }\n} " + "meshBuildingBlockPostV2": { + "value": "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"6b78e4b1-2c9d-48f5-9304-d0cd2f702b59\"\n }]\n }\n} " } } } @@ -801,23 +801,23 @@ "201": { "description": "201", "content": { - "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json": { + "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshBuildingBlockPostV2" + "$ref": "#/components/schemas/meshBuildingBlockPost" }, "examples": { - "meshBuildingBlockPostV2": { - "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"63d87d66-1991-4976-b0b8-6002ec651544\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.955713604Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"e7b0e5ad-0ad7-4b8a-aec0-3f57d7ffa91c\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/63d87d66-1991-4976-b0b8-6002ec651544\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/63d87d66-1991-4976-b0b8-6002ec651544/purge\"\n }\n }\n}" + "meshBuildingBlockPost": { + "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"3fd3d15b-5514-4a0f-aab5-2614fa30dcac\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:50.778211003Z\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"11d588ca-efc7-4b4e-b04c-0f927aa412db\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/3fd3d15b-5514-4a0f-aab5-2614fa30dcac\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/3fd3d15b-5514-4a0f-aab5-2614fa30dcac/purge\"\n }\n }\n}" } } }, - "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json": { + "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshBuildingBlockPost" + "$ref": "#/components/schemas/meshBuildingBlockPostV2" }, "examples": { - "meshBuildingBlockPost": { - "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"12dbd12d-eda4-4a55-8000-36f500ea9295\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:30.378030123Z\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"dff6f800-abea-40ee-9783-976918e6090d\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/12dbd12d-eda4-4a55-8000-36f500ea9295\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/12dbd12d-eda4-4a55-8000-36f500ea9295/purge\"\n }\n }\n}" + "meshBuildingBlockPostV2": { + "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5629debb-176c-4e15-9f92-e2f7f8886d6e\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:53.441602337Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"6b78e4b1-2c9d-48f5-9304-d0cd2f702b59\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5629debb-176c-4e15-9f92-e2f7f8886d6e\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5629debb-176c-4e15-9f92-e2f7f8886d6e/purge\"\n }\n }\n}" } } } @@ -890,10 +890,10 @@ }, "examples": { "meshCommunicationDefinitionList": { - "value": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-04\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"49572687-98d7-4989-9d52-b396898de316\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-05\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/49572687-98d7-4989-9d52-b396898de316\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-06\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 5,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-10\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-11\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0c49a952-fd55-4893-aa55-19918203c085\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-12\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/0c49a952-fd55-4893-aa55-19918203c085\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 5,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" }, "meshCommunicationDefinitionListFilteredByType": { - "value": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"49572687-98d7-4989-9d52-b396898de316\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-05\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/49572687-98d7-4989-9d52-b396898de316\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-06\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-11\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0c49a952-fd55-4893-aa55-19918203c085\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-12\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/0c49a952-fd55-4893-aa55-19918203c085\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -961,7 +961,7 @@ }, "examples": { "meshCommunicationDefinitionPost": { - "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"3c72812e-455d-4d3b-a0c7-925287dfccab\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Important Update\",\n \"message\" : \"This is a test communication.\",\n \"dueDate\" : \"2099-04-30\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/3c72812e-455d-4d3b-a0c7-925287dfccab\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"6e8a9609-3fdf-41d3-9b2b-3ffb8181496b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Important Update\",\n \"message\" : \"This is a test communication.\",\n \"dueDate\" : \"2099-04-30\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/6e8a9609-3fdf-41d3-9b2b-3ffb8181496b\"\n }\n }\n}" } } } @@ -1052,7 +1052,7 @@ }, "examples": { "meshCommunicationList": { - "value": "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=9758d157-eefe-4a5c-bf65-5f7d28b3271c&resolutionStatus=OPEN&communicationType=ACTION_REQUIRED&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=eb662d24-2525-4691-a202-a5e2b52fd81c&resolutionStatus=OPEN&communicationType=ACTION_REQUIRED&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -1104,7 +1104,7 @@ }, "examples": { "meshCommunicationPost": { - "value": "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}" + "value": "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}" } } } @@ -1120,7 +1120,7 @@ }, "examples": { "meshCommunicationPost": { - "value": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n}" } } } @@ -1264,7 +1264,7 @@ }, "examples": { "meshEventLogList": { - "value": "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"055b1f56-4768-472b-908e-d0f6d994c185\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/055b1f56-4768-472b-908e-d0f6d994c185\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f89b35b1-07a4-424d-87e1-b9a4cf751bc8\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/f89b35b1-07a4-424d-87e1-b9a4cf751bc8\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" } } } @@ -1291,7 +1291,7 @@ "Integrations" ], "summary": "List integrations", - "description": "List all integrations accessible by the user with optional pagination and filtering.\n\nIntegrations enable building blocks to interact with external systems like GitHub, GitLab, \nand Azure DevOps for pipeline automation and repository management.\n\nUsers can only see integrations that belong to their workspace (workspace-scoped access).\nPlatform administrators can see all integrations across all workspaces.\n\nThe response includes pagination information and HAL links for navigation.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "List all integrations accessible by the user with optional pagination and filtering.\n\nIntegrations enable building blocks to interact with external systems like GitHub, GitLab, \nand Azure DevOps for pipeline automation and repository management.\n\nmeshStack provides two built-in integrations:\n- **meshStack Replicator (Built-in)**: System integration for the meshStack Replicator component\n- **meshStack Metering (Built-in)**: System integration for the meshStack Metering/Kraken component\n\nBuilt-in integrations are:\n- Read-only (cannot be created, updated, or deleted via the API)\n- Visible to all users with the list permission for integrations\n- Include a `status` field with Workload Identity Federation (WIF) information for cloud provider authentication\n\nRegular (user-created) integrations do not provide the `WIF` information and can be fully managed via the API.\n\nUsers can only see integrations that belong to their workspace (workspace-scoped access) plus the built-in integrations.\nPlatform administrators can see all integrations across all workspaces.\n\nThe response includes pagination information and HAL links for navigation.\n\n**Authentication:** This endpoint supports API Key authentication.", "operationId": "meshIntegration-List", "parameters": [ { @@ -1333,7 +1333,7 @@ { "name": "type", "in": "query", - "description": "Filter integrations by type. Valid values: GITLAB, GITHUB, AZURE_DEVOPS", + "description": "Filter integrations by type. This includes user-created integration types as well as built-in integration types.\n\nAll available types: GITLAB, GITHUB, AZURE_DEVOPS, REPLICATOR, METERING", "required": false, "schema": { "type": "string" @@ -1360,7 +1360,7 @@ }, "examples": { "meshIntegration-List": { - "value": "{\n \"_embedded\" : {\n \"meshIntegrations\" : [ {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshIntegrations\" : [ {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Replicator (Built-in)\",\n \"config\" : {\n \"type\" : \"replicator\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:replicator\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Metering (Built-in)\",\n \"config\" : {\n \"type\" : \"metering\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:kraken-worker\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 5,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -1408,17 +1408,17 @@ "content": { "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshintegrations-743765211" + "$ref": "#/components/schemas/api-meshobjects-meshintegrations1558958109" }, "examples": { "meshIntegration-Post-azure_devops": { - "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}" + "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n }\n }\n }\n }\n}" }, "meshIntegration-Post-github": { - "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitHub Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n },\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\"\n }\n }\n }\n}" + "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitHub Integration\",\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n }\n }\n }\n }\n}" }, "meshIntegration-Post-gitlab": { - "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitLab Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n },\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\"\n }\n }\n }\n}" + "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitLab Integration\",\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n }\n }\n }\n }\n}" } } } @@ -1434,13 +1434,13 @@ }, "examples": { "meshIntegration-Post-azure_devops": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}" }, "meshIntegration-Post-github": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}" }, "meshIntegration-Post-gitlab": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}" } } } @@ -1504,7 +1504,7 @@ }, "examples": { "meshLandingZone-List": { - "value": "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -1555,26 +1555,26 @@ "$ref": "#/components/schemas/api-meshobjects-meshlandingzones-identifier1747291786" }, "examples": { - "meshLandingZone-Post-aks": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aks\",\n \"description\" : \"A new aks landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}" - }, "meshLandingZone-Post-azurerg": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azurerg\",\n \"description\" : \"A new azurerg landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}" - }, - "meshLandingZone-Post-azure": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azure\",\n \"description\" : \"A new azure landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azurerg\",\n \"description\" : \"A new azurerg landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}" }, - "meshLandingZone-Post-gcp": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone gcp\",\n \"description\" : \"A new gcp landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" + "meshLandingZone-Post-aks": { + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aks\",\n \"description\" : \"A new aks landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}" }, "meshLandingZone-Post-aws": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aws\",\n \"description\" : \"A new aws landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aws\",\n \"description\" : \"A new aws landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" }, "meshLandingZone-Post-kubernetes": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}" }, "meshLandingZone-Post-openshift": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone openshift\",\n \"description\" : \"A new openshift landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone openshift\",\n \"description\" : \"A new openshift landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}" + }, + "meshLandingZone-Post-azure": { + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azure\",\n \"description\" : \"A new azure landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" + }, + "meshLandingZone-Post-gcp": { + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone gcp\",\n \"description\" : \"A new gcp landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" } } } @@ -1586,29 +1586,29 @@ "content": { "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshLandingZone-Post-aks" + "$ref": "#/components/schemas/meshLandingZone-Post-azurerg" }, "examples": { - "meshLandingZone-Post-aks": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}" - }, "meshLandingZone-Post-azurerg": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}" - }, - "meshLandingZone-Post-azure": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}" }, - "meshLandingZone-Post-gcp": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}" + "meshLandingZone-Post-aks": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}" }, "meshLandingZone-Post-aws": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}" }, "meshLandingZone-Post-kubernetes": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}" }, "meshLandingZone-Post-openshift": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}" + }, + "meshLandingZone-Post-azure": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}" + }, + "meshLandingZone-Post-gcp": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}" } } } @@ -1681,7 +1681,7 @@ }, "examples": { "meshLocation-List": { - "value": "{\n \"_embedded\" : {\n \"meshLocations\" : [ {\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations?displayName=My%20Location\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshLocations\" : [ {\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations?displayName=My%20Location\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -1749,7 +1749,7 @@ }, "examples": { "meshLocation-Post": { - "value": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9de4799c-cb6d-43ea-95a1-9ee6473d3ee5\",\n \"name\" : \"new-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New Location\",\n \"description\" : \"A new location created via API\"\n },\n \"status\" : {\n \"isPublic\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/new-location\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7b8db13e-4135-473e-a649-d366d27fca11\",\n \"name\" : \"new-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New Location\",\n \"description\" : \"A new location created via API\"\n },\n \"status\" : {\n \"isPublic\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/new-location\"\n }\n }\n}" } } } @@ -1945,35 +1945,35 @@ { "name": "Accept", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json" + "example": "application/vnd.meshcloud.api.meshplatform.v1.hal+json" } ], "responses": { "200": { "description": "200", "content": { - "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { + "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatform-List-V2" + "$ref": "#/components/schemas/meshPlatform-List-V1" }, "examples": { - "meshPlatform-List-V2": { - "value": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "meshPlatform-List-V1": { + "value": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } }, - "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { + "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatform-List-V1" + "$ref": "#/components/schemas/meshPlatform-List-V2" }, "examples": { - "meshPlatform-List-V1": { - "value": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "meshPlatform-List-V2": { + "value": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:16e9a895bf1cf8a122fd5204acbbaf0f5766fd85855002f20ebe350f40a28458\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:28b4d3aea334447442394eb4e77122e397318b5b2570726c4a5bb48de387321a\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:ed80c632e4b93c6145fcdfe19fb2ba09265a344ef4d09839e7c5c1847dd85876\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:bad878c0be2657848e1d7709b2fdd649ce0b0cb752e014f580f4559eb484f3c2\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:a19540d809291fe9606393b6f7a6f1f05056b9b07f2cedd814478bbe2d00b9d3\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:ae9a969772f48321dc12d5b31cc029645df18f198e2504d2a9a449302f89feab\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:049e0d064434ba93556313dbe6bb597d1cfc2948be688f3f9806bbd8da3ab8f2\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:314caa0f25d395036055c3ec1003405991b7efbb80cb245212a88fa1288747aa\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4304402aa902a654c0675f6c26fe44759e4a09ee4dc1444a0436f38270bcc9d\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1b3e9e472822c72a8829f0821f1b8bb90d3a80ad7c08ec29fa3d77004cebf486\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1eaea39884dcb242658a81115f6f14aa704a2a512d5fb92c8c38b1a7aad25227\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:76c87a86da241399b90bba832c161cd20f08dcdab4f9f8d208e74bb2233052ec\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:b3a6cdd668be75a6cb239fda82fc5ea8249fa36d9b46331af8f074e3d0606676\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a356420aa3bd1a0bfb66c77d6f944efbd6998550a926738ae1296ccf2ffad001\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:3930d71d901339c705db68c6c9e936b786bd2109deba5dc2a291656e042e84fc\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:23bd866e9f3a693d32937fbe1eace4c4b58f3f450823fa9bd7251ad3c617f4a1\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -2021,57 +2021,57 @@ "content": { "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshplatforms-1788285441" + "$ref": "#/components/schemas/api-meshobjects-meshplatforms-1692685178" }, "examples": { + "meshPlatform-Post-V1-kubernetes": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n}\n }\n }" + }, + "meshPlatform-Post-V1-aks": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"*****\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n}\n }\n }" + }, "meshPlatform-Post-V1-azurerg": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}" + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }" }, "meshPlatform-Post-V1-openshift": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"roleMappings\":{\"admin\":\"admin\",\"member\":\"edit\",\"reader\":\"view\"},\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}}}}\n }\n}" + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n}\n }\n }" }, - "meshPlatform-Post-V1-aks": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"}}}\n }\n}" + "meshPlatform-Post-V1-azure": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n}\n }\n }" }, "meshPlatform-Post-V1-gcp": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"roleMappings\":{\"admin\":\"roles/owner\",\"member\":\"roles/editor\",\"reader\":\"roles/viewer\"},\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false}}}\n }\n}" - }, - "meshPlatform-Post-V1-kubernetes": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"}}}\n }\n}" + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"*****\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n}\n }\n }" }, "meshPlatform-Post-V1-aws": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"roleMappings\":{\"admin\":{\"awsRoleName\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},\"member\":{\"awsRoleName\":\"MemberRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}},\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false}}}\n }\n}" - }, - "meshPlatform-Post-V1-azure": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"roleMappings\":{\"admin\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"},\"member\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"},\"reader\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}},\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true}}}\n }\n}" + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"*****\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"sso-access-token-value\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n}\n }\n }" } } }, "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshplatforms-1075042019" + "$ref": "#/components/schemas/api-meshobjects-meshplatforms-986068135" }, "examples": { - "meshPlatform-Post-V2-aws": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"awsRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"ReaderRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}],\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false},\"metering\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"filter\":\"NONE\",\"reservedInstanceFairChargeback\":false,\"savingsPlanFairChargeback\":false,\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}" + "meshPlatform-Post-V2-openshift": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, "meshPlatform-Post-V2-aks": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }" + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, "meshPlatform-Post-V2-gcp": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"gcpRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/owner\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/editor\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/viewer\"}],\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false},\"metering\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"bigqueryTable\":\"project.dataset.table\",\"bigqueryTableForCarbonFootprint\":\"project.dataset.carbon_table\",\"carbonFootprintDataCollectionStartMonth\":\"2023-01\",\"partitionTimeColumn\":\"export_time\",\"additionalFilter\":\"project.id != 'excluded-project'\",\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}" + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, - "meshPlatform-Post-V2-azure": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"azureRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"}},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"}},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}}],\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true},\"metering\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}" + "meshPlatform-Post-V2-aws": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"plaintext\" : \"sso-access-token-value\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, - "meshPlatform-Post-V2-openshift": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"openshiftRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"admin\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"edit\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"view\"}],\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}},\"metering\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }" + "meshPlatform-Post-V2-azure": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, "meshPlatform-Post-V2-kubernetes": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }" + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, "meshPlatform-Post-V2-azurerg": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}" + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }" } } } @@ -2083,57 +2083,57 @@ "content": { "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatform-Post-V1-azurerg" + "$ref": "#/components/schemas/meshPlatform-Post-V1-kubernetes" }, "examples": { + "meshPlatform-Post-V1-kubernetes": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + }, + "meshPlatform-Post-V1-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + }, "meshPlatform-Post-V1-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Post-V1-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Post-V1-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Post-V1-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Post-V1-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" - }, - "meshPlatform-Post-V1-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Post-V1-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" - }, - "meshPlatform-Post-V1-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } }, "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatform-Post-V2-aws" + "$ref": "#/components/schemas/meshPlatform-Post-V2-openshift" }, "examples": { - "meshPlatform-Post-V2-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Post-V2-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:27135b23908ca4e4d1d7e6cd2496214bb0bc16450f9d714af13359d36df5bb7e\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:da85f516ba791aa9ee4c9d187305fd54e8c847b3623af33a733133f8db83bc99\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Post-V2-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a1f72da6be7aaaedaa39b63860dc190a56fd64d94f8d5bc4a80b698e8b309230\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:5d7406fc2a2264d7ebb154517cf272e5d8f321afa904674014aac1b03be19a0f\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:67961182f8b064537dca0b39318b9343008cec2a261fc7bf7639db4613c37a91\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Post-V2-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:c388b5b964d03e444aa285be9e2a2d2fea916835636c772a814c7066ebbf4a63\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1937bbff04ba7d18f8bb151ecae3c5ea101ab3fc71f2d89b29ae5dd195ffe8dc\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Post-V2-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Post-V2-aws": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:2776d45cbb61bd0a228a5c4c0c437f2d4cbb4caa3fa7c87d4a248a3c995f5481\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:1c9240a05e5aa0c1b5119968c64df5e03239166d5ded8a6078d4c6ed3faaafae\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:8d2d90614f1a7c0015d4d088d63a12816330a2f45fdcf80353ed0a1b0fecce15\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Post-V2-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Post-V2-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:4650f4aba4b817cf0ae3dd1238839b15ba81e7a04be745a7c5ddf28d10dbe411\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:159df31e7949bee5c5792d00ada5de8a3f603c7ecea6e64433f16e38e06a265d\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4514fe9857aa65a9241c491e058729a1a1b43cf05048294e29ad9e8098934de\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Post-V2-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:54e2ab41e5df6d248233086f225d1cb3026afe1076c95f55d54688cb575554a7\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:591f84d517295002cedad1f76e550f48e27388275faf699cb3bec6d721fe0d26\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Post-V2-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:da6cd6c64a1a0e762673381a3de53ba2e8d3b660e9fcc82847aa5d386a976149\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } } @@ -2215,7 +2215,7 @@ }, "examples": { "meshPlatformTypeListV1": { - "value": "{\n \"_embedded\" : {\n \"meshPlatformTypes\" : [ {\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes?category=CUSTOM&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshPlatformTypes\" : [ {\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes?category=CUSTOM&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -2283,7 +2283,7 @@ }, "examples": { "meshPlatformTypeV1Post": { - "value": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c5df09f4-dd5b-4523-8625-5370a13930e6\",\n \"name\" : \"my-new-platform\",\n \"createdOn\" : \"2025-12-03T13:49:57.980291893Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My New Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://platform.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-new-platform\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"411ee54b-70f5-4db9-937b-e7fe9720845e\",\n \"name\" : \"my-new-platform\",\n \"createdOn\" : \"2025-12-09T14:58:23.265731587Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My New Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://platform.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-new-platform\"\n }\n }\n}" } } } @@ -2506,7 +2506,7 @@ }, "examples": { "meshProjectListV2": { - "value": "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" } } } @@ -2558,7 +2558,7 @@ }, "examples": { "meshProjectPost": { - "value": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}" + "value": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}" } } } @@ -2574,7 +2574,7 @@ }, "examples": { "meshProjectPost": { - "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2025-12-03T13:50:00.946882645Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2025-12-09T14:58:26.533077586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}" } } } @@ -2683,7 +2683,7 @@ }, "examples": { "meshServiceInstanceListV2": { - "value": "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"m6tf7mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"m6tf7mtdg1\",\n \"instanceId\" : \"m6tf7mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mtdg12\",\n \"serviceId\" : \"m6tf7mtdg5\",\n \"planId\" : \"m6tf7mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/m6tf7mtdg9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=2&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 3,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"tlyz1mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"tlyz1mtdg1\",\n \"instanceId\" : \"tlyz1mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mtdg12\",\n \"serviceId\" : \"tlyz1mtdg5\",\n \"planId\" : \"tlyz1mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/tlyz1mtdg9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=2&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 3,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}" } } } @@ -2735,7 +2735,7 @@ }, "examples": { "meshServiceInstancePost": { - "value": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}" + "value": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}" } } } @@ -2751,7 +2751,7 @@ }, "examples": { "meshServiceInstancePost": { - "value": "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}" } } } @@ -2895,7 +2895,7 @@ "Tenants" ], "summary": "List tenants", - "description": "Provides a paged list of meshTenants. By default, list all active meshTenants (neither deleted\nnor submitted for deletion).\n\n**Note**: If the state is not specified as a request parameter, only active meshTenants are returned.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "List all meshTenants with filtering and pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", "operationId": "meshTenantListV", "parameters": [ { @@ -2926,63 +2926,63 @@ } }, { - "name": "platformTypeIdentifier", + "name": "deletionState", "in": "query", - "description": "Filter for meshTenants that belong to the platform type with given identifier. (optional)", + "description": "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion", "required": false, "schema": { "type": "string" } }, { - "name": "landingZoneIdentifier", + "name": "page", "in": "query", - "description": "Filter for meshTenants that belong to a certain landing zone. (optional)", + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)", "required": false, "schema": { "type": "string" } }, { - "name": "platformTenantId", + "name": "size", "in": "query", - "description": "Filter for meshTenants with a given platformTenantId. (optional)", + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)", "required": false, "schema": { "type": "string" } }, { - "name": "state", + "name": "platformTypeIdentifier", "in": "query", - "description": "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms.", + "description": "Filter for meshTenants that belong to the platform type with given identifier. (optional)", "required": false, "schema": { "type": "string" } }, { - "name": "page", + "name": "landingZoneIdentifier", "in": "query", - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)", + "description": "Filter for meshTenants that belong to a certain landing zone. (optional)", "required": false, "schema": { "type": "string" } }, { - "name": "size", + "name": "platformTenantId", "in": "query", - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)", + "description": "Filter for meshTenants with a given platformTenantId. (optional)", "required": false, "schema": { "type": "string" } }, { - "name": "deletionState", + "name": "state", "in": "query", - "description": "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion", + "description": "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms.", "required": false, "schema": { "type": "string" @@ -2991,35 +2991,35 @@ { "name": "Accept", "in": "header", - "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the V4 response format of this endpoint. New versions might be added in future.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json" + "example": "application/vnd.meshcloud.api.meshtenant.v3.hal+json" } ], "responses": { "200": { "description": "200", "content": { - "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json": { + "application/vnd.meshcloud.api.meshtenant.v3.hal+json": { "schema": { - "$ref": "#/components/schemas/meshTenantListV4" + "$ref": "#/components/schemas/meshTenantListV3" }, "examples": { - "meshTenantListV4": { - "value": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.835644642Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n }, {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"07b0f057-5fba-444e-9796-4292573a6d22\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.829359902Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"2f3561e8-51f4-451f-bc92-9e5c8c6dd98f\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.aws.aws-meshstack-dev\",\n \"platformTypeIdentifier\" : \"AWS\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/07b0f057-5fba-444e-9796-4292573a6d22\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 3,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" + "meshTenantListV3": { + "value": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-10T14:58:32.700446663Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"fe177f6a-0e92-45fd-94cc-327d475ab2a8\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" } } }, - "application/vnd.meshcloud.api.meshtenant.v3.hal+json": { + "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshTenantListV3" + "$ref": "#/components/schemas/meshTenantListV4" }, "examples": { - "meshTenantListV3": { - "value": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-04T13:50:04.839868061Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"a2a34b5f-654e-448a-90d7-8134c81d47f3\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" + "meshTenantListV4": { + "value": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"53277734-8b43-4e4e-a70b-76aeb244c38c\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.757443327Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/53277734-8b43-4e4e-a70b-76aeb244c38c\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n }, {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"dcce5c72-302e-49f9-baec-7bef99105688\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.750131427Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"2f3561e8-51f4-451f-bc92-9e5c8c6dd98f\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.aws.aws-meshstack-dev\",\n \"platformTypeIdentifier\" : \"AWS\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/dcce5c72-302e-49f9-baec-7bef99105688\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 3,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" } } } @@ -3039,49 +3039,49 @@ "Tenants" ], "summary": "Create tenant", - "description": "Create a new meshTenant\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Create a new meshTenant.\n\n**Authentication:** This endpoint supports API Key authentication.", "operationId": "meshTenantPostV", "parameters": [ { "name": "Content-Type", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint.", + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as a `Content-Type` header.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshtenant.v3.hal+json" + "example": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json" }, { "name": "Accept", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint.", + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the expected response format of this endpoint. New versions might be added in future.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshtenant.v3.hal+json" + "example": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json" } ], "requestBody": { "content": { - "application/vnd.meshcloud.api.meshtenant.v3.hal+json": { + "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshtenants-1377394246" + "$ref": "#/components/schemas/api-meshobjects-meshtenants14069591" }, "examples": { - "meshTenantPostV3": { - "value": "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\",\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\"\n }, \n \"spec\": {\n \"landingZoneIdentifier\": \"stage-dev\"\n }\n } \n} " + "meshTenantPostV4": { + "value": "{\n \"apiVersion\": \"v4-preview\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\": \"stage-dev\",\n \"platformTenantId\": \"cloud-tenant-4763-4526189\"\n }\n }\n}" } } }, - "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json": { + "application/vnd.meshcloud.api.meshtenant.v3.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshtenants14069591" + "$ref": "#/components/schemas/api-meshobjects-meshtenants-1377394246" }, "examples": { - "meshTenantPostV4": { - "value": "{\n \"apiVersion\": \"v4-preview\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\": \"stage-dev\",\n \"platformTenantId\": \"cloud-tenant-4763-4526189\"\n }\n }\n}" + "meshTenantPostV3": { + "value": "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\",\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\"\n }, \n \"spec\": {\n \"landingZoneIdentifier\": \"stage-dev\"\n }\n } \n} " } } } @@ -3091,23 +3091,23 @@ "201": { "description": "201", "content": { - "application/vnd.meshcloud.api.meshtenant.v3.hal+json": { + "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshTenantPostV3" + "$ref": "#/components/schemas/meshTenantPostV4" }, "examples": { - "meshTenantPostV3": { - "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"spec\" : {\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}" + "meshTenantPostV4": { + "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"beebf115-3da5-4857-9abd-cb98df35c0cb\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:34.462896039Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"cloud-tenant-4763-4526189\",\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\",\n \"platformTypeIdentifier\" : \"AZURE\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/beebf115-3da5-4857-9abd-cb98df35c0cb\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}" } } }, - "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json": { + "application/vnd.meshcloud.api.meshtenant.v3.hal+json": { "schema": { - "$ref": "#/components/schemas/meshTenantPostV4" + "$ref": "#/components/schemas/meshTenantPostV3" }, "examples": { - "meshTenantPostV4": { - "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"7403c240-09ab-4a0a-984f-602bbf390c0d\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:06.516306259Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"cloud-tenant-4763-4526189\",\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\",\n \"platformTypeIdentifier\" : \"AZURE\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/7403c240-09ab-4a0a-984f-602bbf390c0d\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}" + "meshTenantPostV3": { + "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"spec\" : {\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}" } } } @@ -3260,7 +3260,7 @@ }, "examples": { "meshUserListV2": { - "value": "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"0f0c0a0c-b40c-4bc4-81be-eadebb04b3c6\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"ce61d42a-5e96-42cd-99ff-be4607a2560f\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"a69e8734-0952-49e0-9a8a-1cf0ec4384a1\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"4a00028c-186e-4399-8a53-cc036c015aa5\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" } } } @@ -3286,7 +3286,7 @@ "content": { "application/vnd.meshcloud.api.meshuser.v2.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshusers-username-179515684" + "$ref": "#/components/schemas/api-meshobjects-meshusers-179515684" }, "examples": { "meshUserV2Post": { @@ -3306,7 +3306,7 @@ }, "examples": { "meshUserV2Post": { - "value": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"1a8deb65-324a-46fe-85bd-6d7024cef0a4\",\n \"name\" : \"new\"\n },\n \"spec\" : {\n \"email\" : \"new@example.com\",\n \"firstName\" : \"New\",\n \"lastName\" : \"User\",\n \"euid\" : \"new123\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/new\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=new\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"e5b770e9-1bc9-4a65-8ed7-6e75fc4dea53\",\n \"name\" : \"new\"\n },\n \"spec\" : {\n \"email\" : \"new@example.com\",\n \"firstName\" : \"New\",\n \"lastName\" : \"User\",\n \"euid\" : \"new123\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/new\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=new\"\n }\n }\n}" } } } @@ -3370,7 +3370,7 @@ }, "examples": { "meshWorkspaceList": { - "value": "{\n \"_embedded\" : {\n \"meshWorkspaces\" : [ {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-customer\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-partner\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-partner\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-partner\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-partner\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-partner\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-partner\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-partner\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-partner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 6,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshWorkspaces\" : [ {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-customer\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-partner\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-partner\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-partner\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-partner\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-partner\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-partner\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-partner\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-partner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 6,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" } } } @@ -3438,7 +3438,7 @@ }, "examples": { "meshWorkspacePost": { - "value": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-03T13:50:10.541598661Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Workspace\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-09T14:58:38.731585303Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Workspace\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}" } } } @@ -3520,7 +3520,7 @@ }, "examples": { "meshWorkspaceUserGroupList": { - "value": "{\n \"_embedded\" : {\n \"meshWorkspaceUserGroups\" : [ {\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"11284a3b-df7c-4185-863f-7715a9ea12be\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=sample-user&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshWorkspaceUserGroups\" : [ {\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"aeddeef1-873b-4433-91e7-a45418d6576a\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=sample-user&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -3623,7 +3623,7 @@ }, "examples": { "meshBuildingBlockDefinitionV1": { - "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:27.345384782Z\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"e4b4931c-cf55-4a73-a08b-7789efc9ad76\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:47.273824500Z\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"65553088-f3b0-49c0-98dc-a9977fd68b83\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n}" } } } @@ -3684,7 +3684,7 @@ }, "examples": { "meshBuildingBlockDefinitionPutV1": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}" } } } @@ -3700,7 +3700,7 @@ }, "examples": { "meshBuildingBlockDefinitionPutV1": { - "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:28.175870586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description - updated\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"59862206-fc69-4291-9db8-31d9511d650c\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b7380b49-0878-419a-88dc-bf0bed72d977\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b7380b49-0878-419a-88dc-bf0bed72d977\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:48.150361348Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description - updated\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"f6bff195-bf12-450b-bce4-1c813fa59139\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/69738ff0-1eb0-4609-b580-44e9e420325b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=69738ff0-1eb0-4609-b580-44e9e420325b\"\n }\n }\n}" } } } @@ -3814,7 +3814,7 @@ { "name": "uuid", "in": "path", - "description": "The UUID of the meshBuildingBlock to retrieve.", + "description": "The UUID that uniquely identifies the meshBuildingBlock.", "required": true, "schema": { "type": "string" @@ -3823,35 +3823,35 @@ { "name": "Accept", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json" + "example": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json" } ], "responses": { "200": { "description": "200", "content": { - "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json": { + "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshBuildingBlockV2" + "$ref": "#/components/schemas/meshBuildingBlock" }, "examples": { - "meshBuildingBlockV2": { - "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.017007172Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}" + "meshBuildingBlock": { + "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.091152405Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}" } } }, - "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json": { + "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshBuildingBlock" + "$ref": "#/components/schemas/meshBuildingBlockV2" }, "examples": { - "meshBuildingBlock": { - "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.096812698Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}" + "meshBuildingBlockV2": { + "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.528351150Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}" } } } @@ -3937,7 +3937,7 @@ }, "examples": { "meshCommunicationDefinition": { - "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-04\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-10\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n}" } } } @@ -4014,7 +4014,7 @@ }, "examples": { "meshCommunicationDefinitionPut": { - "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"my-new-title\",\n \"message\" : \"my-new-message\",\n \"dueDate\" : \"2099-05-31\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"my-new-title\",\n \"message\" : \"my-new-message\",\n \"dueDate\" : \"2099-05-31\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n}" } } } @@ -4110,7 +4110,7 @@ }, "examples": { "meshCommunication": { - "value": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n}" } } } @@ -4186,7 +4186,7 @@ }, "examples": { "meshEventLog": { - "value": "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"055b1f56-4768-472b-908e-d0f6d994c185\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/055b1f56-4768-472b-908e-d0f6d994c185\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f89b35b1-07a4-424d-87e1-b9a4cf751bc8\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/f89b35b1-07a4-424d-87e1-b9a4cf751bc8\"\n }\n }\n}" } } } @@ -4213,7 +4213,7 @@ "Integrations" ], "summary": "Get an integration", - "description": "Retrieve detailed information about a integration by its UUID.\n\nThe response includes all integration configuration except for sensitive fields, \nwhich are masked with '' for security purposes.\n\nUsers can only retrieve integrations that belong to their workspace.\nPlatform administrators can retrieve any integration.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Retrieve detailed information about a integration by its UUID.\n\nThe response includes all integration configuration except for sensitive fields, \nwhich are masked with '' for security purposes.\n\nUsers can only retrieve integrations that belong to their workspace as well as built-in integrations (replicator and metering).\nPlatform administrators can retrieve any integration.\n\nTo get the built-in integrations, use the following UUIDs:\n- Replicator: c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\n- Metering: a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\n\n**Authentication:** This endpoint supports API Key authentication.", "operationId": "meshIntegration-Get-", "parameters": [ { @@ -4242,17 +4242,23 @@ "content": { "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshIntegration-Get-azure_devops" + "$ref": "#/components/schemas/meshIntegration-Get-gitlab" }, "examples": { - "meshIntegration-Get-azure_devops": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}" - }, "meshIntegration-Get-gitlab": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}" + }, + "meshIntegration-Get-builtin-replicator": { + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Replicator (Built-in)\",\n \"config\" : {\n \"type\" : \"replicator\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:replicator\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\"\n }\n }\n}" + }, + "meshIntegration-Get-builtin-metering": { + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Metering (Built-in)\",\n \"config\" : {\n \"type\" : \"metering\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:kraken-worker\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\"\n }\n }\n}" + }, + "meshIntegration-Get-azure_devops": { + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}" }, "meshIntegration-Get-github": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}" } } } @@ -4309,17 +4315,17 @@ "content": { "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshintegrations-uuid220444133" + "$ref": "#/components/schemas/api-meshobjects-meshintegrations-uuid-1771799843" }, "examples": { + "meshIntegration-Put-github": { + "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitHub Integration\",\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n }\n }\n }\n }\n}" + }, "meshIntegration-Put-azure_devops": { - "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}" + "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Azure DevOps Integration\",\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n }\n }\n }\n }\n}" }, "meshIntegration-Put-gitlab": { - "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitLab Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n },\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\"\n }\n }\n }\n}" - }, - "meshIntegration-Put-github": { - "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitHub Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n },\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\"\n }\n }\n }\n}" + "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitLab Integration\",\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n }\n }\n }\n }\n}" } } } @@ -4331,17 +4337,17 @@ "content": { "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshIntegration-Put-azure_devops" + "$ref": "#/components/schemas/meshIntegration-Put-github" }, "examples": { + "meshIntegration-Put-github": { + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}" + }, "meshIntegration-Put-azure_devops": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}" }, "meshIntegration-Put-gitlab": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}" - }, - "meshIntegration-Put-github": { - "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}" } } } @@ -4433,29 +4439,29 @@ "content": { "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshLandingZone-Get-aks" + "$ref": "#/components/schemas/meshLandingZone-Get-aws" }, "examples": { + "meshLandingZone-Get-aws": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}" + }, "meshLandingZone-Get-aks": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}" }, "meshLandingZone-Get-azurerg": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}" }, "meshLandingZone-Get-kubernetes": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}" }, - "meshLandingZone-Get-gcp": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}" + "meshLandingZone-Get-openshift": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}" }, - "meshLandingZone-Get-aws": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}" + "meshLandingZone-Get-gcp": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}" }, "meshLandingZone-Get-azure": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}" - }, - "meshLandingZone-Get-openshift": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}" } } } @@ -4516,25 +4522,25 @@ }, "examples": { "meshLandingZone-Put-aws": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" - }, - "meshLandingZone-Put-kubernetes": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"description\" : \"An updated kubernetes landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}" - }, - "meshLandingZone-Put-azurerg": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"description\" : \"An updated azurerg landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}" - }, - "meshLandingZone-Put-aks": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aks\",\n \"description\" : \"An updated aks landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" }, "meshLandingZone-Put-azure": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azure\",\n \"description\" : \"An updated azure landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azure\",\n \"description\" : \"An updated azure landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" }, "meshLandingZone-Put-openshift": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"description\" : \"An updated openshift landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"description\" : \"An updated openshift landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}" + }, + "meshLandingZone-Put-kubernetes": { + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"description\" : \"An updated kubernetes landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}" }, "meshLandingZone-Put-gcp": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"description\" : \"An updated gcp landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"description\" : \"An updated gcp landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}" + }, + "meshLandingZone-Put-aks": { + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aks\",\n \"description\" : \"An updated aks landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}" + }, + "meshLandingZone-Put-azurerg": { + "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"description\" : \"An updated azurerg landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}" } } } @@ -4550,25 +4556,25 @@ }, "examples": { "meshLandingZone-Put-aws": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}" - }, - "meshLandingZone-Put-kubernetes": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}" - }, - "meshLandingZone-Put-azurerg": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}" - }, - "meshLandingZone-Put-aks": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}" }, "meshLandingZone-Put-azure": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}" }, "meshLandingZone-Put-openshift": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}" + }, + "meshLandingZone-Put-kubernetes": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}" }, "meshLandingZone-Put-gcp": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}" + }, + "meshLandingZone-Put-aks": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}" + }, + "meshLandingZone-Put-azurerg": { + "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}" } } } @@ -4664,7 +4670,7 @@ }, "examples": { "meshLocation-Get": { - "value": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}" } } } @@ -4741,7 +4747,7 @@ }, "examples": { "meshLocation-Put": { - "value": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Location Name\",\n \"description\" : \"An updated description\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Location Name\",\n \"description\" : \"An updated description\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}" } } } @@ -4967,29 +4973,29 @@ "content": { "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatform-Get-V2-azure" + "$ref": "#/components/schemas/meshPlatform-Get-V2-aks" }, "examples": { - "meshPlatform-Get-V2-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Get-V2-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a1f72da6be7aaaedaa39b63860dc190a56fd64d94f8d5bc4a80b698e8b309230\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:5d7406fc2a2264d7ebb154517cf272e5d8f321afa904674014aac1b03be19a0f\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:67961182f8b064537dca0b39318b9343008cec2a261fc7bf7639db4613c37a91\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Get-V2-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Get-V2-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:da6cd6c64a1a0e762673381a3de53ba2e8d3b660e9fcc82847aa5d386a976149\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Get-V2-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:54e2ab41e5df6d248233086f225d1cb3026afe1076c95f55d54688cb575554a7\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:591f84d517295002cedad1f76e550f48e27388275faf699cb3bec6d721fe0d26\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Get-V2-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Get-V2-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:27135b23908ca4e4d1d7e6cd2496214bb0bc16450f9d714af13359d36df5bb7e\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:da85f516ba791aa9ee4c9d187305fd54e8c847b3623af33a733133f8db83bc99\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Get-V2-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Get-V2-gcp": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:c388b5b964d03e444aa285be9e2a2d2fea916835636c772a814c7066ebbf4a63\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1937bbff04ba7d18f8bb151ecae3c5ea101ab3fc71f2d89b29ae5dd195ffe8dc\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Get-V2-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:2776d45cbb61bd0a228a5c4c0c437f2d4cbb4caa3fa7c87d4a248a3c995f5481\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:1c9240a05e5aa0c1b5119968c64df5e03239166d5ded8a6078d4c6ed3faaafae\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:8d2d90614f1a7c0015d4d088d63a12816330a2f45fdcf80353ed0a1b0fecce15\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Get-V2-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Get-V2-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:4650f4aba4b817cf0ae3dd1238839b15ba81e7a04be745a7c5ddf28d10dbe411\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:159df31e7949bee5c5792d00ada5de8a3f603c7ecea6e64433f16e38e06a265d\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4514fe9857aa65a9241c491e058729a1a1b43cf05048294e29ad9e8098934de\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } }, @@ -4999,25 +5005,25 @@ }, "examples": { "meshPlatform-Get-V1-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Get-V1-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + }, + "meshPlatform-Get-V1-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + }, + "meshPlatform-Get-V1-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Get-V1-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Get-V1-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatform-Get-V1-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" - }, - "meshPlatform-Get-V1-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" - }, - "meshPlatform-Get-V1-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } } @@ -5052,79 +5058,79 @@ { "name": "Content-Type", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshplatform.v1.hal+json" + "example": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json" }, { "name": "Accept", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshplatform.v1.hal+json" + "example": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json" } ], "requestBody": { "content": { - "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { + "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshplatforms-uuid-1785714494" + "$ref": "#/components/schemas/api-meshobjects-meshplatforms-uuid337042054" }, "examples": { - "meshPlatform-Put-V1-aks": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"}}}\n }\n}" + "meshPlatform-Put-V2-gcp": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"624e2f32-7bd2-4544-946b-9d2844a44ae7\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V1-gcp": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"64aebcac-7320-48ac-ba2a-4478af7878ad\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"roleMappings\":{\"admin\":\"roles/owner\",\"member\":\"roles/editor\",\"reader\":\"roles/viewer\"},\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false}}}\n }\n}" + "meshPlatform-Put-V2-azure": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"72093497-42d1-4627-b3eb-9b473144e77a\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V1-azurerg": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"50931c5d-a94f-465c-8ada-7aadeffc267d\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}" + "meshPlatform-Put-V2-openshift": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V1-aws": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"dc86975b-1098-4c96-92b6-43f9423263db\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"roleMappings\":{\"admin\":{\"awsRoleName\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},\"member\":{\"awsRoleName\":\"MemberRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}},\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false}}}\n }\n}" + "meshPlatform-Put-V2-kubernetes": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"67d9d50e-4647-400d-b1ab-77d92d64a215\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V1-openshift": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"30c27412-18d0-4068-b309-071d988f3d39\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"roleMappings\":{\"admin\":\"admin\",\"member\":\"edit\",\"reader\":\"view\"},\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}}}}\n }\n}" + "meshPlatform-Put-V2-azurerg": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V1-kubernetes": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"}}}\n }\n}" + "meshPlatform-Put-V2-aws": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"plaintext\" : \"sso-access-token-value\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V1-azure": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"roleMappings\":{\"admin\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"},\"member\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"},\"reader\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}},\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true}}}\n }\n}" + "meshPlatform-Put-V2-aks": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }" } } }, - "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { + "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshplatforms-uuid-1072471072" + "$ref": "#/components/schemas/api-meshobjects-meshplatforms-uuid-1690114231" }, "examples": { - "meshPlatform-Put-V2-kubernetes": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"84e38de6-17bd-4975-acc2-2f337100c1b7\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }" + "meshPlatform-Put-V1-aks": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"ca370346-86b3-4816-8ec4-c912f087a52d\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"*****\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V2-azure": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"azureRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"}},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"}},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}}],\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true},\"metering\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}" + "meshPlatform-Put-V1-aws": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4a867d38-a799-4abe-8d57-b695fb945d37\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"*****\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"sso-access-token-value\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V2-aks": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"6b5ea37b-1aaf-4967-858a-f35d6b562474\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }" + "meshPlatform-Put-V1-azure": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4c7d9602-4002-48c1-8613-6c17c93d1d66\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V2-aws": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"awsRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"ReaderRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}],\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false},\"metering\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"filter\":\"NONE\",\"reservedInstanceFairChargeback\":false,\"savingsPlanFairChargeback\":false,\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}" + "meshPlatform-Put-V1-gcp": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"*****\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V2-openshift": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"openshiftRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"admin\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"edit\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"view\"}],\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}},\"metering\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }" + "meshPlatform-Put-V1-kubernetes": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"a8e75ec6-7d27-4046-9db2-313e4034bf94\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V2-gcp": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"86f970c9-a042-48b2-8a72-0f86da488c33\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"gcpRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/owner\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/editor\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/viewer\"}],\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false},\"metering\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"bigqueryTable\":\"project.dataset.table\",\"bigqueryTableForCarbonFootprint\":\"project.dataset.carbon_table\",\"carbonFootprintDataCollectionStartMonth\":\"2023-01\",\"partitionTimeColumn\":\"export_time\",\"additionalFilter\":\"project.id != 'excluded-project'\",\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}" + "meshPlatform-Put-V1-azurerg": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"d9660c03-dd72-4eca-b126-407fa78a2cad\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }" }, - "meshPlatform-Put-V2-azurerg": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}" + "meshPlatform-Put-V1-openshift": { + "value": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n}\n }\n }" } } } @@ -5134,59 +5140,59 @@ "200": { "description": "200", "content": { - "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { + "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatform-Put-V1-aks" + "$ref": "#/components/schemas/meshPlatform-Put-V2-gcp" }, "examples": { - "meshPlatform-Put-V1-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V2-gcp": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1eaea39884dcb242658a81115f6f14aa704a2a512d5fb92c8c38b1a7aad25227\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:76c87a86da241399b90bba832c161cd20f08dcdab4f9f8d208e74bb2233052ec\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V1-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V2-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:049e0d064434ba93556313dbe6bb597d1cfc2948be688f3f9806bbd8da3ab8f2\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:314caa0f25d395036055c3ec1003405991b7efbb80cb245212a88fa1288747aa\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4304402aa902a654c0675f6c26fe44759e4a09ee4dc1444a0436f38270bcc9d\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V1-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V2-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:3930d71d901339c705db68c6c9e936b786bd2109deba5dc2a291656e042e84fc\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:23bd866e9f3a693d32937fbe1eace4c4b58f3f450823fa9bd7251ad3c617f4a1\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V1-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V2-kubernetes": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:b3a6cdd668be75a6cb239fda82fc5ea8249fa36d9b46331af8f074e3d0606676\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a356420aa3bd1a0bfb66c77d6f944efbd6998550a926738ae1296ccf2ffad001\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V1-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V2-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1b3e9e472822c72a8829f0821f1b8bb90d3a80ad7c08ec29fa3d77004cebf486\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V1-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V2-aws": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:bad878c0be2657848e1d7709b2fdd649ce0b0cb752e014f580f4559eb484f3c2\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:a19540d809291fe9606393b6f7a6f1f05056b9b07f2cedd814478bbe2d00b9d3\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:ae9a969772f48321dc12d5b31cc029645df18f198e2504d2a9a449302f89feab\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V1-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V2-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:16e9a895bf1cf8a122fd5204acbbaf0f5766fd85855002f20ebe350f40a28458\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:28b4d3aea334447442394eb4e77122e397318b5b2570726c4a5bb48de387321a\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:ed80c632e4b93c6145fcdfe19fb2ba09265a344ef4d09839e7c5c1847dd85876\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } }, - "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { + "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatform-Put-V2-kubernetes" + "$ref": "#/components/schemas/meshPlatform-Put-V1-aks" }, "examples": { - "meshPlatform-Put-V2-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V1-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V2-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V1-aws": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V2-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V1-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V2-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V1-gcp": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V2-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V1-kubernetes": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V2-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V1-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatform-Put-V2-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatform-Put-V1-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } } @@ -5221,12 +5227,12 @@ { "name": "Accept", "in": "header", - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint.", + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint.", "required": true, "schema": { "type": "string" }, - "example": "application/vnd.meshcloud.api.meshplatform.v1.hal+json" + "example": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json" } ], "responses": { @@ -5282,7 +5288,7 @@ }, "examples": { "meshPlatformTypeV1": { - "value": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}" } } } @@ -5359,7 +5365,7 @@ }, "examples": { "meshPlatformTypeV1Put": { - "value": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Custom Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://updated.example.com\",\n \"icon\" : \"updated-icon\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Custom Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://updated.example.com\",\n \"icon\" : \"updated-icon\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}" } } } @@ -5464,7 +5470,7 @@ }, "examples": { "meshProjectGroupBindingListV3": { - "value": "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -5596,7 +5602,7 @@ }, "examples": { "meshProjectUserBindingListV3": { - "value": "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -5892,7 +5898,7 @@ }, "examples": { "meshProjectV2": { - "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-12-03T13:50:01.674801462Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-12-09T14:58:27.338005716Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}" } } } @@ -5953,7 +5959,7 @@ }, "examples": { "meshProjectPut": { - "value": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}" + "value": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}" } } } @@ -5969,7 +5975,7 @@ }, "examples": { "meshProjectPut": { - "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}" } } } @@ -6024,7 +6030,7 @@ }, "examples": { "meshServiceInstanceGet": { - "value": "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}" } } } @@ -6085,7 +6091,7 @@ }, "examples": { "meshServiceInstancePut": { - "value": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}" + "value": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}" } } } @@ -6380,7 +6386,7 @@ }, "examples": { "meshTenantV3": { - "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-04T13:50:04.839868061Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"a2a34b5f-654e-448a-90d7-8134c81d47f3\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-10T14:58:32.700446663Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"fe177f6a-0e92-45fd-94cc-327d475ab2a8\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n}" } } } @@ -6435,7 +6441,7 @@ }, "examples": { "meshTenantV4": { - "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.835644642Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"53277734-8b43-4e4e-a70b-76aeb244c38c\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.757443327Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/53277734-8b43-4e4e-a70b-76aeb244c38c\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n}" } } } @@ -6520,7 +6526,7 @@ }, "examples": { "meshUserV2": { - "value": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"0f0c0a0c-b40c-4bc4-81be-eadebb04b3c6\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"ce61d42a-5e96-42cd-99ff-be4607a2560f\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"a69e8734-0952-49e0-9a8a-1cf0ec4384a1\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"4a00028c-186e-4399-8a53-cc036c015aa5\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n}" } } } @@ -6557,11 +6563,11 @@ "content": { "application/vnd.meshcloud.api.meshuser.v2.hal+json": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshusers-username-179515684" + "$ref": "#/components/schemas/api-meshobjects-meshusers-179515684" }, "examples": { "meshUserV2Put": { - "value": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"f11dc0f3-70a9-4509-9017-c49d30c2073e\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}" + "value": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"1a7747bd-0fa9-4c8c-b53c-ac54f1b1ed20\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}" } } } @@ -6577,7 +6583,7 @@ }, "examples": { "meshUserV2Put": { - "value": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"13c9ae80-b95b-4e96-b8c4-10cb0812bf52\",\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"f11dc0f3-70a9-4509-9017-c49d30c2073e\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/samira-johnson\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=samira-johnson\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"20079969-2223-4dab-b895-5f6fec0b86a4\",\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"1a7747bd-0fa9-4c8c-b53c-ac54f1b1ed20\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/samira-johnson\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=samira-johnson\"\n }\n }\n}" } } } @@ -6672,7 +6678,7 @@ }, "examples": { "meshWorkspaceGroupBindingList": { - "value": "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"77d986cc-ac85-46b2-ae00-b3a70b094644\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/77d986cc-ac85-46b2-ae00-b3a70b094644\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -6936,7 +6942,7 @@ }, "examples": { "meshWorkspace": { - "value": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n}" } } } @@ -7013,7 +7019,7 @@ }, "examples": { "meshWorkspacePut": { - "value": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-03T13:50:10.541598661Z\"\n },\n \"spec\" : {\n \"displayName\" : \"updated workspace name\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-09T14:58:38.731585303Z\"\n },\n \"spec\" : {\n \"displayName\" : \"updated workspace name\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}" } } } @@ -7109,7 +7115,7 @@ }, "examples": { "meshWorkspaceUserGroup": { - "value": "{\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"11284a3b-df7c-4185-863f-7715a9ea12be\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"aeddeef1-873b-4433-91e7-a45418d6576a\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n}" } } } @@ -7197,7 +7203,7 @@ }, "examples": { "meshProjectGroupBindingV3": { - "value": "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n }\n }\n}" } } } @@ -7283,7 +7289,7 @@ }, "examples": { "meshProjectUserBindingV3": { - "value": "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n }\n }\n}" } } } @@ -7369,7 +7375,7 @@ }, "examples": { "meshWorkspaceGroupBinding": { - "value": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"77d986cc-ac85-46b2-ae00-b3a70b094644\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/77d986cc-ac85-46b2-ae00-b3a70b094644\"\n }\n }\n}" } } } @@ -7831,399 +7837,12 @@ } } }, - "meshCommunicationDefinitionPut": { - "title": "meshCommunicationDefinitionPut", - "type": "object" - }, - "meshTenantListV4": { - "title": "meshTenantListV4", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshTenants" - ], - "type": "object", - "properties": { - "meshTenants": { - "type": "array", - "description": "List of meshTenants.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "meshCommunicationPost": { - "title": "meshCommunicationPost", - "type": "object" - }, - "meshPlatform-List-V2": { - "title": "meshPlatform-List-V2", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Contains the self link and pagination links (first, last, next, prev)." - }, - "_embedded": { - "required": [ - "meshPlatforms" - ], - "type": "object", - "properties": { - "meshPlatforms": { - "type": "array", - "description": "List of meshPlatforms with their configurations. Each platform object has the same structure as documented in the GET single platform response.", - "items": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace", - "uuid" - ], - "type": "object", - "properties": { - "deletedOn": { - "type": "string", - "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", - "nullable": true - }, - "name": { - "type": "string", - "description": "The platform identifier as 'name' to identify the meshPlatform." - }, - "uuid": { - "type": "string", - "description": "The UUID of the meshPlatform." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace that owns this meshPlatform." - } - }, - "description": "Contains metadata to uniquely identify the meshPlatform." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." - }, - "spec": { - "required": [ - "availability", - "config", - "displayName", - "locationRef", - "quotaDefinitions" - ], - "type": "object", - "properties": { - "documentationUrl": { - "type": "string", - "description": "URL for platform documentation.", - "nullable": true - }, - "quotaDefinitions": { - "type": "array", - "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For unsupported platform types (those not listed above), quota definitions have to be provided as an empty array. For supported platform types, providing an empty array will remove all existing quota definitions of the given platform.", - "items": { - "required": [ - "autoApprovalThreshold", - "description", - "label", - "maxValue", - "minValue", - "quotaKey" - ], - "type": "object", - "properties": { - "quotaKey": { - "type": "string", - "description": "The key of the quota as it is required by the cloud platform." - }, - "minValue": { - "type": "number", - "description": "Minimum allowed value for this quota." - }, - "unit": { - "type": "string", - "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", - "nullable": true - }, - "autoApprovalThreshold": { - "type": "number", - "description": "Threshold below which quota requests are automatically approved." - }, - "maxValue": { - "type": "number", - "description": "Maximum allowed value for this quota." - }, - "description": { - "type": "string", - "description": "Detailed description of what this quota controls." - }, - "label": { - "type": "string", - "description": "Human-readable label for the quota." - } - } - } - }, - "endpoint": { - "type": "string", - "description": "The web console URL endpoint of the platform.", - "nullable": true - }, - "locationRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The kind of the referenced location, always 'meshLocation'." - }, - "name": { - "type": "string", - "description": "The identifier of the location." - } - }, - "description": "Reference to the location where this platform is situated." - }, - "displayName": { - "type": "string", - "description": "The human-readable display name of the meshPlatform." - }, - "supportUrl": { - "type": "string", - "description": "URL for platform support documentation.", - "nullable": true - }, - "description": { - "type": "string", - "description": "description of the meshPlatform.", - "nullable": true - }, - "availability": { - "required": [ - "publicationState", - "restriction" - ], - "type": "object", - "properties": { - "publicationState": { - "type": "string", - "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." - }, - "restriction": { - "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." - }, - "restrictedToWorkspaces": { - "type": "array", - "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Availability configuration for the meshPlatform." - }, - "readme": { - "type": "string", - "description": "README about the meshPlatform in markdown format", - "nullable": true - }, - "config": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "kubernetes": { - "type": "object", - "description": "Kubernetes configuration, if applicable.", - "nullable": true - }, - "gcp": { - "type": "object", - "description": "GCP configuration, if applicable.", - "nullable": true - }, - "azurerg": { - "type": "object", - "description": "Azure Resource Group configuration, if applicable.", - "nullable": true - }, - "openshift": { - "type": "object", - "description": "Openshift configuration, if applicable.", - "nullable": true - }, - "aks": { - "type": "object", - "description": "Azure Kubernetes Service configuration, if applicable.", - "nullable": true - }, - "aws": { - "type": "object", - "description": "AWS configuration, if applicable.", - "nullable": true - }, - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." - }, - "azure": { - "type": "object", - "description": "Azure configuration, if applicable.", - "nullable": true - } - }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." - }, - "contributingWorkspaces": { - "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "All fields in this section describe the meshPlatform configuration." - }, - "status": { - "type": "object", - "description": "Current status information of the meshPlatform." - } - } - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "api-meshobjectcollections-319085079": { - "required": [ - "name", - "owner" - ], - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The owner of the meshObjectCollection" - }, - "name": { - "type": "string", - "description": "Name of the meshObjectCollection" - } - } - }, - "meshBuildingBlockRunSourceUpdate": { - "title": "meshBuildingBlockRunSourceUpdate", - "required": [ - "runAborted" - ], - "type": "object", - "properties": { - "runAborted": { - "type": "boolean", - "description": "DO NOT USE. This response is a known issue and will be fixed in future releases." - } - } - }, - "meshPlatform-Put-V1-aks": { - "title": "meshPlatform-Put-V1-aks", + "api-meshobjects-meshplatforms-uuid-1690114231": { "required": [ - "_links", "apiVersion", "kind", "metadata", - "spec", - "status" + "spec" ], "type": "object", "properties": { @@ -8259,10 +7878,6 @@ "type": "string", "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." }, - "_links": { - "type": "object", - "description": "Available links on this meshObject." - }, "kind": { "type": "string", "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." @@ -8427,12 +8042,12 @@ "properties": { "administrativeUnitId": { "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "description": "Administrative unit ID for group placement", "nullable": true }, "userGroupNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" }, "servicePrincipal": { "required": [ @@ -8444,7 +8059,7 @@ "properties": { "clientId": { "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" + "description": "The Application (Client) ID" }, "credentialsAuthClientSecret": { "type": "string", @@ -8457,7 +8072,7 @@ }, "objectId": { "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + "description": "The Object ID of the Enterprise Application" } }, "description": "Service principal configuration for Azure" @@ -8471,14 +8086,14 @@ "properties": { "redirectUrl": { "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" }, "sendAzureInvitationMail": { "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." + "description": "When true, Azure sends Invitation mails to invited users" } }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + "description": "Optional B2B user invitation configuration" }, "tenantTags": { "required": [ @@ -8510,30 +8125,30 @@ }, "namespacePrefix": { "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + "description": "Prefix for all labels created by meshStack" } }, "description": "Tenant tags configuration" }, "userLookUpStrategy": { "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + "description": "User lookup strategy ('userPrincipalName' or 'email')" }, "subscription": { "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." + "description": "The Subscription that will contain all the created Resource Groups" }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "description": "Preserve user groups and replicated permission after tenant deletion" }, "resourceGroupNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" }, "allowHierarchicalManagementGroupAssignment": { "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "description": "Enable or disable hierarchical management group assignment", "nullable": true } }, @@ -9507,10 +9122,390 @@ } }, "description": "All fields in this section describe the meshPlatform configuration." + } + } + }, + "meshCommunicationDefinitionPut": { + "title": "meshCommunicationDefinitionPut", + "type": "object" + }, + "meshTenantListV4": { + "title": "meshTenantListV4", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." }, - "status": { + "_embedded": { + "required": [ + "meshTenants" + ], "type": "object", - "description": "Current status information of the meshPlatform." + "properties": { + "meshTenants": { + "type": "array", + "description": "List of meshTenants.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshCommunicationPost": { + "title": "meshCommunicationPost", + "type": "object" + }, + "api-meshobjectcollections-319085079": { + "required": [ + "name", + "owner" + ], + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The owner of the meshObjectCollection" + }, + "name": { + "type": "string", + "description": "Name of the meshObjectCollection" + } + } + }, + "meshPlatform-List-V2": { + "title": "meshPlatform-List-V2", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Contains the self link and pagination links (first, last, next, prev)." + }, + "_embedded": { + "required": [ + "meshPlatforms" + ], + "type": "object", + "properties": { + "meshPlatforms": { + "type": "array", + "description": "List of meshPlatforms with their configurations. Each platform object has the same structure as documented in the GET single platform response.", + "items": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec", + "status" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace", + "uuid" + ], + "type": "object", + "properties": { + "deletedOn": { + "type": "string", + "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", + "nullable": true + }, + "name": { + "type": "string", + "description": "The platform identifier as 'name' to identify the meshPlatform." + }, + "uuid": { + "type": "string", + "description": "The UUID of the meshPlatform." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace that owns this meshPlatform." + } + }, + "description": "Contains metadata to uniquely identify the meshPlatform." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." + }, + "spec": { + "required": [ + "availability", + "config", + "displayName", + "locationRef", + "quotaDefinitions" + ], + "type": "object", + "properties": { + "documentationUrl": { + "type": "string", + "description": "URL for platform documentation.", + "nullable": true + }, + "quotaDefinitions": { + "type": "array", + "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For unsupported platform types (those not listed above), quota definitions have to be provided as an empty array. For supported platform types, providing an empty array will remove all existing quota definitions of the given platform.", + "items": { + "required": [ + "autoApprovalThreshold", + "description", + "label", + "maxValue", + "minValue", + "quotaKey" + ], + "type": "object", + "properties": { + "quotaKey": { + "type": "string", + "description": "The key of the quota as it is required by the cloud platform." + }, + "minValue": { + "type": "number", + "description": "Minimum allowed value for this quota." + }, + "unit": { + "type": "string", + "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", + "nullable": true + }, + "autoApprovalThreshold": { + "type": "number", + "description": "Threshold below which quota requests are automatically approved." + }, + "maxValue": { + "type": "number", + "description": "Maximum allowed value for this quota." + }, + "description": { + "type": "string", + "description": "Detailed description of what this quota controls." + }, + "label": { + "type": "string", + "description": "Human-readable label for the quota." + } + } + } + }, + "endpoint": { + "type": "string", + "description": "The web console URL endpoint of the platform.", + "nullable": true + }, + "locationRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "The kind of the referenced location, always 'meshLocation'." + }, + "name": { + "type": "string", + "description": "The identifier of the location." + } + }, + "description": "Reference to the location where this platform is situated." + }, + "displayName": { + "type": "string", + "description": "The human-readable display name of the meshPlatform." + }, + "supportUrl": { + "type": "string", + "description": "URL for platform support documentation.", + "nullable": true + }, + "description": { + "type": "string", + "description": "description of the meshPlatform.", + "nullable": true + }, + "availability": { + "required": [ + "publicationState", + "restriction" + ], + "type": "object", + "properties": { + "publicationState": { + "type": "string", + "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." + }, + "restriction": { + "type": "string", + "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." + }, + "restrictedToWorkspaces": { + "type": "array", + "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Availability configuration for the meshPlatform." + }, + "readme": { + "type": "string", + "description": "README about the meshPlatform in markdown format", + "nullable": true + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "kubernetes": { + "type": "object", + "description": "Kubernetes configuration, if applicable.", + "nullable": true + }, + "gcp": { + "type": "object", + "description": "GCP configuration, if applicable.", + "nullable": true + }, + "azurerg": { + "type": "object", + "description": "Azure Resource Group configuration, if applicable.", + "nullable": true + }, + "openshift": { + "type": "object", + "description": "Openshift configuration, if applicable.", + "nullable": true + }, + "aks": { + "type": "object", + "description": "Azure Kubernetes Service configuration, if applicable.", + "nullable": true + }, + "aws": { + "type": "object", + "description": "AWS configuration, if applicable.", + "nullable": true + }, + "type": { + "type": "string", + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." + }, + "azure": { + "type": "object", + "description": "Azure configuration, if applicable.", + "nullable": true + } + }, + "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + }, + "contributingWorkspaces": { + "type": "array", + "description": "A list of workspace identifiers that may contribute to this meshPlatform.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "All fields in this section describe the meshPlatform configuration." + }, + "status": { + "type": "object", + "description": "Current status information of the meshPlatform." + } + } + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshBuildingBlockRunSourceUpdate": { + "title": "meshBuildingBlockRunSourceUpdate", + "required": [ + "runAborted" + ], + "type": "object", + "properties": { + "runAborted": { + "type": "boolean", + "description": "DO NOT USE. This response is a known issue and will be fixed in future releases." } } }, @@ -9735,34 +9730,8 @@ } } }, - "meshWorkspacePost": { - "title": "meshWorkspacePost", - "type": "object" - }, - "api-meshobjectcollections1637419709": { - "required": [ - "description", - "name", - "owner" - ], - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The owner of the meshObjectCollection" - }, - "name": { - "type": "string", - "description": "Name of the meshObjectCollection (has to be unique)" - }, - "description": { - "type": "string", - "description": "A freetext field to help describing the contents of the meshObjectCollection" - } - } - }, - "meshBuildingBlockDefinitionPutV1": { - "title": "meshBuildingBlockDefinitionPutV1", + "meshPlatform-Post-V1-kubernetes": { + "title": "meshPlatform-Post-V1-kubernetes", "required": [ "_links", "apiVersion", @@ -9775,256 +9744,133 @@ "properties": { "metadata": { "required": [ - "createdOn", + "name", "ownedByWorkspace", - "tags", "uuid" ], "type": "object", "properties": { - "createdOn": { + "deletedOn": { "type": "string", - "description": "The Building Block Definition has been created at this date (e.g. `2020-12-22T09:37:43Z`)." + "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", + "nullable": true }, - "uuid": { + "name": { "type": "string", - "description": "The UUID to uniquely identify the Building Block Definition." + "description": "The platform identifier as 'name' to identify the meshPlatform." }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the Building Block Definition. Keep in mind, that values are an array." + "uuid": { + "type": "string", + "description": "The UUID of the meshPlatform." }, "ownedByWorkspace": { "type": "string", - "description": "The identifier of the meshWorkspace the Building Blocks Definition belongs to." + "description": "The identifier of the workspace that owns this meshPlatform." } }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block Definition. It also contains additional meta information like the Building Block Definition creation date." + "description": "Contains metadata to uniquely identify the meshPlatform." }, "apiVersion": { "type": "string", - "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", - "description": "Available links on a Building Block Definition." + "description": "Available links on this meshObject." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." }, "spec": { "required": [ - "description", + "availability", + "config", "displayName", - "documentationUrl", - "notificationSubscriberUsernames", - "runTransparency", - "supportUrl", - "supportedPlatforms", - "symbol", - "targetType", - "useInLandingZonesOnly" + "locationRef" ], "type": "object", "properties": { - "symbol": { - "type": "string", - "description": "The symbol of the Building Block Definition as it is shown in meshPanel." - }, "documentationUrl": { "type": "string", - "description": "The URL pointing to documentation of the Building Block Definition. (optional)" - }, - "displayName": { - "type": "string", - "description": "The display name of the Building Block Definition as it is shown in meshPanel." - }, - "supportUrl": { - "type": "string", - "description": "The URL pointing to support of the Building Block Definition. (optional)" - }, - "description": { - "type": "string", - "description": "The description of the Building Block Definition as it is shown in meshPanel." + "description": "URL for platform documentation.", + "nullable": true }, - "targetType": { + "endpoint": { "type": "string", - "description": "The type of Building Block Definition. (One of [TENANT_LEVEL, WORKSPACE_LEVEL])" - }, - "runTransparency": { - "type": "boolean", - "description": "Specifies the Building Block Definition run control. When set to true, both platform teams and workspace users can view detailed run logs and re-run building blocks. When set to false (default), only platform teams have this access." - }, - "supportedPlatforms": { - "type": "array", - "description": "List of the platforms this Building Block Definition supports", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "notificationSubscriberUsernames": { - "type": "array", - "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } + "description": "The web console URL endpoint of the platform.", + "nullable": true }, - "useInLandingZonesOnly": { - "type": "boolean", - "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." - } - }, - "description": "All fields in this section describe the Building Block Definition." - }, - "status": { - "required": [ - "latestReleasedVersion", - "latestVersion", - "versions" - ], - "type": "object", - "properties": { - "versions": { - "type": "array", - "description": "List of meshBuildingBlockDefinitionVersions, which exist for the Building Block Definition.", - "items": { - "required": [ - "state", - "versionNumber", - "versionUuid" - ], - "type": "object", - "properties": { - "versionUuid": { - "type": "string", - "description": "The uuid of the listed version" - }, - "state": { - "type": "string", - "description": "The state of the listed version. (One of [DRAFT, RELEASED])" - }, - "versionNumber": { - "type": "number", - "description": "The number of the listed version." - } + "locationRef": { + "required": [ + "identifier", + "kind" + ], + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "The identifier of the location." + }, + "kind": { + "type": "string", + "description": "The kind of the referenced location, always 'meshLocation'." } - } - }, - "latestReleasedVersion": { - "type": "number", - "description": "The number of the latest version based on this Building Block Definition not including a possible draft version." + }, + "description": "Reference to the location where this platform is situated." }, - "latestVersion": { - "type": "number", - "description": "The number of the latest version based on this Building Block Definition including a possible draft version." - } - }, - "description": "All fields in this section describe the current status of the Building Block Definition." - } - } - }, - "meshIntegration-Get-azure_devops": { - "title": "meshIntegration-Get-azure_devops", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "createdOn": { + "displayName": { "type": "string", - "description": "Timestamp when the integration was created. This field is automatically set by the system and cannot be modified.", - "nullable": true + "description": "The human-readable display name of the meshPlatform." }, - "uuid": { + "supportUrl": { "type": "string", - "description": "The UUID that uniquely identifies the integration across all integrations.", + "description": "URL for platform support documentation.", "nullable": true }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace identifier that owns this integration." - } - }, - "description": "Contains identifiers and ownership information for the integration." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshIntegration." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." - }, - "spec": { - "required": [ - "config", - "displayName", - "runnerRef" - ], - "type": "object", - "properties": { - "displayName": { + "description": { "type": "string", - "description": "The display name of the integration." + "description": "description of the meshPlatform.", + "nullable": true }, - "runnerRef": { + "availability": { "required": [ - "kind", - "uuid" + "marketplaceStatus", + "restriction" ], "type": "object", "properties": { - "kind": { + "restriction": { "type": "string", - "description": "This is a fixed value \"meshBuildingBlockRunner\"." + "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." }, - "uuid": { + "marketplaceStatus": { "type": "string", - "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." + }, + "restrictedToWorkspaces": { + "type": "array", + "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } } }, - "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + "description": "Availability configuration for the meshPlatform." }, "config": { "required": [ @@ -10032,1273 +9878,1163 @@ ], "type": "object", "properties": { - "github": { + "kubernetes": { "required": [ - "appId", - "appPrivateKey", - "baseUrl", - "owner" + "baseUrl" ], "type": "object", "properties": { - "owner": { - "type": "string", - "description": "The GitHub organization or user that owns the repositories." + "replication": { + "required": [ + "clientConfig", + "namespaceNamePattern" + ], + "type": "object", + "properties": { + "namespaceNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. Kubernetes Namespace Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "string", + "description": "The Access Token of the service account for replicator access." + } + }, + "description": "Client configuration for Kubernetes" + } + }, + "description": "Replication configuration for Kubernetes (optional, but required for replication)" }, "baseUrl": { "type": "string", - "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." - }, - "appPrivateKey": { - "type": "string", - "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." + "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" }, - "appId": { - "type": "string", - "description": "The GitHub App ID for authentication." + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", + "nullable": true } }, - "description": "GitHub-specific integration configuration." + "description": "Configuration for Kubernetes" }, - "azuredevops": { - "required": [ - "baseUrl", - "organization", - "personalAccessToken" - ], + "gcp": { "type": "object", "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." - }, - "organization": { - "type": "string", - "description": "The Azure DevOps organization name." - }, - "personalAccessToken": { - "type": "string", - "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + "replication": { + "required": [ + "allowHierarchicalFolderAssignment", + "billingAccountId", + "customerId", + "domain", + "groupNamePattern", + "projectIdPattern", + "projectNamePattern", + "roleMappings", + "serviceAccountConfig", + "skipUserGroupPermissionCleanup", + "userLookupStrategy" + ], + "type": "object", + "properties": { + "userLookupStrategy": { + "type": "string", + "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" + }, + "projectNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. The result must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. When length restrictions are applied, the abbreviation will be in the middle and marked by a single-quote." + }, + "projectIdPattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. The resulting string must not exceed a total length of 30 characters. Only alphanumeric + hyphen are allowed. We recommend that configuration include at least 3 characters of the random parameter to reduce the chance of naming collisions as the project Ids must be globally unique within GCP." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Namespace prefix for tenant tags" + } + }, + "description": "Tenant tags configuration" + }, + "domain": { + "type": "string", + "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." + }, + "serviceAccountConfig": { + "type": "object", + "properties": { + "serviceAccountCredentialsConfig": { + "required": [ + "serviceAccountCredentialsB64" + ], + "type": "object", + "properties": { + "serviceAccountCredentialsB64": { + "type": "string", + "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." + } + }, + "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" + }, + "serviceAccountWorkloadIdentityConfig": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider." + } + }, + "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" + } + }, + "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." + }, + "customerId": { + "type": "string", + "description": "A Google Customer ID. It typically starts with a 'C'." + }, + "roleMappings": { + "required": [ + "admin", + "member", + "reader" + ], + "type": "object", + "properties": { + "reader": { + "type": "string", + "description": "Role mapping for reader users" + }, + "member": { + "type": "string", + "description": "Role mapping for member users" + }, + "admin": { + "type": "string", + "description": "Role mapping for admin users" + } + }, + "description": "Role mappings for GCP" + }, + "allowHierarchicalFolderAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + }, + "billingAccountId": { + "type": "string", + "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + }, + "groupNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." + } + }, + "description": "Replication configuration for GCP (optional, but required for replication)" } }, - "description": "Azure DevOps-specific integration configuration." + "description": "Configuration for Google Cloud Platform (GCP)" }, - "gitlab": { + "azurerg": { "required": [ - "baseUrl" + "entraTenant" ], "type": "object", "properties": { - "baseUrl": { + "replication": { + "required": [ + "resourceGroupNamePattern", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscription", + "userGroupNamePattern", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "administrativeUnitId": { + "type": "string", + "description": "Administrative unit ID for group placement", + "nullable": true + }, + "userGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" + }, + "servicePrincipal": { + "required": [ + "authType", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID" + }, + "credentialsAuthClientSecret": { + "type": "string", + "description": "Client secret (required if authType is CREDENTIALS)", + "nullable": true + }, + "authType": { + "type": "string", + "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application" + } + }, + "description": "Service principal configuration for Azure" + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, Azure sends Invitation mails to invited users" + } + }, + "description": "Optional B2B user invitation configuration" + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Prefix for all labels created by meshStack" + } + }, + "description": "Tenant tags configuration" + }, + "userLookUpStrategy": { + "type": "string", + "description": "User lookup strategy ('userPrincipalName' or 'email')" + }, + "subscription": { + "type": "string", + "description": "The Subscription that will contain all the created Resource Groups" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Preserve user groups and replicated permission after tenant deletion" + }, + "resourceGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Enable or disable hierarchical management group assignment", + "nullable": true + } + }, + "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" + }, + "entraTenant": { "type": "string", - "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." + "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "GitLab-specific integration configuration." - }, - "type": { - "type": "string", - "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab'." - } - }, - "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." - } - }, - "description": "All fields in this section describe the integration configuration." - } - } - }, - "apiRoot": { - "title": "apiRoot", - "required": [ - "_links" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "All available Top-Level Links for the authenticated user." - } - } - }, - "meshWorkspaceUserBindingList": { - "title": "meshWorkspaceUserBindingList", - "required": [ - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshWorkspaceUserBindings" - ], - "type": "object", - "properties": { - "meshWorkspaceUserBindings": { - "type": "array", - "description": "List of meshWorkspaceUserBindings.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "meshTagDefinitionPut": { - "title": "meshTagDefinitionPut", - "type": "object" - }, - "meshBuildingBlockRunCreate": { - "title": "meshBuildingBlockRunCreate", - "required": [ - "_links", - "apiVersion", - "kind", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "uuid" - ], - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "The UUID of this building block run." - } - } - }, - "apiVersion": { - "type": "string", - "description": "Version of meshBuildingBlockRun datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshBuildingBlockRun." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockRun' for this endpoint." - }, - "spec": { - "required": [ - "behavior", - "runNumber" - ], - "type": "object", - "properties": { - "buildingBlock": { - "required": [ - "uuid" - ], - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "UUID of the referenced building block." + "description": "Configuration for Azure Resource Group" }, - "spec": { + "openshift": { "required": [ - "displayName", - "fullPlatformIdentifier", - "inputs", - "parentBuildingBlocks", - "projectIdentifier", - "workspaceIdentifier" + "baseUrl" ], "type": "object", "properties": { - "parentBuildingBlocks": { - "type": "array", - "description": "A list of parent building blocks UUIDs for this building block.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "fullPlatformIdentifier": { - "type": "string", - "description": "The full identifier of the platform of the building block." - }, - "inputs": { - "type": "array", - "description": "Contains the filled in input objects for this building block run.", - "items": { - "required": [ - "isEnvironment", - "isSensitive", - "key", - "type", - "value" - ], - "type": "object", - "properties": { - "isSensitive": { - "type": "boolean", - "description": "Flag if the variable content is sensitive and encrypted. The runner must decrypt this variable content first before it can be used." - }, - "isEnvironment": { - "type": "boolean", - "description": "Flag if this variable should be provided as environment variable instead of getting handled as a 'native' variable for the chosen runner technology (for example a Terraform input)." + "replication": { + "required": [ + "clientConfig", + "enableTemplateInstantiation", + "identityProviderName", + "projectNamePattern" + ], + "type": "object", + "properties": { + "webConsoleUrl": { + "type": "string", + "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", + "nullable": true + }, + "projectNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. OpenShift Project Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + } }, - "type": { - "type": "string", - "description": "The type of the variable. Can be one of those: " + "description": "Tenant tags configuration" + }, + "identityProviderName": { + "type": "string", + "description": "Identity provider name" + }, + "enableTemplateInstantiation": { + "type": "boolean", + "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." + }, + "roleMappings": { + "required": [ + "admin", + "member", + "reader" + ], + "type": "object", + "properties": { + "reader": { + "type": "string", + "description": "Role mapping for reader users" + }, + "member": { + "type": "string", + "description": "Role mapping for member users" + }, + "admin": { + "type": "string", + "description": "Role mapping for admin users" + } }, - "value": { - "type": "string", - "description": "The value of this variable." + "description": "Role mappings for OpenShift" + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "string", + "description": "The Access Token of the service account for replicator access." + } }, - "key": { - "type": "string", - "description": "The name of the input variable." - } + "description": "Client configuration for OpenShift" } - } - }, - "displayName": { - "type": "string", - "description": "Display name of the building block." + }, + "description": "Replication configuration for OpenShift (optional, but required for replication)" }, - "workspaceIdentifier": { + "baseUrl": { "type": "string", - "description": "The identifier of the workspace of the building block." + "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" }, - "projectIdentifier": { - "type": "string", - "description": "The identifier of the project of the building block." + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the OpenShift cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", + "nullable": true } - } - } - } - }, - "buildingBlockDefinition": { - "required": [ - "uuid" - ], - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "UUID of the building block definition." + }, + "description": "Configuration for OpenShift" }, - "spec": { + "aks": { "required": [ - "implementation", - "version" + "baseUrl" ], "type": "object", "properties": { - "implementation": { + "replication": { + "required": [ + "accessToken", + "aksClusterName", + "aksResourceGroup", + "aksSubscriptionId", + "groupNamePattern", + "namespaceNamePattern", + "sendAzureInvitationMail", + "servicePrincipal", + "userLookUpStrategy" + ], "type": "object", - "description": "Contains information about the used implementation e.g. Terraform specific details of the building block." - }, - "version": { - "type": "number", - "description": "Version of the building block definition." - } - } - } - } - }, - "runNumber": { - "type": "number", - "description": "Every run has a monotonically increasing number." - }, - "behavior": { - "type": "string", - "description": "The behavior the runner should execute. Can be one of mesh_buildingblockrun_behaviors." - } - }, - "description": "All fields in this section describe the meshBuildingBlockRun." - }, - "status": { - "type": "string", - "description": "The current execution status of this building block run." - } - } - }, - "meshLocation-Get": { - "title": "meshLocation-Get", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier that uniquely identifies the meshLocation." - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies the meshLocation. This is a common attribute for all meshObjects, but in case of a meshLocation it is not used for referencing the location. Instead the name (identifier) is used.", - "nullable": true - } - }, - "description": "Contains the identifiers for the meshLocation." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshLocation datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshLocation." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLocation' for this endpoint." - }, - "spec": { - "required": [ - "displayName" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name of the meshLocation shown in the UI." - }, - "description": { - "type": "string", - "description": "An optional description of the meshLocation.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshLocation configuration." - }, - "status": { - "required": [ - "isPublic" - ], - "type": "object", - "properties": { - "isPublic": { - "type": "boolean", - "description": "Indicates whether the location has any public platform instances associated with it." - } - }, - "description": "The current status of the meshLocation." - } - } - }, - "api-meshobjects-meshbuildingblockdefinitions-446701723": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the Building Blocks Definition belongs to." - } - }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block Definition. It also contains additional meta information like the Building Block Definition creation date." - }, - "apiVersion": { - "type": "string", - "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." - }, - "spec": { - "required": [ - "description", - "displayName", - "notificationSubscriberUsernames", - "supportedPlatforms", - "targetType", - "useInLandingZonesOnly" - ], - "type": "object", - "properties": { - "symbol": { - "type": "string", - "description": "The symbol of the Building Block Definition as it is shown in meshPanel. (optional)", - "nullable": true - }, - "documentationUrl": { - "type": "string", - "description": "The URL pointing to documentation of the Building Block Definition. (optional)", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the Building Block Definition as it is shown in meshPanel." - }, - "supportUrl": { - "type": "string", - "description": "The URL pointing to support of the Building Block Definition. (optional)", - "nullable": true - }, - "description": { - "type": "string", - "description": "The description of the Building Block Definition as it is shown in meshPanel." - }, - "targetType": { - "type": "string", - "description": "The type of Building Block Definition. (One of [TENANT_LEVEL, WORKSPACE_LEVEL])" - }, - "runTransparency": { - "type": "boolean", - "description": "Specifies the Building Block Definition run control. When set to true, both platform teams and workspace users can view detailed run logs and re-run building blocks. When set to false (default), only platform teams have this access. (Optional)", - "nullable": true - }, - "supportedPlatforms": { - "type": "array", - "description": "List of the platforms this Building Block Definition supports", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "notificationSubscriberUsernames": { - "type": "array", - "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "useInLandingZonesOnly": { - "type": "boolean", - "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." - } - }, - "description": "All fields in this section describe the Building Block Definition." - } - } - }, - "meshTagDefinitionList": { - "title": "meshTagDefinitionList", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshTagDefinitions" - ], - "type": "object", - "properties": { - "meshTagDefinitions": { - "type": "array", - "description": "List of meshTagDefinitions.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "meshIntegration-List": { - "title": "meshIntegration-List", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshIntegrations" - ], - "type": "object", - "properties": { - "meshIntegrations": { - "type": "array", - "description": "List of meshIntegrations.", - "items": { - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "createdOn": { - "type": "string", - "description": "Timestamp when the integration was created. This field is automatically set by the system and cannot be modified.", - "nullable": true - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies the integration across all integrations.", - "nullable": true + "properties": { + "administrativeUnitId": { + "type": "string", + "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "nullable": true + }, + "aksSubscriptionId": { + "type": "string", + "description": "Subscription ID for the AKS cluster" + }, + "servicePrincipal": { + "required": [ + "authType", + "clientId", + "entraTenant", + "objectId" + ], + "type": "object", + "properties": { + "entraTenant": { + "type": "string", + "description": "Domain name or ID of the Entra Tenant that holds the Service Principal." + }, + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "credentialsAuthClientSecret": { + "type": "string", + "description": "Client secret for the service principal (required if authType is CREDENTIALS)", + "nullable": true + }, + "authType": { + "type": "string", + "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } + }, + "description": "Service principal configuration for AKS" + }, + "redirectUrl": { + "type": "string", + "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation.", + "nullable": true + }, + "aksResourceGroup": { + "type": "string", + "description": "Resource group for the AKS cluster" + }, + "namespaceNamePattern": { + "type": "string", + "description": "Pattern for naming namespaces in AKS" + }, + "userLookUpStrategy": { + "type": "string", + "description": "Strategy for user lookup in Azure ('userPrincipalName' or 'email')" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "Flag to send Azure invitation emails. When true, meshStack instructs Azure to send out Invitation mails to invited users." + }, + "aksClusterName": { + "type": "string", + "description": "Name of the AKS cluster" + }, + "accessToken": { + "type": "string", + "description": "The Access Token of the service account for replicator access." + }, + "groupNamePattern": { + "type": "string", + "description": "Pattern for naming groups in AKS" + } }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace identifier that owns this integration." - } + "description": "Replication configuration for AKS (optional, but required for replication)" }, - "description": "Contains identifiers and ownership information for the integration." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshIntegration." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + "baseUrl": { + "type": "string", + "description": "Base URL of the AKS cluster" + }, + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", + "nullable": true + } }, - "spec": { - "required": [ - "config", - "displayName", - "runnerRef" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name of the integration." - }, - "runnerRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshBuildingBlockRunner\"." - }, - "uuid": { - "type": "string", - "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." - } + "description": "Configuration for Azure Kubernetes Service (AKS)" + }, + "aws": { + "required": [ + "region" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "accessConfig", + "accountAccessRole", + "accountAliasPattern", + "accountEmailPattern", + "automationAccountRole", + "enforceAccountAlias", + "selfDowngradeAccessRole", + "skipUserGroupPermissionCleanup", + "waitForExternalAvm" + ], + "type": "object", + "properties": { + "selfDowngradeAccessRole": { + "type": "boolean", + "description": "Flag for self downgrade access role. If set, meshStack will revoke its rights on the managed account that were only needed for initial account creation." }, - "description": "Reference to the Building Block Runner that will execute building blocks using this integration." - }, - "config": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "github": { - "required": [ - "appId", - "appPrivateKey", - "baseUrl", - "owner" - ], - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The GitHub organization or user that owns the repositories." - }, - "baseUrl": { - "type": "string", - "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." - }, - "appPrivateKey": { - "type": "string", - "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." - }, - "appId": { - "type": "string", - "description": "The GitHub App ID for authentication." - } + "enrollmentConfiguration": { + "required": [ + "accountFactoryProductId", + "managementAccountId" + ], + "type": "object", + "properties": { + "managementAccountId": { + "type": "string", + "description": "The Account ID of the management account configured for the platform instance." }, - "description": "GitHub-specific integration configuration." + "accountFactoryProductId": { + "type": "string", + "description": "The Product ID of the AWS Account Factory Product in AWS Service Catalog that should be used for enrollment. Starts with `prod-`." + } }, - "azuredevops": { - "required": [ - "baseUrl", - "organization", - "personalAccessToken" - ], - "type": "object", - "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." - }, - "organization": { - "type": "string", - "description": "The Azure DevOps organization name." - }, - "personalAccessToken": { - "type": "string", - "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + "description": "With this optional configuration you can provide general information to enroll the created AWS accounts into Control Tower. Make sure you also enable it on the meshLandingZone!. If you don't, meshStack will skip the enrollment of AWS Accounts into Control Tower." + }, + "accountAccessRole": { + "type": "string", + "description": "The name for the Account Access Role that will be rolled out to all managed accounts. Only a name, not an ARN must be set here, as the ARN must be built dynamically for every managed AWS Account. The replicator service user needs to assume this role in all accounts to manage them." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } } }, - "description": "Azure DevOps-specific integration configuration." + "namespacePrefix": { + "type": "string", + "description": "Namespace prefix for tenant tags" + } }, - "gitlab": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." - } + "description": "Tenant tags configuration" + }, + "automationAccountRole": { + "type": "string", + "description": "ARN of the Automation Account Role. The Automation Account contains all AWS StackSets and Lambda Functions that shall be executed via meshLandingZones. E.g. arn:aws:iam::123456789:role/MeshfedAutomationRole." + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + }, + "automationAccountExternalId": { + "type": "string", + "description": "ExternalId to enhance security in a multi account setup when assuming the automation account role.", + "nullable": true + }, + "accountAliasPattern": { + "type": "string", + "description": "With a String Pattern you can define how the account alias of the created AWS account will be named. E.g. +++#+++{workspaceIdentifier}-+++#+++{projectIdentifier}.\nAttention: Account Alias must be globally unique in AWS. So consider defining a unique prefix." + }, + "accountEmailPattern": { + "type": "string", + "description": "With a String Pattern you can define how the account email address of the created AWS account will be set. E.g. 'aws++++#+++{workspaceIdentifier}.+++#+++{projectIdentifier}@yourcompany.com'. Please consider that this email address is limited to 64 characters! Also have a look at our docs for more information." + }, + "enforceAccountAlias": { + "type": "boolean", + "description": "Flag to enforce account alias. If set, meshStack will guarantee on every replication that the configured Account Alias is applied. Otherwise it will only set the Account Alias once during tenant creation." + }, + "waitForExternalAvm": { + "type": "boolean", + "description": "Flag to wait for external AVM.Please use this setting with care! It is currently very specific to certain tags being present on the account! In general, we recommend not to activate this waitForExternalAvm functionality! In a meshLandingZone an AVM can be triggered via an AWS StackSet or via a Lambda Function. If meshStack shall wait for the AVM to complete when creating a new platform tenant, this flag must be checked. meshStack will identify completion of the AVM by checking the presence of the following tags on the AWS account: 'ProductName' is set to workspace identifier and 'Stage' is set to project identifier." + }, + "allowHierarchicalOrganizationalUnitAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical organizational unit assignment in AWS. If set to true: Accounts can be moved to child organizational units of the organizational unit defined in the Landing Zone. This is useful if you want to manage the account location with a deeper and more granular hierarchy. If set to false: Accounts will always be moved directly to the organizational unit defined in the Landing Zone.", + "nullable": true + }, + "accessConfig": { + "required": [ + "organizationRootAccountRole" + ], + "type": "object", + "properties": { + "organizationRootAccountRole": { + "type": "string", + "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." }, - "description": "GitLab-specific integration configuration." + "workloadIdentityConfig": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." + } + }, + "description": "Workload identity configuration (alternative to serviceUserConfig)" + }, + "serviceUserConfig": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "string", + "description": "AWS secret key for service user" + }, + "accessKey": { + "type": "string", + "description": "AWS access key for service user" + } + }, + "description": "Service user configuration (alternative to workloadIdentityConfig)" + }, + "organizationRootAccountExternalId": { + "type": "string", + "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role.", + "nullable": true + } }, - "type": { - "type": "string", - "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab'." - } + "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." }, - "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." - } - }, - "description": "All fields in this section describe the integration configuration." - } - } - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "meshWorkspaceGroupBindingCreate": { - "title": "meshWorkspaceGroupBindingCreate", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata" - ], - "type": "object", - "properties": { - "targetRef": { - "required": [ - "displayName", - "name" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The name of the workspace the group is assigned to." - }, - "name": { - "type": "string", - "description": "The identifier of the workspace the group is assigned to." - } - } - }, - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The meshWorkspaceGroupBinding identifier as 'name' to uniquely identify the meshWorkspaceGroupBinding." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshWorkspaceGroupBinding." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshWorkspaceGroupBinding datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Currently only contains the self link." - }, - "subject": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of this workspace user group." - } - } - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceGroupBinding' for this endpoint." - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this group." - } - } - } - } - }, - "meshLandingZone-Post-aks": { - "title": "meshLandingZone-Post-aks", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "tags" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier as 'name' to uniquely identify the meshLandingZone." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshLandingZone." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshLandingZone." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshLandingZone datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on this meshObject." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." - }, - "spec": { - "required": [ - "automateDeletionApproval", - "automateDeletionReplication", - "displayName", - "platformRef", - "quotas" - ], - "type": "object", - "properties": { - "platformProperties": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "kubernetes": { - "required": [ - "kubernetesRoleMappings" - ], - "type": "object", - "properties": { - "kubernetesRoleMappings": { - "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } - }, - "gcp": { - "required": [ - "gcpFolderId", - "gcpRoleMappings" - ], - "type": "object", - "properties": { - "gcpFolderId": { - "type": "string", - "description": "Google Cloud Projects will be added to this Google Cloud Folder. This allows applying Organization Policies to all projects managed under this Landing Zone." - }, - "gcpRoleMappings": { - "type": "array", - "description": "You can use both built-in roles like 'roles/editor' or custom roles like 'organizations/123123123123/roles/meshstack.project_developer'. For more information see https://docs.meshcloud.io/meshstack.gcp.landing-zones/#meshrole-to-platform-role-mapping[the Landing Zone documentation]. Multiple GCP Roles can be assigned to one meshRole. If empty, the default that is configured on platform level will be used.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "gcpTemplateUrl": { - "type": "string", - "description": "URL to a GCP bucket (starts with 'gs://') with a template config. The template is deployed in the project during the replication process. Only YAML files are supported with a file size limit of 1 MB.", - "nullable": true - }, - "gcpCloudFunctionUrl": { - "type": "string", - "description": "If a GCP Cloud Function URL is provided it is getting called at the end of the replication process.", - "nullable": true - } - } - }, - "azurerg": { - "required": [ - "azureRgLocation", - "azureRgRoleMappings" - ], - "type": "object", - "properties": { - "azureRgRoleMappings": { - "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cloud specific access role. If empty, the default that is configured on platform level will be used.", - "items": { - "required": [ - "azureGroupSuffix", - "azureRoleDefinitionIds" - ], - "type": "object", - "properties": { - "azureRoleDefinitionIds": { - "type": "array", - "description": "Role Definitions with the given IDs will be attached to this Azure Role", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" + "awsSso": { + "required": [ + "arn", + "groupNamePattern", + "scimEndpoint", + "signInUrl", + "ssoAccessToken" + ], + "type": "object", + "properties": { + "ssoAccessToken": { + "type": "string", + "description": "The AWS IAM Identity Center SCIM Access Token that was generated via the Automatic provisioning config in AWS IAM Identity Center." + }, + "signInUrl": { + "type": "string", + "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." + }, + "roleMappings": { + "type": "object", + "properties": { + "member": { + "required": [ + "awsRoleName", + "permissionSetArns" + ], + "type": "object", + "properties": { + "awsRoleName": { + "type": "string", + "description": "AWS role name for member role mapping" + }, + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for member role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } }, - { - "type": "number" + "admin": { + "required": [ + "awsRoleName", + "permissionSetArns" + ], + "type": "object", + "properties": { + "awsRoleName": { + "type": "string", + "description": "AWS role name for admin role mapping" + }, + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for admin role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } } - ] + }, + "description": "Role mappings for AWS SSO" + }, + "scimEndpoint": { + "type": "string", + "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." + }, + "arn": { + "type": "string", + "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." + }, + "groupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." } }, - "azureGroupSuffix": { - "type": "string", - "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." - } - } - } - }, - "azureFunction": { - "required": [ - "azureFunctionUrl" - ], - "type": "object", - "properties": { - "azureFunctionScope": { - "type": "string", - "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", - "nullable": true - }, - "azureFunctionUrl": { - "type": "string", - "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" + "description": "AWS SSO configuration" } }, - "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." + "description": "Replication configuration for AWS (optional, but required for replication)" }, - "azureRgLocation": { + "region": { "type": "string", - "description": "The newly created Resource Group for the meshProjects will get assigned to this location. It must be all lower case and without spaces (e.g. eastus2 for East US 2). In order to list the available locations you can use `az account list-locations --query \"[*].name\" --out tsv | sort`" + "description": "AWS region" } - } + }, + "description": "Configuration for AWS" }, - "openshift": { - "type": "object", - "properties": { - "openShiftTemplate": { - "type": "string", - "description": "template definition YML to setup a template for projects created in Open Shift", - "nullable": true - } - } + "type": { + "type": "string", + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." }, - "aks": { + "azure": { "required": [ - "kubernetesRoleMappings" + "entraTenant" ], "type": "object", "properties": { - "kubernetesRoleMappings": { - "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } - }, - "type": { - "type": "string", - "description": "The platform type. Possible values are: 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift'." - }, - "aws": { - "required": [ - "awsEnrollAccount", - "awsRoleMappings", - "awsTargetOrgUnitId" - ], - "type": "object", - "properties": { - "awsTargetOrgUnitId": { - "type": "string", - "description": "The created AWS account for this Landing Zone will be put under the given Organizational Unit. You can also input a Root ID (starting with 'r-') then the account will be put directly under this root without assigning it to an OU (this is not recommended)." - }, - "awsLambdaArn": { - "type": "string", - "description": "If this Lambda ARN is given, it is invoked after each project replication. You can use it to trigger a custom Account Vending Machine to perform several additional provisioning steps.", - "nullable": true - }, - "awsRoleMappings": { - "type": "array", - "description": "Roles can be mapped from the meshRole to the AWS Role. The AWS role will be part of the role or group name within AWS. If empty, the default that is configured on platform level will be used.", - "items": { - "oneOf": [ - { - "type": "object" + "replication": { + "required": [ + "blueprintLocation", + "blueprintServicePrincipal", + "groupNamePattern", + "roleMappings", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscriptionNamePattern", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "servicePrincipal": { + "required": [ + "authType", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" + }, + "credentialsAuthClientSecret": { + "type": "string", + "description": "Client secret (required if authType is CREDENTIALS)", + "nullable": true + }, + "authType": { + "type": "string", + "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } }, - { - "type": "boolean" + "description": "Service principal configuration for Azure" + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + } }, - { - "type": "string" + "description": "Tenant tags configuration" + }, + "blueprintLocation": { + "type": "string", + "description": "The Azure location where replication creates and updates Blueprint Assignments. Note that it's still possible that the Blueprint creates resources in other locations, this is merely the location where the Blueprint Assignment is managed." + }, + "userLookUpStrategy": { + "type": "string", + "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + }, + "roleMappings": { + "type": "object", + "description": "Role mappings for Azure" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + }, + "administrativeUnitId": { + "type": "string", + "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "nullable": true + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." + } }, - { - "type": "number" - } - ] - } - }, - "awsEnrollAccount": { - "type": "boolean", - "description": "If true, accounts will be enrolled to AWS control tower. In case an enrollment configuration is provided for the AWS platform AND this value is set to true, created AWS accounts will automatically be enrolled with AWS Control Tower. Automatic account enrollment does also require the Target Organizational Unit to already be enrolled with AWS Control Tower and the corresponding meshfed-service role needs to be in the \"IAM Principal\" list for the Portfolio access of the Account Factory Product ID you defined in platform settings. Click https://docs.meshcloud.io/integrations/aws/how-to-integrate/#8-integrate-aws-control-tower[here] to learn more about the Control Tower setup." - } - } - }, - "azure": { - "required": [ - "azureManagementGroupId", - "azureRoleMappings" - ], - "type": "object", - "properties": { - "azureRoleMappings": { - "type": "array", - "description": "An array of mappings between the meshRole and the Azure specific access role. If empty, default role mappings defined on meshPlatform level are used. For more information see https://docs.meshcloud.io/meshstack.azure.landing-zones#meshrole-to-platform-role-mapping[the Landing Zone documentation]. If empty, the default that is configured on platform level will be used.", - "items": { - "required": [ - "azureGroupSuffix", - "azureRoleDefinitions" - ], - "type": "object", - "properties": { - "azureRoleDefinitions": { - "type": "array", - "description": "Role Definitions with the given IDs will be attached to this Azure Role", - "items": { + "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + }, + "blueprintServicePrincipal": { + "type": "string", + "description": "Object ID of the Enterprise Application belonging to the Microsoft Application 'Azure Blueprints'. meshStack will grant the necessary permissions on managed Subscriptions to this SPN so that it can create System Assigned Managed Identities (SAMI) for Blueprint execution." + }, + "provisioning": { + "type": "object", + "properties": { + "preProvisioned": { + "required": [ + "unusedSubscriptionNamePrefix" + ], "type": "object", "properties": { - "abacCondition": { + "unusedSubscriptionNamePrefix": { "type": "string", - "description": "an ABAC condition for the role assignment in form of a string", + "description": "The prefix that identifies unused subscriptions. Subscriptions will be renamed during meshStack's project replication, at which point they should no longer carry this prefix." + } + }, + "description": "If your organization does not have access to an Enterprise Enrollment, you can alternatively configure meshcloud to consume subscriptions from a pool of externally-provisioned subscriptions. This is useful for smaller organizations that wish to use 'Pay-as-you-go' subscriptions or if you're organization partners with an Azure Cloud Solution Provider to provide your subscriptions. The meshcloud Azure replication detects externally-provisioned subscriptions based on a configurable prefix in the subscription name. Upon assignment to a meshProject, the subscription is inflated with the right Landing Zone configuration and removed from the subscription pool." + }, + "customerAgreement": { + "required": [ + "billingScope", + "destinationEntraId", + "sourceEntraTenant", + "sourceServicePrincipal" + ], + "type": "object", + "properties": { + "sourceServicePrincipal": { + "required": [ + "authType", + "clientId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " + }, + "credentialsAuthClientSecret": { + "type": "string", + "description": "Must be set if and only if `authType` is `CREDENTIALS`. A valid secret for accessing the application. In Azure Portal, this can be configured on the \"App Registration\" under Certificates & secrets. https://docs.meshcloud.io/operations/security-faq/#how-does-meshstack-securely-handle-my-cloud-platform-credentials[How is this information secured?]", + "nullable": true + }, + "authType": { + "type": "string", + "description": "Must be one of `CREDENTIALS` or `WORKLOAD_IDENTITY`. Workload Identity Federation is the one that we recommend as it enables the most secure approach to provide access to your Azure tenant without using long lived credentials. Credential Authentication is an alternative approach where you have to provide a clientSecret manually to meshStack and meshStack stores it encrypted." + } + }, + "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." + }, + "sourceEntraTenant": { + "type": "string", + "description": "Microsoft Entra ID Tenant UUID or domain name used for creating subscriptions. Set this to the Microsoft Entra ID Tenant owning the MCA Billing Scope. If source and destination Microsoft Entra ID Tenants are the same, you need to use UUID." + }, + "subscriptionCreationErrorCooldownSec": { + "type": "number", + "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", "nullable": true + }, + "destinationEntraId": { + "type": "string", + "description": "Microsoft Entra ID Tenant UUID where created subscriptions should be moved. Set this to the Microsoft Entra ID Tenant hosting your landing zones." + }, + "billingScope": { + "type": "string", + "description": "ID of the MCA Billing Scope used for creating subscriptions. Must follow this format: `/providers/Microsoft.Billing/billingAccounts/$accountId/billingProfiles/$profileId/invoiceSections/$sectionId`." } + }, + "description": "meshcloud can automatically provision new subscriptions from a Customer Agreement Account owned by your organization. This is suitable for larger organizations that have such a Customer Agreement with Microsoft, and want to provide a large number of subscriptions in a fully automated fashion." + }, + "subscriptionOwnerObjectIds": { + "type": "array", + "description": "One or more principals Object IDs (e.g. user groups, SPNs) that meshStack will ensure have an 'Owner' role assignment on the managed subscriptions. This can be useful to satisfy Azure's constraint of at least one direct 'Owner' role assignment per Subscription. If you want to use a Service Principal please use the Enterprise Application Object ID.\nYou can not use the replicator object ID here, because meshStack always removes its high privilege access after a Subscription creation.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] } + }, + "enterpriseEnrollment": { + "required": [ + "enrollmentAccountId", + "subscriptionOfferType", + "useLegacySubscriptionEnrollment" + ], + "type": "object", + "properties": { + "subscriptionOfferType": { + "type": "string", + "description": "The Microsoft Subscription offer type to use when creating subscriptions. Only `Production` for standard and `DevTest` for Dev/Test subscriptions are supported for the Non Legacy Subscription Enrollment. For the Legacy Subscription Enrollment also other types can be defined." + }, + "enrollmentAccountId": { + "type": "string", + "description": "ID of the EA Enrollment Account used for the Subscription creation. Should look like this: `/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321`. For more information, review the https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement?tabs=rest-getEnrollments%2Crest-EA#find-accounts-you-have-access-to[Azure docs]." + }, + "subscriptionCreationErrorCooldownSec": { + "type": "number", + "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", + "nullable": true + }, + "useLegacySubscriptionEnrollment": { + "type": "boolean", + "description": "Deprecated: Uses the old Subscription enrollment API in its preview version. This enrollment is less reliable and should not be used for new Azure Platform Integrations." + } + }, + "description": "meshcloud can automatically provision new subscriptions from an Enterprise Enrollment Account owned by your organization. This is suitable for large organizations that have a Microsoft Enterprise Agreement, Microsoft Customer Agreement or a Microsoft Partner Agreement and want to provide a large number of subscriptions in a fully automated fashion." } }, - "azureGroupSuffix": { - "type": "string", - "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." - } - } - } - }, - "azureFunction": { - "required": [ - "azureFunctionUrl" - ], - "type": "object", - "properties": { - "azureFunctionScope": { + "description": "To provide Azure Subscription for your organization's meshProjects, meshcloud supports using Enterprise Enrollment or allocating from a pool of pre-provisioned subscriptions. One of the subFields `enterpriseEnrollment`, `customerAgreement` or `preProvisioned` must be provided!" + }, + "subscriptionNamePattern": { "type": "string", - "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", - "nullable": true + "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." }, - "azureFunctionUrl": { + "groupNamePattern": { "type": "string", - "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names are unique in the managed AAD Tenant." + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to sub management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "nullable": true } }, - "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." + "description": "Replication configuration for Azure (optional, but required for replication)" }, - "azureManagementGroupId": { + "entraTenant": { "type": "string", - "description": "Subscriptions with this Landing Zone will be added to this Management Group. Please make sure to use the Management Group ID and not the group name!" + "description": "Azure Active Directory (Entra ID) tenant" } - } + }, + "description": "Configuration for Azure" } }, - "description": "Custom properties for the platform of the landing zone. The values depend on the platform type. " + "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." }, - "quotas": { + "contributingWorkspaces": { "type": "array", - "description": "List of default quotas applied via this landing zone. Quotas define resource limits that will be applied to tenants using this landing zone. Tenants can afterwards request different quotas if needed. The available quota keys depend on the platform type and its quota definitions. For platforms that do not support quotas, this will be an empty array.", + "description": "A list of workspace identifiers that may contribute to this meshPlatform.", + "nullable": true, "items": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "value": { - "type": "number", - "description": "The quota value for this landing zone. Must be within the min/max range defined in the platform's quota definition." + "oneOf": [ + { + "type": "object" }, - "key": { - "type": "string", - "description": "The quota key as defined in the platform's quota definitions. Must match a quota definition key from the platform." + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" } - } + ] } - }, - "automateDeletionApproval": { - "type": "boolean", - "description": "Whether deletion approval is automated for this landing zone." - }, - "displayName": { - "type": "string", - "description": "The human-readable display name of the meshLandingZone." - }, - "description": { - "type": "string", - "description": "The description of the meshLandingZone.", - "nullable": true - }, - "automateDeletionReplication": { - "type": "boolean", - "description": "Whether deletion replication is automated for this landing zone." - }, - "platformRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshPlatform\"" - }, - "uuid": { - "type": "string", - "description": "The UUID of the platform instance." - } - }, - "description": "Reference to the platform instance this landing zone belongs to." - }, - "infoLink": { - "type": "string", - "description": "An optional link to describe more details about the landing zone", - "nullable": true } }, - "description": "All fields in this section describe the meshLandingZone." + "description": "All fields in this section describe the meshPlatform configuration." }, "status": { - "required": [ - "disabled", - "restricted" - ], "type": "object", - "properties": { - "restricted": { - "type": "boolean", - "description": "If true, users will be unable to select this landing zone in meshPanel. Only Platform teams can create tenants using restricted landing zones with the meshObject API." - }, - "disabled": { - "type": "boolean", - "description": "Whether the landing zone is disabled." - } - }, - "description": "Current status of the meshLandingZone." + "description": "Current status information of the meshPlatform." } } }, - "meshBuildingBlockDefinitionV1": { - "title": "meshBuildingBlockDefinitionV1", + "meshWorkspacePost": { + "title": "meshWorkspacePost", + "type": "object" + }, + "meshBuildingBlockDefinitionPutV1": { + "title": "meshBuildingBlockDefinitionPutV1", "required": [ "_links", "apiVersion", @@ -11353,8 +11089,10 @@ "required": [ "description", "displayName", + "documentationUrl", "notificationSubscriberUsernames", "runTransparency", + "supportUrl", "supportedPlatforms", "symbol", "targetType", @@ -11368,8 +11106,7 @@ }, "documentationUrl": { "type": "string", - "description": "The URL pointing to documentation of the Building Block Definition. (optional)", - "nullable": true + "description": "The URL pointing to documentation of the Building Block Definition. (optional)" }, "displayName": { "type": "string", @@ -11377,8 +11114,7 @@ }, "supportUrl": { "type": "string", - "description": "The URL pointing to support of the Building Block Definition. (optional)", - "nullable": true + "description": "The URL pointing to support of the Building Block Definition. (optional)" }, "description": { "type": "string", @@ -11486,1710 +11222,653 @@ } } }, - "meshPlatform-Post-V2-aws": { - "title": "meshPlatform-Post-V2-aws", + "api-meshobjectcollections1637419709": { "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" + "description", + "name", + "owner" ], "type": "object", "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace", - "uuid" - ], - "type": "object", - "properties": { - "deletedOn": { - "type": "string", - "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", - "nullable": true - }, - "name": { - "type": "string", - "description": "The platform identifier as 'name' to identify the meshPlatform." - }, - "uuid": { - "type": "string", - "description": "The UUID of the meshPlatform." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace that owns this meshPlatform." - } - }, - "description": "Contains metadata to uniquely identify the meshPlatform." + "owner": { + "type": "string", + "description": "The owner of the meshObjectCollection" }, - "apiVersion": { + "name": { "type": "string", - "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." + "description": "Name of the meshObjectCollection (has to be unique)" }, + "description": { + "type": "string", + "description": "A freetext field to help describing the contents of the meshObjectCollection" + } + } + }, + "apiRoot": { + "title": "apiRoot", + "required": [ + "_links" + ], + "type": "object", + "properties": { "_links": { "type": "object", - "description": "Available links on this meshObject." + "description": "All available Top-Level Links for the authenticated user." + } + } + }, + "meshWorkspaceUserBindingList": { + "title": "meshWorkspaceUserBindingList", + "required": [ + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." - }, - "spec": { + "_embedded": { "required": [ - "availability", - "config", - "displayName", - "locationRef", - "quotaDefinitions" + "meshWorkspaceUserBindings" ], "type": "object", "properties": { - "documentationUrl": { - "type": "string", - "description": "URL for platform documentation.", - "nullable": true - }, - "quotaDefinitions": { + "meshWorkspaceUserBindings": { "type": "array", - "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For platforms that don't support it yet, you have to provide an empty array. If empty list is provided, all existing quota definitions are removed.", + "description": "List of meshWorkspaceUserBindings.", "items": { - "required": [ - "autoApprovalThreshold", - "description", - "label", - "maxValue", - "minValue", - "quotaKey" - ], - "type": "object", - "properties": { - "quotaKey": { - "type": "string", - "description": "The key of the quota as it is required by the cloud platform." - }, - "minValue": { - "type": "number", - "description": "Minimum allowed value for this quota." - }, - "unit": { - "type": "string", - "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", - "nullable": true - }, - "autoApprovalThreshold": { - "type": "number", - "description": "Threshold below which quota requests are automatically approved." + "oneOf": [ + { + "type": "object" }, - "maxValue": { - "type": "number", - "description": "Maximum allowed value for this quota." + { + "type": "boolean" }, - "description": { - "type": "string", - "description": "Detailed description of what this quota controls." + { + "type": "string" }, - "label": { - "type": "string", - "description": "Human-readable label for the quota." + { + "type": "number" } - } + ] } - }, - "endpoint": { - "type": "string", - "description": "The web console URL endpoint of the platform.", - "nullable": true - }, - "locationRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The kind of the referenced location, always 'meshLocation'." - }, - "name": { - "type": "string", - "description": "The identifier of the location." - } - }, - "description": "Reference to the location where this platform is situated." - }, - "displayName": { - "type": "string", - "description": "The human-readable display name of the meshPlatform." - }, - "supportUrl": { - "type": "string", - "description": "URL for platform support documentation.", - "nullable": true - }, - "description": { + } + } + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshTagDefinitionPut": { + "title": "meshTagDefinitionPut", + "type": "object" + }, + "meshBuildingBlockRunCreate": { + "title": "meshBuildingBlockRunCreate", + "required": [ + "_links", + "apiVersion", + "kind", + "spec", + "status" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "uuid" + ], + "type": "object", + "properties": { + "uuid": { "type": "string", - "description": "description of the meshPlatform.", - "nullable": true - }, - "availability": { + "description": "The UUID of this building block run." + } + } + }, + "apiVersion": { + "type": "string", + "description": "Version of meshBuildingBlockRun datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshBuildingBlockRun." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockRun' for this endpoint." + }, + "spec": { + "required": [ + "behavior", + "runNumber" + ], + "type": "object", + "properties": { + "buildingBlock": { "required": [ - "publicationState", - "restriction" + "uuid" ], "type": "object", "properties": { - "publicationState": { - "type": "string", - "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." - }, - "restriction": { + "uuid": { "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." + "description": "UUID of the referenced building block." }, - "restrictedToWorkspaces": { - "type": "array", - "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Availability configuration for the meshPlatform." - }, - "readme": { - "type": "string", - "description": "README about the meshPlatform in markdown format", - "nullable": true - }, - "config": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "kubernetes": { + "spec": { "required": [ - "baseUrl" + "displayName", + "fullPlatformIdentifier", + "inputs", + "parentBuildingBlocks", + "projectIdentifier", + "workspaceIdentifier" ], "type": "object", "properties": { - "replication": { - "required": [ - "clientConfig", - "namespaceNamePattern" - ], - "type": "object", - "properties": { - "namespaceNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. Kubernetes Namespace Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." - } + "parentBuildingBlocks": { + "type": "array", + "description": "A list of parent building blocks UUIDs for this building block.", + "items": { + "oneOf": [ + { + "type": "object" }, - "description": "Client configuration for Kubernetes" - } - }, - "description": "Replication configuration for Kubernetes (optional, but required for replication)" + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } }, - "baseUrl": { + "fullPlatformIdentifier": { "type": "string", - "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" + "description": "The full identifier of the platform of the building block." }, - "metering": { - "required": [ - "clientConfig" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } + "inputs": { + "type": "array", + "description": "Contains the filled in input objects for this building block run.", + "items": { + "required": [ + "isEnvironment", + "isSensitive", + "key", + "type", + "value" + ], + "type": "object", + "properties": { + "isSensitive": { + "type": "boolean", + "description": "Flag if the variable content is sensitive and encrypted. The runner must decrypt this variable content first before it can be used." + }, + "isEnvironment": { + "type": "boolean", + "description": "Flag if this variable should be provided as environment variable instead of getting handled as a 'native' variable for the chosen runner technology (for example a Terraform input)." + }, + "type": { + "type": "string", + "description": "The type of the variable. Can be one of those: " + }, + "value": { + "type": "string", + "description": "The value of this variable." + }, + "key": { + "type": "string", + "description": "The name of the input variable." } - }, - "clientConfig": { - "type": "object", - "description": "Processing configuration for metering data" } - }, - "description": "Replication configuration for Kubernetes (optional, but required for metering)" + } }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", - "nullable": true + "displayName": { + "type": "string", + "description": "Display name of the building block." + }, + "workspaceIdentifier": { + "type": "string", + "description": "The identifier of the workspace of the building block." + }, + "projectIdentifier": { + "type": "string", + "description": "The identifier of the project of the building block." } - }, - "description": "Kubernetes configuration, if applicable." + } + } + } + }, + "buildingBlockDefinition": { + "required": [ + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "UUID of the building block definition." }, - "azurerg": { + "spec": { "required": [ - "entraTenant" + "implementation", + "version" ], "type": "object", "properties": { - "replication": { - "required": [ - "resourceGroupNamePattern", - "servicePrincipal", - "skipUserGroupPermissionCleanup", - "subscription", - "userGroupNamePattern", - "userLookUpStrategy" - ], + "implementation": { "type": "object", - "properties": { - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "userGroupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." - }, - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." - } - }, - "description": "Tenant tags configuration" - }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." - }, - "subscription": { - "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "resourceGroupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." - }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true - } - }, - "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" + "description": "Contains information about the used implementation e.g. Terraform specific details of the building block." }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + "version": { + "type": "number", + "description": "Version of the building block definition." } - }, - "description": "Configuration for Azure Resource Group" - }, - "gcp": { - "type": "object", - "properties": { - "replication": { - "required": [ - "allowHierarchicalFolderAssignment", - "billingAccountId", - "customerId", - "domain", - "gcpRoleMappings", - "groupNamePattern", - "projectIdPattern", - "projectNamePattern", - "serviceAccountConfig", - "skipUserGroupPermissionCleanup", - "userLookupStrategy" - ], - "type": "object", - "properties": { - "gcpRoleMappings": { - "type": "array", - "description": "Role mappings for GCP with project role references", - "items": { - "required": [ - "gcpRole", - "projectRoleRef" - ], - "type": "object", + } + } + } + }, + "runNumber": { + "type": "number", + "description": "Every run has a monotonically increasing number." + }, + "behavior": { + "type": "string", + "description": "The behavior the runner should execute. Can be one of mesh_buildingblockrun_behaviors." + } + }, + "description": "All fields in this section describe the meshBuildingBlockRun." + }, + "status": { + "type": "string", + "description": "The current execution status of this building block run." + } + } + }, + "meshLocation-Get": { + "title": "meshLocation-Get", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier that uniquely identifies the meshLocation." + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the meshLocation. This is a common attribute for all meshObjects, but in case of a meshLocation it is not used for referencing the location. Instead the name (identifier) is used.", + "nullable": true + } + }, + "description": "Contains the identifiers for the meshLocation." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshLocation datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshLocation." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLocation' for this endpoint." + }, + "spec": { + "required": [ + "displayName" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the meshLocation shown in the UI." + }, + "description": { + "type": "string", + "description": "An optional description of the meshLocation.", + "nullable": true + } + }, + "description": "All fields in this section describe the meshLocation configuration." + }, + "status": { + "required": [ + "isPublic" + ], + "type": "object", + "properties": { + "isPublic": { + "type": "boolean", + "description": "Indicates whether the location has any public platform instances associated with it." + } + }, + "description": "The current status of the meshLocation." + } + } + }, + "meshIntegration-List": { + "title": "meshIntegration-List", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshIntegrations" + ], + "type": "object", + "properties": { + "meshIntegrations": { + "type": "array", + "description": "List of meshIntegrations.", + "items": { + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "createdOn": { + "type": "string", + "description": "Timestamp when the integration was created. This field is automatically set by the system and cannot be modified.", + "nullable": true + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the integration across all integrations.", + "nullable": true + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace identifier that owns this integration." + } + }, + "description": "Contains identifiers and ownership information for the integration." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshIntegration." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + }, + "spec": { + "required": [ + "config", + "displayName" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the integration." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "github": { + "required": [ + "appId", + "appPrivateKey", + "baseUrl", + "owner", + "runnerRef" + ], + "type": "object", "properties": { - "gcpRole": { + "owner": { "type": "string", - "description": "GCP role to assign" + "description": "The GitHub organization or user that owns the repositories." }, - "projectRoleRef": { + "baseUrl": { + "type": "string", + "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." + }, + "appPrivateKey": { + "type": "string", + "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." + }, + "appId": { + "type": "string", + "description": "The GitHub App ID for authentication." + }, + "runnerRef": { "required": [ - "name" + "kind", + "uuid" ], "type": "object", "properties": { - "name": { + "kind": { "type": "string", - "description": "Name of the project role" + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." } }, - "description": "Reference to a meshProject role" + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." } - } - } - }, - "userLookupStrategy": { - "type": "string", - "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" - }, - "projectNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. The result must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. When length restrictions are applied, the abbreviation will be in the middle and marked by a single-quote." - }, - "projectIdPattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. The resulting string must not exceed a total length of 30 characters. Only alphanumeric + hyphen are allowed. We recommend that configuration include at least 3 characters of the random parameter to reduce the chance of naming collisions as the project Ids must be globally unique within GCP." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { + }, + "description": "GitHub-specific integration configuration." + }, + "azuredevops": { + "required": [ + "baseUrl", + "organization", + "personalAccessToken", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." + }, + "organization": { + "type": "string", + "description": "The Azure DevOps organization name." + }, + "runnerRef": { "required": [ - "key", - "valuePattern" + "kind", + "uuid" ], "type": "object", "properties": { - "valuePattern": { + "kind": { "type": "string", - "description": "Value pattern for the tag mapper" + "description": "This is a fixed value \"meshBuildingBlockRunner\"." }, - "key": { + "uuid": { "type": "string", - "description": "Key for the tag mapper" + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "Namespace prefix for tenant tags" - } - }, - "description": "Tenant tags configuration" - }, - "domain": { - "type": "string", - "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." - }, - "serviceAccountConfig": { - "type": "object", - "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." - } - }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" - }, - "serviceAccountWorkloadIdentityConfig": { - "required": [ - "audience" - ], - "type": "object", - "properties": { - "serviceAccountEmail": { - "type": "string", - "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation.", - "nullable": true }, - "audience": { - "type": "string", - "description": "The audience associated with your workload identity pool provider." - } - }, - "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" - } - }, - "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "customerId": { - "type": "string", - "description": "A Google Customer ID. It typically starts with a 'C'." - }, - "allowHierarchicalFolderAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." - }, - "billingAccountId": { - "type": "string", - "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "groupNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." - } - }, - "description": "Replication configuration for GCP (optional, but required for replication)" - }, - "metering": { - "required": [ - "bigqueryTable", - "partitionTimeColumn", - "processing", - "serviceAccountConfig" - ], - "type": "object", - "properties": { - "partitionTimeColumn": { - "type": "string", - "description": "Column name for partitioning time-based data" - }, - "serviceAccountConfig": { - "type": "object", - "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for metering service account" - } + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." }, - "description": "Service account credentials configuration for metering" - } - }, - "description": "Service account configuration for metering. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "additionalFilter": { - "type": "string", - "description": "Additional SQL filter for billing data (optional)", - "nullable": true - }, - "bigqueryTableForCarbonFootprint": { - "type": "string", - "description": "BigQuery table containing carbon footprint data (optional)", - "nullable": true - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true + "personalAccessToken": { + "type": "string", + "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + } }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } + "description": "Azure DevOps-specific integration configuration." }, - "description": "Processing configuration for metering data" - }, - "carbonFootprintDataCollectionStartMonth": { - "type": "string", - "description": "Start month for carbon footprint data collection (optional)", - "nullable": true - }, - "bigqueryTable": { - "type": "string", - "description": "BigQuery table containing billing data export" - } - }, - "description": "Metering configuration for GCP (optional, but required for metering)" - } - }, - "description": "GCP configuration, if applicable." - }, - "openshift": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "clientConfig", - "enableTemplateInstantiation", - "identityProviderName", - "projectNamePattern" - ], - "type": "object", - "properties": { - "openshiftRoleMappings": { - "type": "array", - "description": "Role mappings for GCP with project role references", - "items": { + "gitlab": { "required": [ - "openshiftRole", - "projectRoleRef" + "baseUrl", + "runnerRef" ], "type": "object", "properties": { - "openshiftRole": { + "baseUrl": { "type": "string", - "description": "OpenShift role to assign" + "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "identifier of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, - "webConsoleUrl": { - "type": "string", - "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", - "nullable": true - }, - "projectNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. OpenShift Project Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { + "runnerRef": { "required": [ - "key", - "valuePattern" + "kind", + "uuid" ], "type": "object", "properties": { - "valuePattern": { + "kind": { "type": "string", - "description": "Value pattern for the tag mapper" + "description": "This is a fixed value \"meshBuildingBlockRunner\"." }, - "key": { + "uuid": { "type": "string", - "description": "Key for the tag mapper" + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." } - } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." } }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." - } + "description": "GitLab-specific integration configuration." }, - "description": "Tenant tags configuration" - }, - "identityProviderName": { - "type": "string", - "description": "Identity provider name" - }, - "enableTemplateInstantiation": { - "type": "boolean", - "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." + "type": { + "type": "string", + "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab', 'metering', 'replicator'." + } }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." - } - }, - "description": "Client configuration for OpenShift" - } - }, - "description": "Replication configuration for OpenShift (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" + "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab', 'metering', 'replicator') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." + } }, - "metering": { - "required": [ - "clientConfig", - "processing" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "Access token for Kubernetes API authentication" - } - }, - "description": "Kubernetes client configuration for metering access" - } - }, - "description": "Metering configuration for OpenShift (optional, but required for metering)" - }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the OpenShift cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", - "nullable": true - } + "description": "All fields in this section describe the integration configuration." }, - "description": "Openshift configuration, if applicable." - }, - "aks": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "accessToken", - "aksClusterName", - "aksResourceGroup", - "aksSubscriptionId", - "groupNamePattern", - "namespaceNamePattern", - "sendAzureInvitationMail", - "servicePrincipal", - "userLookUpStrategy" - ], - "type": "object", - "properties": { - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "aksSubscriptionId": { - "type": "string", - "description": "Subscription ID for the AKS cluster" - }, - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "entraTenant", - "objectId" - ], - "type": "object", - "properties": { - "entraTenant": { - "type": "string", - "description": "Domain name or ID of the Entra Tenant that holds the Service Principal." - }, - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for the service principal (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for AKS" - }, - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation.", - "nullable": true - }, - "aksResourceGroup": { - "type": "string", - "description": "Resource group for the AKS cluster" - }, - "namespaceNamePattern": { - "type": "string", - "description": "Pattern for naming namespaces in AKS" - }, - "userLookUpStrategy": { - "type": "string", - "description": "Strategy for user lookup in Azure ('userPrincipalName' or 'email')" - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "Flag to send Azure invitation emails. When true, meshStack instructs Azure to send out Invitation mails to invited users." - }, - "aksClusterName": { - "type": "string", - "description": "Name of the AKS cluster" - }, - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." - }, - "groupNamePattern": { - "type": "string", - "description": "Pattern for naming groups in AKS" - } - }, - "description": "Replication configuration for AKS (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "Base URL of the AKS cluster" - }, - "metering": { - "required": [ - "clientConfig" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true + "status": { + "required": [ + "isBuiltIn" + ], + "type": "object", + "properties": { + "workloadIdentityFederation": { + "required": [ + "issuer", + "subject" + ], + "type": "object", + "properties": { + "gcp": { + "required": [ + "audience" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "GCP Workload Identity Pool audience for token exchange." + } }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - } - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for metering access." - } + "description": "Google Cloud Platform specific WIF configuration." }, - "description": "Processing configuration for metering data" - } - }, - "description": "Replication configuration for AKS (optional, but required for metering)" - }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", - "nullable": true - } - }, - "description": "Azure Kubernetes Service configuration, if applicable." - }, - "aws": { - "required": [ - "region" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "accessConfig", - "accountAccessRole", - "accountAliasPattern", - "accountEmailPattern", - "automationAccountRole", - "enforceAccountAlias", - "selfDowngradeAccessRole", - "skipUserGroupPermissionCleanup", - "waitForExternalAvm" - ], - "type": "object", - "properties": { - "selfDowngradeAccessRole": { - "type": "boolean", - "description": "Flag for self downgrade access role. If set, meshStack will revoke its rights on the managed account that were only needed for initial account creation." - }, - "enrollmentConfiguration": { - "required": [ - "accountFactoryProductId", - "managementAccountId" - ], - "type": "object", - "properties": { - "managementAccountId": { - "type": "string", - "description": "The Account ID of the management account configured for the platform instance." - }, - "accountFactoryProductId": { - "type": "string", - "description": "The Product ID of the AWS Account Factory Product in AWS Service Catalog that should be used for enrollment. Starts with `prod-`." - } + "subject": { + "type": "string", + "description": "OIDC subject claim for Workload Identity Federation. Identifies the workload service account." }, - "description": "With this optional configuration you can provide general information to enroll the created AWS accounts into Control Tower. Make sure you also enable it on the meshLandingZone!. If you don't, meshStack will skip the enrollment of AWS Accounts into Control Tower." - }, - "accountAccessRole": { - "type": "string", - "description": "The name for the Account Access Role that will be rolled out to all managed accounts. Only a name, not an ARN must be set here, as the ARN must be built dynamically for every managed AWS Account. The replicator service user needs to assume this role in all accounts to manage them." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } + "aws": { + "required": [ + "audience", + "thumbprint" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "AWS STS audience for AssumeRoleWithWebIdentity." + }, + "thumbprint": { + "type": "string", + "description": "AWS OIDC provider thumbprint for trust verification." } }, - "namespacePrefix": { - "type": "string", - "description": "Namespace prefix for tenant tags" - } + "description": "Amazon Web Services specific WIF configuration." }, - "description": "Tenant tags configuration" - }, - "automationAccountRole": { - "type": "string", - "description": "ARN of the Automation Account Role. The Automation Account contains all AWS StackSets and Lambda Functions that shall be executed via meshLandingZones. E.g. arn:aws:iam::123456789:role/MeshfedAutomationRole." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later. " - }, - "automationAccountExternalId": { - "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the automation account role.", - "nullable": true - }, - "accountAliasPattern": { - "type": "string", - "description": "With a String Pattern you can define how the account alias of the created AWS account will be named. E.g. +++#+++{workspaceIdentifier}-+++#+++{projectIdentifier}.\nAttention: Account Alias must be globally unique in AWS. So consider defining a unique prefix." - }, - "accountEmailPattern": { - "type": "string", - "description": "With a String Pattern you can define how the account email address of the created AWS account will be set. E.g. 'aws++++#+++{workspaceIdentifier}.+++#+++{projectIdentifier}@yourcompany.com'. Please consider that this email address is limited to 64 characters! Also have a look at our docs for more information." - }, - "enforceAccountAlias": { - "type": "boolean", - "description": "Flag to enforce account alias. If set, meshStack will guarantee on every replication that the configured Account Alias is applied. Otherwise it will only set the Account Alias once during tenant creation." - }, - "waitForExternalAvm": { - "type": "boolean", - "description": "Flag to wait for external AVM.Please use this setting with care! It is currently very specific to certain tags being present on the account! In general, we recommend not to activate this waitForExternalAvm functionality! In a meshLandingZone an AVM can be triggered via an AWS StackSet or via a Lambda Function. If meshStack shall wait for the AVM to complete when creating a new platform tenant, this flag must be checked. meshStack will identify completion of the AVM by checking the presence of the following tags on the AWS account: 'ProductName' is set to workspace identifier and 'Stage' is set to project identifier." - }, - "allowHierarchicalOrganizationalUnitAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical organizational unit assignment in AWS. If set to true: Accounts can be moved to child organizational units of the organizational unit defined in the Landing Zone. This is useful if you want to manage the account location with a deeper and more granular hierarchy. If set to false: Accounts will always be moved directly to the organizational unit defined in the Landing Zone.", - "nullable": true - }, - "accessConfig": { - "required": [ - "organizationRootAccountRole" - ], - "type": "object", - "properties": { - "organizationRootAccountRole": { - "type": "string", - "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." - }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." - } - }, - "description": "Workload identity configuration (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { - "required": [ - "accessKey", - "secretKey" - ], - "type": "object", - "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for service user" - }, - "accessKey": { - "type": "string", - "description": "AWS access key for service user" - } - }, - "description": "Service user configuration (alternative to workloadIdentityConfig)" - }, - "organizationRootAccountExternalId": { - "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role. ", - "nullable": true - } + "issuer": { + "type": "string", + "description": "OIDC issuer URL for Workload Identity Federation." }, - "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." - }, - "awsSso": { - "required": [ - "arn", - "awsRoleMappings", - "groupNamePattern", - "scimEndpoint", - "signInUrl", - "ssoAccessToken" - ], - "type": "object", - "properties": { - "ssoAccessToken": { - "type": "string", - "description": "The AWS IAM Identity Center SCIM Access Token that was generated via the Automatic provisioning config in AWS IAM Identity Center." - }, - "signInUrl": { - "type": "string", - "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." - }, - "scimEndpoint": { - "type": "string", - "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." - }, - "arn": { - "type": "string", - "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." - }, - "awsRoleMappings": { - "type": "array", - "description": "Roles can be mapped from the meshRole to the AWS role.", - "items": { - "required": [ - "permissionSetArns", - "projectRoleRef" - ], - "type": "object", - "properties": { - "projectRoleRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "Must always be set to `meshProjectRole`" - }, - "name": { - "type": "string", - "description": "The identifier of the meshProjectRole, e.g. `admin` or `user` or `reader`" - } - }, - "description": "A reference to an existing meshProjectRole" - }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } + "azure": { + "required": [ + "audience" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "Azure AD audience for workload identity federation." } }, - "groupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." - } - }, - "description": "AWS SSO configuration" - } + "description": "Microsoft Azure specific WIF configuration." + } + }, + "description": "Workload Identity Federation (WIF) configuration for this integration. Only present for built-in integrations. Provides OIDC issuer, subject, and cloud provider-specific configuration needed to set up trust relationships for workload identity." }, - "description": "Replication configuration for AWS (optional, but required for replication)" + "isBuiltIn": { + "type": "boolean", + "description": "Indicates whether this integration is a built-in system integration." + } }, - "metering": { - "required": [ - "accessConfig", - "filter", - "processing", - "reservedInstanceFairChargeback", - "savingsPlanFairChargeback" - ], - "type": "object", - "properties": { - "filter": { - "type": "string", - "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - }, - "accessConfig": { - "required": [ - "organizationRootAccountRole" - ], - "type": "object", - "properties": { - "organizationRootAccountRole": { - "type": "string", - "description": "ARN of the Management Account Role for metering access." - }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role for metering access via workload identity federation" - } - }, - "description": "Workload identity configuration for metering (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { - "required": [ - "accessKey", - "secretKey" - ], - "type": "object", - "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for metering service user" - }, - "accessKey": { - "type": "string", - "description": "AWS access key for metering service user" - } - }, - "description": "Service user configuration for metering (alternative to workloadIdentityConfig)" - }, - "organizationRootAccountExternalId": { - "type": "string", - "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", - "nullable": true - } - }, - "description": "AWS access configuration for metering. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." - }, - "savingsPlanFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for savings plans" - }, - "reservedInstanceFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for reserved instances" - } - }, - "description": "Metering configuration for AWS (optional, but required for metering)" - }, - "region": { - "type": "string", - "description": "AWS region" - } - }, - "description": "AWS configuration, if applicable." - }, - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." - }, - "azure": { - "required": [ - "entraTenant" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "azureRoleMappings", - "blueprintLocation", - "blueprintServicePrincipal", - "groupNamePattern", - "servicePrincipal", - "skipUserGroupPermissionCleanup", - "subscriptionNamePattern", - "userLookUpStrategy" - ], - "type": "object", - "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." - } - }, - "description": "Tenant tags configuration" - }, - "blueprintLocation": { - "type": "string", - "description": "The Azure location where replication creates and updates Blueprint Assignments. Note that it's still possible that the Blueprint creates resources in other locations, this is merely the location where the Blueprint Assignment is managed." - }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "azureRoleMappings": { - "type": "array", - "description": "Role mappings for Azure with project role references", - "items": { - "required": [ - "azureRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "azureRole": { - "required": [ - "alias", - "id" - ], - "type": "object", - "properties": { - "alias": { - "type": "string", - "description": "Alias for the Azure role" - }, - "id": { - "type": "string", - "description": "ID of the Azure role" - } - }, - "description": "Azure role" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." - }, - "blueprintServicePrincipal": { - "type": "string", - "description": "Object ID of the Enterprise Application belonging to the Microsoft Application 'Azure Blueprints'. meshStack will grant the necessary permissions on managed Subscriptions to this SPN so that it can create System Assigned Managed Identities (SAMI) for Blueprint execution." - }, - "provisioning": { - "type": "object", - "properties": { - "preProvisioned": { - "required": [ - "unusedSubscriptionNamePrefix" - ], - "type": "object", - "properties": { - "unusedSubscriptionNamePrefix": { - "type": "string", - "description": "The prefix that identifies unused subscriptions. Subscriptions will be renamed during meshStack's project replication, at which point they should no longer carry this prefix." - } - }, - "description": "If your organization does not have access to an Enterprise Enrollment, you can alternatively configure meshcloud to consume subscriptions from a pool of externally-provisioned subscriptions. This is useful for smaller organizations that wish to use 'Pay-as-you-go' subscriptions or if you're organization partners with an Azure Cloud Solution Provider to provide your subscriptions. The meshcloud Azure replication detects externally-provisioned subscriptions based on a configurable prefix in the subscription name. Upon assignment to a meshProject, the subscription is inflated with the right Landing Zone configuration and removed from the subscription pool." - }, - "customerAgreement": { - "required": [ - "billingScope", - "destinationEntraId", - "sourceEntraTenant", - "sourceServicePrincipal" - ], - "type": "object", - "properties": { - "sourceServicePrincipal": { - "required": [ - "authType", - "clientId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Must be set if and only if `authType` is `CREDENTIALS`. A valid secret for accessing the application. In Azure Portal, this can be configured on the \"App Registration\" under Certificates & secrets. https://docs.meshcloud.io/operations/security-faq/#how-does-meshstack-securely-handle-my-cloud-platform-credentials[How is this information secured?]", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Must be one of `CREDENTIALS` or `WORKLOAD_IDENTITY`. Workload Identity Federation is the one that we recommend as it enables the most secure approach to provide access to your Azure tenant without using long lived credentials. Credential Authentication is an alternative approach where you have to provide a clientSecret manually to meshStack and meshStack stores it encrypted." - } - }, - "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." - }, - "sourceEntraTenant": { - "type": "string", - "description": "Microsoft Entra ID Tenant UUID or domain name used for creating subscriptions. Set this to the Microsoft Entra ID Tenant owning the MCA Billing Scope. If source and destination Microsoft Entra ID Tenants are the same, you need to use UUID." - }, - "subscriptionCreationErrorCooldownSec": { - "type": "number", - "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", - "nullable": true - }, - "destinationEntraId": { - "type": "string", - "description": "Microsoft Entra ID Tenant UUID where created subscriptions should be moved. Set this to the Microsoft Entra ID Tenant hosting your landing zones." - }, - "billingScope": { - "type": "string", - "description": "ID of the MCA Billing Scope used for creating subscriptions. Must follow this format: `/providers/Microsoft.Billing/billingAccounts/$accountId/billingProfiles/$profileId/invoiceSections/$sectionId`." - } - }, - "description": "meshcloud can automatically provision new subscriptions from a Customer Agreement Account owned by your organization. This is suitable for larger organizations that have such a Customer Agreement with Microsoft, and want to provide a large number of subscriptions in a fully automated fashion." - }, - "subscriptionOwnerObjectIds": { - "type": "array", - "description": "One or more principals Object IDs (e.g. user groups, SPNs) that meshStack will ensure have an 'Owner' role assignment on the managed subscriptions. This can be useful to satisfy Azure's constraint of at least one direct 'Owner' role assignment per Subscription. If you want to use a Service Principal please use the Enterprise Application Object ID.\nYou can not use the replicator object ID here, because meshStack always removes its high privilege access after a Subscription creation.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "enterpriseEnrollment": { - "required": [ - "enrollmentAccountId", - "subscriptionOfferType", - "useLegacySubscriptionEnrollment" - ], - "type": "object", - "properties": { - "subscriptionOfferType": { - "type": "string", - "description": "The Microsoft Subscription offer type to use when creating subscriptions. Only `Production` for standard and `DevTest` for Dev/Test subscriptions are supported for the Non Legacy Subscription Enrollment. For the Legacy Subscription Enrollment also other types can be defined." - }, - "enrollmentAccountId": { - "type": "string", - "description": "ID of the EA Enrollment Account used for the Subscription creation. Should look like this: `/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321`. For more information, review the https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement?tabs=rest-getEnrollments%2Crest-EA#find-accounts-you-have-access-to[Azure docs]." - }, - "subscriptionCreationErrorCooldownSec": { - "type": "number", - "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", - "nullable": true - }, - "useLegacySubscriptionEnrollment": { - "type": "boolean", - "description": "Deprecated: Uses the old Subscription enrollment API in its preview version. This enrollment is less reliable and should not be used for new Azure Platform Integrations." - } - }, - "description": "meshcloud can automatically provision new subscriptions from an Enterprise Enrollment Account owned by your organization. This is suitable for large organizations that have a Microsoft Enterprise Agreement, Microsoft Customer Agreement or a Microsoft Partner Agreement and want to provide a large number of subscriptions in a fully automated fashion." - } - }, - "description": "To provide Azure Subscription for your organization's meshProjects, meshcloud supports using Enterprise Enrollment or allocating from a pool of pre-provisioned subscriptions. One of the subFields `enterpriseEnrollment`, `customerAgreement` or `preProvisioned` must be provided!" - }, - "subscriptionNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." - }, - "groupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names are unique in the managed AAD Tenant." - }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to sub management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true - } - }, - "description": "Replication configuration for Azure (optional, but required for replication)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" - }, - "metering": { - "required": [ - "processing", - "servicePrincipal" - ], - "type": "object", - "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "Client ID of the service principal for metering" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for credentials-based authentication", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the metering service principal" - }, - "objectId": { - "type": "string", - "description": "Object ID of the service principal for metering" - } - }, - "description": "Service principal configuration for metering access" - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - } - }, - "description": "Metering configuration for Azure (optional, but required for metering)" - } - }, - "description": "Azure configuration, if applicable." - } - }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." - }, - "contributingWorkspaces": { - "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" + "description": "Status information for integrations. Always includes the isBuiltIn field in responses. Workload Identity Federation (WIF) information is only present for built-in integrations. This field is read-only and ignored in request bodies." } - ] + } } } }, - "description": "All fields in this section describe the meshPlatform configuration." + "description": "Contains the actual content of the paged response." }, - "status": { + "page": { "type": "object", - "description": "Current status information of the meshPlatform." + "description": "Information about paging." } } }, - "api-meshobjects-meshworkspaces-1513610107": { + "api-meshobjects-meshbuildingblockdefinitions-446701723": { "required": [ "apiVersion", "kind", @@ -13200,81 +11879,518 @@ "properties": { "metadata": { "required": [ - "name", - "tags" + "ownedByWorkspace" ], "type": "object", "properties": { - "name": { + "ownedByWorkspace": { "type": "string", - "description": "The workspaceIdentifier as 'name' to uniquely identify the meshWorkspace. (readonly after creation)" - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshWorkspace. Keep in mind, that values are an array. You must always provide all the tags of the workspace inside this object. If you provide an empty object, the tags will be removed from your workspace." + "description": "The identifier of the meshWorkspace the Building Blocks Definition belongs to." } }, - "description": "Always contains the 'name' to uniquely identify the meshWorkspace." + "description": "Always contains the 'uuid' to uniquely identify the Building Block Definition. It also contains additional meta information like the Building Block Definition creation date." }, "apiVersion": { "type": "string", - "description": "Version of meshWorkspace datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspace' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." }, "spec": { "required": [ - "displayName" + "description", + "displayName", + "notificationSubscriberUsernames", + "supportedPlatforms", + "targetType", + "useInLandingZonesOnly" ], "type": "object", "properties": { - "platformBuilderAccessEnabled": { - "type": "boolean", - "description": "When enabled, you can open the platform builder at the top right of your screen when you visit the workspace in the panel.", + "symbol": { + "type": "string", + "description": "The symbol of the Building Block Definition as it is shown in meshPanel. (optional)", "nullable": true }, - "displayName": { + "documentationUrl": { "type": "string", - "description": "The display name of the meshWorkspace as it is shown in meshPanel." - } - }, - "description": "All fields in this section describe the meshWorkspace." - } - } - }, - "meshPaymentMethodV2Post": { - "title": "meshPaymentMethodV2Post", - "type": "object" - }, - "meshLocation-Put": { - "title": "meshLocation-Put", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { + "description": "The URL pointing to documentation of the Building Block Definition. (optional)", + "nullable": true + }, + "displayName": { "type": "string", - "description": "The identifier that uniquely identifies the meshLocation." + "description": "The display name of the Building Block Definition as it is shown in meshPanel." }, - "uuid": { + "supportUrl": { "type": "string", - "description": "The UUID that uniquely identifies the meshLocation. This is a common attribute for all meshObjects, but in case of a meshLocation it is not used for referencing the location. Instead the name (identifier) is used.", + "description": "The URL pointing to support of the Building Block Definition. (optional)", "nullable": true - } - }, + }, + "description": { + "type": "string", + "description": "The description of the Building Block Definition as it is shown in meshPanel." + }, + "targetType": { + "type": "string", + "description": "The type of Building Block Definition. (One of [TENANT_LEVEL, WORKSPACE_LEVEL])" + }, + "runTransparency": { + "type": "boolean", + "description": "Specifies the Building Block Definition run control. When set to true, both platform teams and workspace users can view detailed run logs and re-run building blocks. When set to false (default), only platform teams have this access. (Optional)", + "nullable": true + }, + "supportedPlatforms": { + "type": "array", + "description": "List of the platforms this Building Block Definition supports", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "notificationSubscriberUsernames": { + "type": "array", + "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "useInLandingZonesOnly": { + "type": "boolean", + "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." + } + }, + "description": "All fields in this section describe the Building Block Definition." + } + } + }, + "meshTagDefinitionList": { + "title": "meshTagDefinitionList", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshTagDefinitions" + ], + "type": "object", + "properties": { + "meshTagDefinitions": { + "type": "array", + "description": "List of meshTagDefinitions.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshWorkspaceGroupBindingCreate": { + "title": "meshWorkspaceGroupBindingCreate", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata" + ], + "type": "object", + "properties": { + "targetRef": { + "required": [ + "displayName", + "name" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the workspace the group is assigned to." + }, + "name": { + "type": "string", + "description": "The identifier of the workspace the group is assigned to." + } + } + }, + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The meshWorkspaceGroupBinding identifier as 'name' to uniquely identify the meshWorkspaceGroupBinding." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshWorkspaceGroupBinding." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshWorkspaceGroupBinding datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Currently only contains the self link." + }, + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier of this workspace user group." + } + } + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceGroupBinding' for this endpoint." + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this group." + } + } + } + } + }, + "meshBuildingBlockDefinitionV1": { + "title": "meshBuildingBlockDefinitionV1", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec", + "status" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "createdOn", + "ownedByWorkspace", + "tags", + "uuid" + ], + "type": "object", + "properties": { + "createdOn": { + "type": "string", + "description": "The Building Block Definition has been created at this date (e.g. `2020-12-22T09:37:43Z`)." + }, + "uuid": { + "type": "string", + "description": "The UUID to uniquely identify the Building Block Definition." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the Building Block Definition. Keep in mind, that values are an array." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the Building Blocks Definition belongs to." + } + }, + "description": "Always contains the 'uuid' to uniquely identify the Building Block Definition. It also contains additional meta information like the Building Block Definition creation date." + }, + "apiVersion": { + "type": "string", + "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a Building Block Definition." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." + }, + "spec": { + "required": [ + "description", + "displayName", + "notificationSubscriberUsernames", + "runTransparency", + "supportedPlatforms", + "symbol", + "targetType", + "useInLandingZonesOnly" + ], + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "The symbol of the Building Block Definition as it is shown in meshPanel." + }, + "documentationUrl": { + "type": "string", + "description": "The URL pointing to documentation of the Building Block Definition. (optional)", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the Building Block Definition as it is shown in meshPanel." + }, + "supportUrl": { + "type": "string", + "description": "The URL pointing to support of the Building Block Definition. (optional)", + "nullable": true + }, + "description": { + "type": "string", + "description": "The description of the Building Block Definition as it is shown in meshPanel." + }, + "targetType": { + "type": "string", + "description": "The type of Building Block Definition. (One of [TENANT_LEVEL, WORKSPACE_LEVEL])" + }, + "runTransparency": { + "type": "boolean", + "description": "Specifies the Building Block Definition run control. When set to true, both platform teams and workspace users can view detailed run logs and re-run building blocks. When set to false (default), only platform teams have this access." + }, + "supportedPlatforms": { + "type": "array", + "description": "List of the platforms this Building Block Definition supports", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "notificationSubscriberUsernames": { + "type": "array", + "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "useInLandingZonesOnly": { + "type": "boolean", + "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." + } + }, + "description": "All fields in this section describe the Building Block Definition." + }, + "status": { + "required": [ + "latestReleasedVersion", + "latestVersion", + "versions" + ], + "type": "object", + "properties": { + "versions": { + "type": "array", + "description": "List of meshBuildingBlockDefinitionVersions, which exist for the Building Block Definition.", + "items": { + "required": [ + "state", + "versionNumber", + "versionUuid" + ], + "type": "object", + "properties": { + "versionUuid": { + "type": "string", + "description": "The uuid of the listed version" + }, + "state": { + "type": "string", + "description": "The state of the listed version. (One of [DRAFT, RELEASED])" + }, + "versionNumber": { + "type": "number", + "description": "The number of the listed version." + } + } + } + }, + "latestReleasedVersion": { + "type": "number", + "description": "The number of the latest version based on this Building Block Definition not including a possible draft version." + }, + "latestVersion": { + "type": "number", + "description": "The number of the latest version based on this Building Block Definition including a possible draft version." + } + }, + "description": "All fields in this section describe the current status of the Building Block Definition." + } + } + }, + "api-meshobjects-meshworkspaces-1513610107": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "tags" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The workspaceIdentifier as 'name' to uniquely identify the meshWorkspace. (readonly after creation)" + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshWorkspace. Keep in mind, that values are an array. You must always provide all the tags of the workspace inside this object. If you provide an empty object, the tags will be removed from your workspace." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshWorkspace." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshWorkspace datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspace' for this endpoint." + }, + "spec": { + "required": [ + "displayName" + ], + "type": "object", + "properties": { + "platformBuilderAccessEnabled": { + "type": "boolean", + "description": "When enabled, you can open the platform builder at the top right of your screen when you visit the workspace in the panel.", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the meshWorkspace as it is shown in meshPanel." + } + }, + "description": "All fields in this section describe the meshWorkspace." + } + } + }, + "meshPaymentMethodV2Post": { + "title": "meshPaymentMethodV2Post", + "type": "object" + }, + "meshLocation-Put": { + "title": "meshLocation-Put", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier that uniquely identifies the meshLocation." + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the meshLocation. This is a common attribute for all meshObjects, but in case of a meshLocation it is not used for referencing the location. Instead the name (identifier) is used.", + "nullable": true + } + }, "description": "Contains the identifiers for the meshLocation." }, "apiVersion": { @@ -13770,12 +12886,15 @@ } } }, - "api-meshobjects-meshplatforms-uuid-1785714494": { + "meshPlatform-Get-V1-openshift": { + "title": "meshPlatform-Get-V1-openshift", "required": [ + "_links", "apiVersion", "kind", "metadata", - "spec" + "spec", + "status" ], "type": "object", "properties": { @@ -13811,6 +12930,10 @@ "type": "string", "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." }, + "_links": { + "type": "object", + "description": "Available links on this meshObject." + }, "kind": { "type": "string", "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." @@ -13975,12 +13098,12 @@ "properties": { "administrativeUnitId": { "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "description": "Administrative unit ID for group placement", "nullable": true }, "userGroupNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" }, "servicePrincipal": { "required": [ @@ -13992,7 +13115,7 @@ "properties": { "clientId": { "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" + "description": "The Application (Client) ID" }, "credentialsAuthClientSecret": { "type": "string", @@ -14005,7 +13128,7 @@ }, "objectId": { "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + "description": "The Object ID of the Enterprise Application" } }, "description": "Service principal configuration for Azure" @@ -14019,14 +13142,14 @@ "properties": { "redirectUrl": { "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" }, "sendAzureInvitationMail": { "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." + "description": "When true, Azure sends Invitation mails to invited users" } }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + "description": "Optional B2B user invitation configuration" }, "tenantTags": { "required": [ @@ -14058,30 +13181,30 @@ }, "namespacePrefix": { "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + "description": "Prefix for all labels created by meshStack" } }, "description": "Tenant tags configuration" }, "userLookUpStrategy": { "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + "description": "User lookup strategy ('userPrincipalName' or 'email')" }, "subscription": { "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." + "description": "The Subscription that will contain all the created Resource Groups" }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "description": "Preserve user groups and replicated permission after tenant deletion" }, "resourceGroupNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" }, "allowHierarchicalManagementGroupAssignment": { "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "description": "Enable or disable hierarchical management group assignment", "nullable": true } }, @@ -15055,6 +14178,10 @@ } }, "description": "All fields in this section describe the meshPlatform configuration." + }, + "status": { + "type": "object", + "description": "Current status information of the meshPlatform." } } }, @@ -15272,8 +14399,357 @@ } } }, - "meshPlatform-Get-V1-openshift": { - "title": "meshPlatform-Get-V1-openshift", + "api-meshobjects-meshbuildingblockruns-blockRunUuid-status-source-1604577785": { + "required": [ + "steps" + ], + "type": "object", + "properties": { + "source": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "externalRunId": { + "type": "string", + "description": "In case the external run is tracked by a different ID you can include it here", + "nullable": true + }, + "externalRunUrl": { + "type": "string", + "description": "You can provide a clickable URL to a website with additional information about the external run.", + "nullable": true + }, + "id": { + "type": "string", + "description": "The ID of this source." + } + } + }, + "steps": { + "type": "array", + "description": "Contains the steps for this source. It should not exceed more than 50 steps", + "items": { + "required": [ + "displayName", + "id" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The human readable display name of the step" + }, + "id": { + "type": "string", + "description": "The ID of this step." + }, + "status": { + "type": "string", + "description": "The execution status of this step. Can be `PENDING`, `IN_PROGRESS`, `SUCCEEDED` or `FAILED`.", + "nullable": true + } + } + } + } + } + }, + "api-meshobjects-meshtenants-1377394246": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "ownedByProject", + "ownedByWorkspace", + "platformIdentifier" + ], + "type": "object", + "properties": { + "ownedByProject": { + "type": "string", + "description": "The identifier of the meshProject the meshTenant belongs to." + }, + "platformIdentifier": { + "type": "string", + "description": "The identifier of the platform the meshTenant belongs to." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the meshTenant belongs to." + } + }, + "description": "Fixed fields that help identify the Tenant." + }, + "apiVersion": { + "type": "string", + "description": "Version of Tenant datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." + }, + "spec": { + "required": [ + "landingZoneIdentifier" + ], + "type": "object", + "properties": { + "landingZoneIdentifier": { + "type": "string", + "description": "The identifier of the landing zone the meshTenant belongs to." + }, + "localId": { + "type": "string", + "description": "The localId (platform tenant id) assigned by the platform for this meshTenant. If set, meshStack will import an existing tenant from the cloud platform instead of creating a new one. Only API Keys or API Users with admin permissions for saving tenants can set this field.", + "nullable": true + } + }, + "description": "All fields in this section describe the Tenant." + } + } + }, + "meshWorkspaceUserBindingCreate": { + "title": "meshWorkspaceUserBindingCreate", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata" + ], + "type": "object", + "properties": { + "targetRef": { + "required": [ + "displayName", + "name" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the workspace the user is assigned to." + }, + "name": { + "type": "string", + "description": "The identifier of the workspace the user is assigned to." + } + } + }, + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The meshWorkspaceUserBinding identifier as 'name' to uniquely identify the meshWorkspaceUserBinding." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshWorkspaceUserBinding." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshWorkspaceUserBinding datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Currently only contains the self link." + }, + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username of the referenced user." + } + } + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceUserBinding' for this endpoint." + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this user." + } + } + } + } + }, + "meshUserListV2": { + "title": "meshUserListV2", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshUsers" + ], + "type": "object", + "properties": { + "meshUsers": { + "type": "array", + "description": "List of meshUsers.", + "items": { + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username as 'name' to uniquely identify the meshUser." + }, + "uuid": { + "type": "string", + "description": "A unique identifier (UUID) for the meshUser.", + "nullable": true + } + }, + "description": "Always contains the 'name' to uniquely identify the meshUser." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshUser." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." + }, + "spec": { + "required": [ + "email", + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "lastName": { + "type": "string", + "description": "The last name of the meshUser." + }, + "firstName": { + "type": "string", + "description": "The first name of the meshUser." + }, + "euid": { + "type": "string", + "description": "External User ID which is used to lookup the user in the cloud platforms.", + "nullable": true + }, + "email": { + "type": "string", + "description": "The email of the meshUser." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshUser. Keep in mind, that values are an array.", + "nullable": true + } + }, + "description": "All fields in this section describe the meshUser." + } + } + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshBuildingBlockList": { + "title": "meshBuildingBlockList", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Contains the self link and pagination links (first, last, next, prev). Also includes a link to the related tenant." + }, + "_embedded": { + "required": [ + "meshBuildingBlocks" + ], + "type": "object", + "properties": { + "meshBuildingBlocks": { + "type": "array", + "description": "List of meshBuildingBlocks.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshPlatform-Put-V1-aks": { + "title": "meshPlatform-Put-V1-aks", "required": [ "_links", "apiVersion", @@ -15484,12 +14960,12 @@ "properties": { "administrativeUnitId": { "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "description": "Administrative unit ID for group placement", "nullable": true }, "userGroupNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" }, "servicePrincipal": { "required": [ @@ -15501,7 +14977,7 @@ "properties": { "clientId": { "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" + "description": "The Application (Client) ID" }, "credentialsAuthClientSecret": { "type": "string", @@ -15514,7 +14990,7 @@ }, "objectId": { "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + "description": "The Object ID of the Enterprise Application" } }, "description": "Service principal configuration for Azure" @@ -15528,14 +15004,14 @@ "properties": { "redirectUrl": { "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" }, "sendAzureInvitationMail": { "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." + "description": "When true, Azure sends Invitation mails to invited users" } }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + "description": "Optional B2B user invitation configuration" }, "tenantTags": { "required": [ @@ -15567,30 +15043,30 @@ }, "namespacePrefix": { "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + "description": "Prefix for all labels created by meshStack" } }, "description": "Tenant tags configuration" }, "userLookUpStrategy": { "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + "description": "User lookup strategy ('userPrincipalName' or 'email')" }, "subscription": { "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." + "description": "The Subscription that will contain all the created Resource Groups" }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "description": "Preserve user groups and replicated permission after tenant deletion" }, "resourceGroupNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" }, "allowHierarchicalManagementGroupAssignment": { "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "description": "Enable or disable hierarchical management group assignment", "nullable": true } }, @@ -16571,355 +16047,6 @@ } } }, - "api-meshobjects-meshbuildingblockruns-blockRunUuid-status-source-1604577785": { - "required": [ - "steps" - ], - "type": "object", - "properties": { - "source": { - "required": [ - "id" - ], - "type": "object", - "properties": { - "externalRunId": { - "type": "string", - "description": "In case the external run is tracked by a different ID you can include it here", - "nullable": true - }, - "externalRunUrl": { - "type": "string", - "description": "You can provide a clickable URL to a website with additional information about the external run.", - "nullable": true - }, - "id": { - "type": "string", - "description": "The ID of this source." - } - } - }, - "steps": { - "type": "array", - "description": "Contains the steps for this source. It should not exceed more than 50 steps", - "items": { - "required": [ - "displayName", - "id" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The human readable display name of the step" - }, - "id": { - "type": "string", - "description": "The ID of this step." - }, - "status": { - "type": "string", - "description": "The execution status of this step. Can be `PENDING`, `IN_PROGRESS`, `SUCCEEDED` or `FAILED`.", - "nullable": true - } - } - } - } - } - }, - "api-meshobjects-meshtenants-1377394246": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByProject", - "ownedByWorkspace", - "platformIdentifier" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The identifier of the meshProject the meshTenant belongs to." - }, - "platformIdentifier": { - "type": "string", - "description": "The identifier of the platform the meshTenant belongs to." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the meshTenant belongs to." - } - }, - "description": "Fixed fields that help identify the Tenant." - }, - "apiVersion": { - "type": "string", - "description": "Version of Tenant datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." - }, - "spec": { - "required": [ - "landingZoneIdentifier" - ], - "type": "object", - "properties": { - "landingZoneIdentifier": { - "type": "string", - "description": "The identifier of the landing zone the meshTenant belongs to." - }, - "localId": { - "type": "string", - "description": "The localId (platform tenant id) assigned by the platform for this meshTenant. If set, meshStack will import an existing tenant from the cloud platform instead of creating a new one. Only API Keys or API Users with admin permissions for saving tenants can set this field.", - "nullable": true - } - }, - "description": "All fields in this section describe the Tenant." - } - } - }, - "meshBuildingBlockList": { - "title": "meshBuildingBlockList", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Contains the self link and pagination links (first, last, next, prev). Also includes a link to the related tenant." - }, - "_embedded": { - "required": [ - "meshBuildingBlocks" - ], - "type": "object", - "properties": { - "meshBuildingBlocks": { - "type": "array", - "description": "List of meshBuildingBlocks.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "meshWorkspaceUserBindingCreate": { - "title": "meshWorkspaceUserBindingCreate", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata" - ], - "type": "object", - "properties": { - "targetRef": { - "required": [ - "displayName", - "name" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The name of the workspace the user is assigned to." - }, - "name": { - "type": "string", - "description": "The identifier of the workspace the user is assigned to." - } - } - }, - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The meshWorkspaceUserBinding identifier as 'name' to uniquely identify the meshWorkspaceUserBinding." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshWorkspaceUserBinding." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshWorkspaceUserBinding datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Currently only contains the self link." - }, - "subject": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The username of the referenced user." - } - } - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceUserBinding' for this endpoint." - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this user." - } - } - } - } - }, - "meshUserListV2": { - "title": "meshUserListV2", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshUsers" - ], - "type": "object", - "properties": { - "meshUsers": { - "type": "array", - "description": "List of meshUsers.", - "items": { - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The username as 'name' to uniquely identify the meshUser." - }, - "uuid": { - "type": "string", - "description": "A unique identifier (UUID) for the meshUser.", - "nullable": true - } - }, - "description": "Always contains the 'name' to uniquely identify the meshUser." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshUser." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." - }, - "spec": { - "required": [ - "email", - "firstName", - "lastName" - ], - "type": "object", - "properties": { - "lastName": { - "type": "string", - "description": "The last name of the meshUser." - }, - "firstName": { - "type": "string", - "description": "The first name of the meshUser." - }, - "euid": { - "type": "string", - "description": "External User ID which is used to lookup the user in the cloud platforms.", - "nullable": true - }, - "email": { - "type": "string", - "description": "The email of the meshUser." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshUser. Keep in mind, that values are an array.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshUser." - } - } - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, "meshProjectGroupBindingCreateV3": { "title": "meshProjectGroupBindingCreateV3", "required": [ @@ -17001,10 +16128,8 @@ } } }, - "meshTagDefinition": { - "title": "meshTagDefinition", + "api-meshobjects-meshplatforms-986068135": { "required": [ - "_links", "apiVersion", "kind", "metadata", @@ -17014,2202 +16139,1976 @@ "properties": { "metadata": { "required": [ - "name" + "name", + "ownedByWorkspace" ], "type": "object", "properties": { + "deletedOn": { + "type": "string", + "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", + "nullable": true + }, "name": { "type": "string", - "description": "Must be of the form `$targetKind.$key` since tag definitions must be non-conflicting." + "description": "The platform identifier as 'name' to identify the meshPlatform." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace that owns this meshPlatform." } }, - "description": "Always contains the 'name' to uniquely identify the meshTagDefinition." + "description": "Contains metadata to uniquely identify the meshPlatform." }, "apiVersion": { "type": "string", - "description": "Version of `meshTagDefinition` datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Currently only contains the `self` link." + "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a `kind`. This is always `meshTagDefinition` for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." }, "spec": { "required": [ - "description", + "availability", + "config", "displayName", - "key", - "targetKind", - "valueType" + "locationRef", + "quotaDefinitions" ], "type": "object", "properties": { - "immutable": { - "type": "boolean", - "description": "Indicates whether the tag value is not editable after initially set.", + "documentationUrl": { + "type": "string", + "description": "URL for platform documentation.", "nullable": true }, - "replicationKey": { + "quotaDefinitions": { + "type": "array", + "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For platforms that don't support it yet, you have to provide an empty array. If empty list is provided, all existing quota definitions are removed.", + "items": { + "required": [ + "autoApprovalThreshold", + "description", + "label", + "maxValue", + "minValue", + "quotaKey" + ], + "type": "object", + "properties": { + "quotaKey": { + "type": "string", + "description": "The key of the quota as it is required by the cloud platform." + }, + "minValue": { + "type": "number", + "description": "Minimum allowed value for this quota." + }, + "unit": { + "type": "string", + "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", + "nullable": true + }, + "autoApprovalThreshold": { + "type": "number", + "description": "Threshold below which quota requests are automatically approved." + }, + "maxValue": { + "type": "number", + "description": "Maximum allowed value for this quota." + }, + "description": { + "type": "string", + "description": "Detailed description of what this quota controls." + }, + "label": { + "type": "string", + "description": "Human-readable label for the quota." + } + } + } + }, + "endpoint": { "type": "string", - "description": "The key for this tag when replicated to cloud platforms. If null, replication is disabled.", + "description": "The web console URL endpoint of the platform.", "nullable": true }, - "restricted": { - "type": "boolean", - "description": "Indicates whether only admins can edit this tag.", - "nullable": true + "locationRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "The kind of the referenced location, always 'meshLocation'." + }, + "name": { + "type": "string", + "description": "The identifier of the location." + } + }, + "description": "Reference to the location where this platform is situated." }, "displayName": { "type": "string", - "description": "The display name of the tag." + "description": "The human-readable display name of the meshPlatform." }, - "valueType": { + "supportUrl": { + "type": "string", + "description": "URL for platform support documentation.", + "nullable": true + }, + "description": { + "type": "string", + "description": "description of the meshPlatform.", + "nullable": true + }, + "availability": { + "required": [ + "publicationState", + "restriction" + ], "type": "object", "properties": { - "number": { - "type": "object", - "properties": { - "defaultValue": { - "type": "number", - "description": "The default value of the tag.", - "nullable": true - } - }, - "description": "a decimal number, represented a JSON number" + "publicationState": { + "type": "string", + "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." }, - "string": { - "type": "object", - "properties": { - "defaultValue": { - "type": "string", - "description": "The default value of the tag.", - "nullable": true - }, - "validationRegex": { - "type": "string", - "description": "The regex pattern that the tag value must match.", - "nullable": true - } - }, - "description": "string, represented as JSON string" + "restriction": { + "type": "string", + "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." }, - "integer": { - "type": "object", - "properties": { - "defaultValue": { - "type": "number", - "description": "The default value of the tag.", - "nullable": true - } - }, - "description": "an integer, represented as a JSON number" - }, - "singleSelect": { + "restrictedToWorkspaces": { + "type": "array", + "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Availability configuration for the meshPlatform." + }, + "readme": { + "type": "string", + "description": "README about the meshPlatform in markdown format", + "nullable": true + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "kubernetes": { "required": [ - "options" + "baseUrl" ], "type": "object", "properties": { - "defaultValue": { + "replication": { + "required": [ + "clientConfig", + "namespaceNamePattern" + ], + "type": "object", + "properties": { + "namespaceNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. Kubernetes Namespace Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client configuration for Kubernetes" + } + }, + "description": "Replication configuration for Kubernetes (optional, but required for replication)" + }, + "baseUrl": { "type": "string", - "description": "The default value of the tag.", - "nullable": true + "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" }, - "options": { - "type": "array", - "description": "The allowed options for the tag as a string[]", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" + "metering": { + "required": [ + "clientConfig", + "processing" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } }, - { - "type": "string" + "description": "Processing configuration for metering data" + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } }, - { - "type": "number" - } - ] - } - } - }, - "description": "a string from a list of options, represented as a JSON string" - }, - "email": { - "type": "object", - "properties": { - "defaultValue": { - "type": "string", - "description": "The default value of the tag.", - "nullable": true + "description": "Client config for metering" + } + }, + "description": "Replication configuration for Kubernetes (optional, but required for metering)" }, - "validationRegex": { - "type": "string", - "description": "The regex pattern that the tag value must match.", + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", "nullable": true } }, - "description": "email address, represented as JSON string" + "description": "Configuration for Kubernetes" }, - "multiSelect": { + "azurerg": { "required": [ - "options" + "entraTenant" ], "type": "object", "properties": { - "defaultValue": { - "type": "array", - "description": "The default value of the tag.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "options": { - "type": "array", - "description": "The allowed options for the tag as a string[]", - "items": { - "oneOf": [ - { - "type": "object" + "replication": { + "required": [ + "resourceGroupNamePattern", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscription", + "userGroupNamePattern", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "administrativeUnitId": { + "type": "string", + "description": "Administrative unit ID for group placement", + "nullable": true + }, + "userGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" + }, + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } }, - { - "type": "boolean" + "description": "Service principal configuration for replicator access." + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, Azure sends Invitation mails to invited users" + } }, - { - "type": "string" + "description": "Optional B2B user invitation configuration" + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Prefix for all labels created by meshStack" + } }, - { - "type": "number" - } - ] - } - } - }, - "description": "one or multiple strings from a list of option, represented as a JSON array" - } - }, - "description": "The TagValueType of the tag. Must define exactly one of the available types." - }, - "sortOrder": { - "type": "number", - "description": "The sort order for this tag when displayed in the UI. meshPanel sorts tags in ascending order.", - "nullable": true - }, - "targetKind": { - "type": "string", - "description": "The kind of meshObject this tag is defined for. At this moment only the following kinds are supported by meshStack: `meshWorkspace, meshProject, meshLandingZone, meshPaymentMethod, meshBuildingBlockDefinition, meshProjectRole, meshPrincipal`" - }, - "description": { - "type": "string", - "description": "The detailed description of the tag." - }, - "mandatory": { - "type": "boolean", - "description": "Indicates whether the tag is mandatory.", - "nullable": true - }, - "key": { - "type": "string", - "description": "The key of the tag. This key must be unique for all tags defined for the same `targetKind`." - } - }, - "description": "Specification for the meshTagDefinition." - } - } - }, - "meshEventLogList": { - "title": "meshEventLogList", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshEventLogs" - ], - "type": "object", - "properties": { - "meshEventLogs": { - "type": "array", - "description": "List of meshEventLogs.", - "items": { - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "createdAt", - "uuid" - ], - "type": "object", - "properties": { - "createdAt": { - "type": "string", - "description": "The timestamp when this event log was created (ISO-8601 format)." + "description": "Tenant tags configuration" + }, + "userLookUpStrategy": { + "type": "string", + "description": "User lookup strategy ('userPrincipalName' or 'email')" + }, + "subscription": { + "type": "string", + "description": "The Subscription that will contain all the created Resource Groups" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Preserve user groups and replicated permission after tenant deletion" + }, + "resourceGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Enable or disable hierarchical management group assignment", + "nullable": true + } }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies this event log." - } + "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" }, - "description": "Contains metadata about the event log, including its UUID and creation timestamp." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshEventLog datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshEventLog." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshEventLog' for this endpoint." + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + } }, - "spec": { - "required": [ - "author", - "content", - "description", - "eventType", - "title" - ], - "type": "object", - "properties": { - "author": { - "required": [ - "authorType", - "identifier" - ], - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "The identifier of the author who triggered this event. Depending on the `authorType`, this is:\n* ApiKey: The Key ID (UUID) of the ApiKey\n* ApiUser: The username of the ApiUser\n* System: Always `system` (only a single System author exists)\n* Unknown: Usually the username of a user that has been deleted\n* User: The `uuid` of the User" - }, - "authorType": { - "type": "string", - "description": "The type of author who triggered this event. Possible values: ApiKey, ApiUser, System, Unknown, User." + "description": "Configuration for Azure Resource Group" + }, + "gcp": { + "type": "object", + "properties": { + "replication": { + "required": [ + "allowHierarchicalFolderAssignment", + "billingAccountId", + "customerId", + "domain", + "gcpRoleMappings", + "groupNamePattern", + "projectIdPattern", + "projectNamePattern", + "serviceAccount", + "skipUserGroupPermissionCleanup", + "userLookupStrategy" + ], + "type": "object", + "properties": { + "gcpRoleMappings": { + "type": "array", + "description": "Role mappings for GCP with project role references", + "items": { + "required": [ + "gcpRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "gcpRole": { + "type": "string", + "description": "GCP role to assign" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } } }, - "description": "Information about the author who triggered this event." - }, - "description": { - "type": "string", - "description": "A detailed description of the event." - }, - "previousContent": { - "type": "object", - "description": "The previous content/state before this event occurred, represented as a JSON object. Only present for events of type `Changed`.", - "nullable": true - }, - "workspaceRef": { - "type": "object", - "description": "Reference to the workspace this event log is associated with. May be null for system-wide events.", - "nullable": true - }, - "eventType": { - "type": "string", - "description": "The type of event. Possible values: Added, Approved, Cancelled, Changed, Created, Deleted, Rejected, Removed, Requested." - }, - "title": { - "type": "string", - "description": "A brief title describing the event." + "userLookupStrategy": { + "type": "string", + "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" + }, + "projectNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. The result must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. When length restrictions are applied, the abbreviation will be in the middle and marked by a single-quote." + }, + "projectIdPattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. The resulting string must not exceed a total length of 30 characters. Only alphanumeric + hyphen are allowed. We recommend that configuration include at least 3 characters of the random parameter to reduce the chance of naming collisions as the project Ids must be globally unique within GCP." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Namespace prefix for tenant tags" + } + }, + "description": "Tenant tags configuration" + }, + "domain": { + "type": "string", + "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." + }, + "customerId": { + "type": "string", + "description": "A Google Customer ID. It typically starts with a 'C'." + }, + "allowHierarchicalFolderAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + }, + "billingAccountId": { + "type": "string", + "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider." + } + }, + "description": "Service account workload identity configuration (required when type is 'workloadIdentity')" + }, + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Configuration of the service account used for GCP API access" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + }, + "groupNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." + } }, - "content": { - "type": "object", - "description": "The current content/state associated with this event, represented as a JSON object. The structure varies depending on the event type." - } + "description": "Replication configuration for GCP (optional, but required for replication)" }, - "description": "All fields in this section describe the event log." - } - } - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "api-meshobjects-meshpaymentmethods1366945563": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The paymentMethodIdentifier as 'name'." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspaceIdentifier as 'ownedByWorkspace'." - } - }, - "description": "Always contains the 'name' and (optional) 'ownedByWorkspace' to uniquely identify the meshPaymentMethod." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshPaymentMethod datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPaymentMethod' for this endpoint." - }, - "spec": { - "required": [ - "displayName" - ], - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "The amount of the meshPaymentMethod.", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the meshPaymentMethod as it is shown in meshPanel." - }, - "expirationDate": { - "type": "string", - "description": "The expiration date (yyyy-MM-dd) of the meshPaymentMethod. The date is considered as UTC.", - "nullable": true - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshPaymentMethod. Keep in mind, that values are an array.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshPaymentMethod." - } - } - }, - "meshTenantPostV4": { - "title": "meshTenantPostV4", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByProject", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The identifier of the meshProject the meshTenant belongs to." - }, - "markedForDeletionOn": { - "type": "string", - "description": "If the meshTenant has been submitted for deletion by a Workspace Manager, the date is represented here (e.g. `2020-12-22T09:37:43Z)`. Otherwise this field is missing.", - "nullable": true - }, - "deletedOn": { - "type": "string", - "description": "If the meshTenant was deleted successfully in the cloud platform, the date is represented here (e.g. `2020-12-22T10:12:25Z)`. Otherwise this field is missing.", - "nullable": true - }, - "createdOn": { - "type": "string", - "description": "The creation date of the meshTenant.", - "nullable": true - }, - "uuid": { - "type": "string", - "description": "The UUID of the meshTenant. It must be used to reference a meshTenant.", - "nullable": true - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the meshTenant belongs to." - } - }, - "description": "Contains common meshObject data." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshTenant datatype. Matches the version provided in the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Currently only contains the self link." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." - }, - "spec": { - "required": [ - "landingZoneIdentifier", - "platformIdentifier", - "quotas" - ], - "type": "object", - "properties": { - "quotas": { - "type": "array", - "description": "The set of applied Tenant Quotas. They can be set individually per tenant. By default the Landing Zone quotas are applied to new meshTenants.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "platformTenantId": { - "type": "string", - "description": "The platform tenant id related to this meshTenant. It will only be set if the tenant was either imported via meshObject API with a platformTenantId or if at least one replication run was executed that resulted in the creation of a platform tenant. +\n*Note:* This does not mean the whole replication must have been successful. Some steps like role assignments on this tenant might be still in progress.", - "nullable": true - }, - "landingZoneIdentifier": { - "type": "string", - "description": "The identifier of the Landing Zone of this meshTenant. This field will be empty if the meshTenant has no Landing Zone." - }, - "platformIdentifier": { - "type": "string", - "description": "The identifier of the related platform instance." - } - }, - "description": "All fields in this section describe the meshTenant." - }, - "status": { - "required": [ - "platformTypeIdentifier", - "tags", - "tenantName" - ], - "type": "object", - "properties": { - "platformWorkspaceIdentifier": { - "type": "string", - "description": "Some platforms like Cloud Foundry create a representation of a workspace. The identifier of this workspace representation is stored here. This field is not provided or null if the platform does not support this feature.", - "nullable": true - }, - "tenantName": { - "type": "string", - "description": "The full name of this tenant, a concatenation of the workspace identifier, project identifier and platform identifier." - }, - "tags": { - "type": "object", - "description": "The tags assigned to this meshTenant originating from meshWorkspace, Payment Method and meshProject. Keep in mind, that values are an array." - }, - "platformTypeIdentifier": { - "type": "string", - "description": "The identifier of the related platform type." - } - }, - "description": "All fields in this section represent the current status of the tenant and can change over time." - } - } - }, - "meshBuildingBlockPost": { - "title": "meshBuildingBlockPost", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "createdOn", - "definitionUuid", - "definitionVersion", - "forcePurge", - "tenantIdentifier", - "uuid" - ], - "type": "object", - "properties": { - "markedForDeletionOn": { - "type": "string", - "description": "If the Building Block has been marked for deletion, the date when a user requested the deletion is provided via this field. e.g. `2020-12-22T09:37:43Z`", - "nullable": true - }, - "forcePurge": { - "type": "boolean", - "description": "Set to true, if an operator explicitly requested this Building Block to be purged." - }, - "definitionVersion": { - "type": "number", - "description": "The version number of the Building Block Definition this Building Block is based on." - }, - "markedForDeletionBy": { - "type": "string", - "description": "If the Building Block has already been deleted, the username of the user who triggered the deletion is provided here.", - "nullable": true - }, - "createdOn": { - "type": "string", - "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." - }, - "uuid": { - "type": "string", - "description": "The UUID to uniquely identify the Building Block." - }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition this Building Block is based on." - }, - "tenantIdentifier": { - "type": "string", - "description": "The full identifier of the tenant, this Building Block is created in." - } - }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." - }, - "apiVersion": { - "type": "string", - "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a Building Block." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." - }, - "spec": { - "required": [ - "displayName", - "inputs", - "parentBuildingBlocks" - ], - "type": "object", - "properties": { - "parentBuildingBlocks": { - "type": "array", - "description": "List of inputs, which are set on the Building Block.", - "items": { - "required": [ - "buildingBlockUuid", - "definitionUuid" - ], - "type": "object", - "properties": { - "buildingBlockUuid": { - "type": "string", - "description": "The UUID of the parent Building Block." + "metering": { + "required": [ + "bigqueryTable", + "partitionTimeColumn", + "processing", + "serviceAccount" + ], + "type": "object", + "properties": { + "partitionTimeColumn": { + "type": "string", + "description": "Column name for partitioning time-based data" + }, + "additionalFilter": { + "type": "string", + "description": "Additional SQL filter for billing data (optional)", + "nullable": true + }, + "bigqueryTableForCarbonFootprint": { + "type": "string", + "description": "BigQuery table containing carbon footprint data (optional)", + "nullable": true + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "carbonFootprintDataCollectionStartMonth": { + "type": "string", + "description": "Start month for carbon footprint data collection (optional)", + "nullable": true + }, + "bigqueryTable": { + "type": "string", + "description": "BigQuery table containing billing data export" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account for metering, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider for metering access." + } + }, + "description": "Service account workload identity configuration for metering (required when type is 'workloadIdentity')" + }, + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for metering service account. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Configuration of the service account used for GCP metering API access" + } + }, + "description": "Metering configuration for GCP (optional, but required for metering)" + } }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition of the parent Building Block." - } - } - } - }, - "inputs": { - "type": "array", - "description": "List of inputs, which are set on the Building Block.", - "items": { - "required": [ - "key", - "value", - "valueType" - ], - "type": "object", - "properties": { - "valueType": { - "type": "string", - "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." - }, - "value": { - "type": "string", - "description": "The value, which is set on this input." - }, - "key": { - "type": "string", - "description": "The key of the input as set on the related Building Block Definition." - } - } - } - }, - "displayName": { - "type": "string", - "description": "The display name of the Building Block as it is shown in meshPanel." - } - }, - "description": "All fields in this section describe the Building Block." - }, - "status": { - "required": [ - "outputs", - "status" - ], - "type": "object", - "properties": { - "outputs": { - "type": "array", - "description": "List of outputs, which are set on the Building Block. Empty, just after creation.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "status": { - "type": "string", - "description": "The status of the Building Block. One of WAITING_FOR_DEPENDENT_INPUT, WAITING_FOR_OPERATOR_INPUT, WAITING_FOR_USER_INPUT, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ABORTED." - } - }, - "description": "All fields in this section describe the current status of the Building Block." - } - } - }, - "meshUserV2": { - "title": "meshUserV2", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The username as 'name' to uniquely identify the meshUser." - }, - "uuid": { - "type": "string", - "description": "A unique identifier (UUID) for the meshUser.", - "nullable": true - } - }, - "description": "Always contains the 'name' to uniquely identify the meshUser." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshUser." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." - }, - "spec": { - "required": [ - "email", - "firstName", - "lastName" - ], - "type": "object", - "properties": { - "lastName": { - "type": "string", - "description": "The last name of the meshUser." - }, - "firstName": { - "type": "string", - "description": "The first name of the meshUser." - }, - "euid": { - "type": "string", - "description": "External User ID which is used to lookup the user in the cloud platforms.", - "nullable": true - }, - "email": { - "type": "string", - "description": "The email of the meshUser." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshUser. Keep in mind, that values are an array.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshUser." - } - } - }, - "meshCommunication": { - "title": "meshCommunication", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByWorkspace", - "uuid" - ], - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "The UUID to uniquely identify the communication." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace that owns the communication" - } - }, - "description": "Always contains the 'uuid' to uniquely identify the communication. It also contains additional meta information." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshCommunication datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Currently only contains the self link." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshCommunication' for this endpoint." - }, - "spec": { - "required": [ - "communicationDefinitionRef", - "targetMeshObjectRef" - ], - "type": "object", - "properties": { - "communicationDefinitionRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshCommunicationDefinition\"" - }, - "uuid": { - "type": "string", - "description": "UUID of the associated communication definition." - } - }, - "description": "Reference to the associated communication definition." - }, - "targetMeshObjectRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "What kind of meshObject is targeted (e.g. meshWorkspace)" - }, - "name": { - "type": "string", - "description": "An name or identifier to uniquely identify the targeted meshObject" - } - }, - "description": "Describes the meshObject that is targeted by this communication" - } - }, - "description": "All fields in this section describe the communication." - }, - "status": { - "required": [ - "meshCommunicationDefinition", - "resolutionStatus" - ], - "type": "object", - "properties": { - "meshCommunicationDefinition": { - "required": [ - "communicationType", - "dueDate", - "title", - "uuid" - ], - "type": "object", - "properties": { - "dueDate": { - "type": "string", - "description": "The due date of the meshCommunicationDefinition in ISO 8601 format (YYYY-MM-DD). Only present if a due date was specified for the communication definition." - }, - "communicationType": { - "type": "string", - "description": "Either NOTIFICATION or ACTION_REQUIRED." + "description": "Configuration for Google Cloud Platform (GCP)" }, - "title": { - "type": "string", - "description": "The title of the meshCommunicationDefinition." + "openshift": { + "required": [ + "baseUrl" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "clientConfig", + "enableTemplateInstantiation", + "identityProviderName", + "projectNamePattern" + ], + "type": "object", + "properties": { + "openshiftRoleMappings": { + "type": "array", + "description": "Role mappings for GCP with project role references", + "items": { + "required": [ + "openshiftRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "openshiftRole": { + "type": "string", + "description": "OpenShift role to assign" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "identifier of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, + "webConsoleUrl": { + "type": "string", + "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", + "nullable": true + }, + "projectNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. OpenShift Project Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + } + }, + "description": "Tenant tags configuration" + }, + "identityProviderName": { + "type": "string", + "description": "Identity provider name" + }, + "enableTemplateInstantiation": { + "type": "boolean", + "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client configuration for OpenShift" + } + }, + "description": "Replication configuration for OpenShift (optional, but required for replication)" + }, + "baseUrl": { + "type": "string", + "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" + }, + "metering": { + "required": [ + "clientConfig", + "processing" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Access token for Kubernetes API authentication. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Kubernetes client configuration for metering access" + } + }, + "description": "Metering configuration for OpenShift (optional, but required for metering)" + }, + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the OpenShift cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", + "nullable": true + } + }, + "description": "Configuration for OpenShift" }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies the meshCommunicationDefinition." - } - }, - "description": "the communication definition associated to this communication." - }, - "resolutionStatus": { - "type": "string", - "description": "only present if the associated communication definition is of type ACTION_REQUIRED. Either OPEN or RESOLVED." - } - }, - "description": "contains the current status as well as the associated meshCommunicationDefinition" - } - } - }, - "meshWorkspaceUserGroup": { - "title": "meshWorkspaceUserGroup", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The workspaceUserGroupIdentifier as 'name' to uniquely identify the meshWorkspaceUserGroup." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace that owns this WorkspaceUserGroup." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshWorkspaceUserGroup. It also contains the workspace name that owns this WorkspaceUserGroup." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshWorkspaceUserGroup datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshWorkspaceUserGroup." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceUserGroup' for this endpoint." - }, - "spec": { - "required": [ - "displayName", - "members", - "tags" - ], - "type": "object", - "properties": { - "egid": { - "type": "string", - "description": "External Group Identifier, this is an optional field.", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the meshWorkspaceUserGroup as it is shown in meshPanel." - }, - "members": { - "type": "array", - "description": "List of usernames", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshWorkspaceUserGroup. Keep in mind, that values are an array." - } - }, - "description": "All fields in this section describe the meshWorkspaceUserGroup." - } - } - }, - "meshProjectUserBindingCreateV3": { - "title": "meshProjectUserBindingCreateV3", - "required": [ - "_links", - "apiVersion", - "kind" - ], - "type": "object", - "properties": { - "targetRef": { - "required": [ - "displayName", - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The name of the project the user was assigned to." - }, - "name": { - "type": "string", - "description": "The identifier of the project the user was assigned to." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace which contains the project." - } - } - }, - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of this binding which later can be used to refer to it" - } - } - }, - "apiVersion": { - "type": "string", - "description": "Version of this object" - }, - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "kind": { - "type": "string", - "description": "Type of the returned meshObject" - }, - "subject": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The username of the referenced user." - } - } - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this user." - } - } - } - } - }, - "meshObjectsRootV1": { - "title": "meshObjectsRootV1", - "required": [ - "_links" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "All available meshObject Links for the authenticated user." - } - } - }, - "apiKeyLoginResponse": { - "title": "apiKeyLoginResponse", - "required": [ - "access_token", - "expires_in", - "not-before-policy", - "refresh_expires_in", - "scope", - "token_type" - ], - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "The access token issued by the authorization server. This token must be included in the Authorization header as a Bearer token when making authenticated API requests." - }, - "refresh_expires_in": { - "type": "number", - "description": "The number of seconds until the refresh token expires. After this time, a new login is required." - }, - "scope": { - "type": "string", - "description": "The scopes granted to the access token, indicating the permissions associated with the token." - }, - "not-before-policy": { - "type": "number", - "description": "The timestamp (in seconds since epoch) before which the token is not valid." - }, - "token_type": { - "type": "string", - "description": "The type of the token issued. Typically 'Bearer'." - }, - "expires_in": { - "type": "number", - "description": "The number of seconds until the access token expires and must be refreshed." - } - } - }, - "api-meshobjects-meshprojectbindings-groupbindings1480218446": { - "required": [ - "apiVersion", - "kind" - ], - "type": "object", - "properties": { - "targetRef": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of the project the group should get assigned to." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace which contains the project." - } - } - }, - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of this binding which later can be used to refer to it. It must be globally unique." - } - } - }, - "apiVersion": { - "type": "string", - "description": "Version of this object" - }, - "kind": { - "type": "string", - "description": "Type of the returned meshObject" - }, - "subject": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of the referenced group." - } - } - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this group." - } - } - } - } - }, - "api-meshobjects-meshlocations-identifier-860925225": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier that uniquely identifies the meshLocation." - } - }, - "description": "Contains the identifiers for the meshLocation." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshLocation datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLocation' for this endpoint." - }, - "spec": { - "required": [ - "displayName" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name of the meshLocation shown in the UI." - }, - "description": { - "type": "string", - "description": "An optional description of the meshLocation.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshLocation configuration." - } - } - }, - "meshProjectRoleListV1": { - "title": "meshProjectRoleListV1", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshProjectRoles" - ], - "type": "object", - "properties": { - "meshProjectRoles": { - "type": "array", - "description": "List of meshProjectRoles.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" + "aks": { + "required": [ + "baseUrl" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "accessToken", + "aksClusterName", + "aksResourceGroup", + "aksSubscriptionId", + "groupNamePattern", + "namespaceNamePattern", + "sendAzureInvitationMail", + "servicePrincipal", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "administrativeUnitId": { + "type": "string", + "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "nullable": true + }, + "aksSubscriptionId": { + "type": "string", + "description": "Subscription ID for the AKS cluster" + }, + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "entraTenant", + "objectId" + ], + "type": "object", + "properties": { + "entraTenant": { + "type": "string", + "description": "Domain name or ID of the Entra Tenant that holds the Service Principal." + }, + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of AKS authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } + }, + "description": "Service principal configuration for replicator EntraID access to manage groups that are used for RBAC in the AKS cluster." + }, + "redirectUrl": { + "type": "string", + "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation.", + "nullable": true + }, + "aksResourceGroup": { + "type": "string", + "description": "Resource group for the AKS cluster" + }, + "namespaceNamePattern": { + "type": "string", + "description": "Pattern for naming namespaces in AKS" + }, + "userLookUpStrategy": { + "type": "string", + "description": "Strategy for user lookup in Azure ('userPrincipalName' or 'email')" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "Flag to send Azure invitation emails. When true, meshStack instructs Azure to send out Invitation mails to invited users." + }, + "aksClusterName": { + "type": "string", + "description": "Name of the AKS cluster" + }, + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the Kubernetes service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "groupNamePattern": { + "type": "string", + "description": "Pattern for naming groups in AKS" + } + }, + "description": "Replication configuration for AKS (optional, but required for replication)" + }, + "baseUrl": { + "type": "string", + "description": "Base URL of the AKS cluster" + }, + "metering": { + "required": [ + "clientConfig" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + } + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Processing configuration for metering data" + } + }, + "description": "Replication configuration for AKS (optional, but required for metering)" + }, + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", + "nullable": true + } }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "api-meshobjects-meshbuildingblocks-884287178": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "definitionUuid", - "definitionVersion", - "tenantIdentifier" - ], - "type": "object", - "properties": { - "definitionVersion": { - "type": "number", - "description": "The version number of the Building Block Definition this Building Block is based on." - }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition this Building Block is based on." - }, - "tenantIdentifier": { - "type": "string", - "description": "The full identifier of the tenant, this Building Block is created in." - } - }, - "description": "Fixed fields that help identify the Building Block." - }, - "apiVersion": { - "type": "string", - "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." - }, - "spec": { - "required": [ - "displayName", - "inputs", - "parentBuildingBlocks" - ], - "type": "object", - "properties": { - "parentBuildingBlocks": { - "type": "array", - "description": "List of parent building blocks, which are required for the Building Block. If none given, an empty list needs to be provided.", - "items": { - "required": [ - "buildingBlockUuid", - "definitionUuid" - ], - "type": "object", - "properties": { - "buildingBlockUuid": { - "type": "string", - "description": "The UUID of the parent Building Block." - }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition of the parent Building Block." - } - } - } - }, - "inputs": { - "type": "array", - "description": "List of inputs, which are set on the Building Block.", - "items": { - "required": [ - "key", - "value", - "valueType" - ], - "type": "object", - "properties": { - "valueType": { - "type": "string", - "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." - }, - "value": { - "type": "string", - "description": "The value, which is set on this input." - }, - "key": { - "type": "string", - "description": "The key of the input as set on the related Building Block Definition." - } - } - } - }, - "displayName": { - "type": "string", - "description": "The display name of the Building Block as it is shown in meshPanel." - } - }, - "description": "All fields in this section describe the Building Block." - } - } - }, - "meshWorkspaceGroupBindingList": { - "title": "meshWorkspaceGroupBindingList", - "required": [ - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshWorkspaceGroupBindings" - ], - "type": "object", - "properties": { - "meshWorkspaceGroupBindings": { - "type": "array", - "description": "List of meshWorkspaceGroupBindings.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "api-meshobjects-meshtenants14069591": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByProject", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The identifier of the meshProject the meshTenant belongs to." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the meshTenant belongs to." - } - }, - "description": "Fixed fields that help identify the Tenant." - }, - "apiVersion": { - "type": "string", - "description": "Version of Tenant datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." - }, - "spec": { - "required": [ - "landingZoneIdentifier", - "platformIdentifier" - ], - "type": "object", - "properties": { - "platformTenantId": { - "type": "string", - "description": "The platform tenant id assigned by the platform for this meshTenant. If set, meshStack will import an existing tenant from the cloud platform instead of creating a new one. Only API Keys or API Users with admin permissions for saving tenants can set this field.", - "nullable": true - }, - "landingZoneIdentifier": { - "type": "string", - "description": "The identifier of the landing zone the meshTenant belongs to." - }, - "platformIdentifier": { - "type": "string", - "description": "The identifier of the platform the meshTenant belongs to." - } - }, - "description": "All fields in this section describe the Tenant." - } - } - }, - "meshProjectPut": { - "title": "meshProjectPut", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "deletedOn": { - "type": "string", - "description": "If the meshProject has been submitted for deletion by a Workspace Manager, the date, the date is represented here (e.g. `2020-12-22T09:37:43Z)`. Otherwise this field is missing.", - "nullable": true - }, - "name": { - "type": "string", - "description": "The projectIdentifier as 'name'." - }, - "createdOn": { - "type": "string", - "description": "The meshProject has been created at this date (e.g. `2020-12-22T09:37:43Z`).", - "nullable": true - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspaceIdentifier as 'ownedByWorkspace'." - } - }, - "description": "Always contains the 'name' and 'ownedByWorkspace' to uniquely identify the meshProject." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshProject." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." - }, - "spec": { - "required": [ - "displayName", - "tags" - ], - "type": "object", - "properties": { - "substitutePaymentMethodIdentifier": { - "type": "string", - "description": "The substitutePaymentMethod of the meshProject", - "nullable": true - }, - "paymentMethodIdentifier": { - "type": "string", - "description": "The meshPaymentMethod of the meshProject.", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the meshProject as it is shown in meshPanel." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshProject. Keep in mind, that values are an array." - } - }, - "description": "All fields in this section describe the meshProject." - } - } - }, - "meshTenantV4": { - "title": "meshTenantV4", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByProject", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The identifier of the meshProject the meshTenant belongs to." - }, - "markedForDeletionOn": { - "type": "string", - "description": "If the meshTenant has been submitted for deletion by a Workspace Manager, the date is represented here (e.g. `2020-12-22T09:37:43Z)`. Otherwise this field is missing.", - "nullable": true - }, - "deletedOn": { - "type": "string", - "description": "If the meshTenant was deleted successfully in the cloud platform, the date is represented here (e.g. `2020-12-22T10:12:25Z)`. Otherwise this field is missing.", - "nullable": true - }, - "createdOn": { - "type": "string", - "description": "The creation date of the meshTenant.", - "nullable": true - }, - "uuid": { - "type": "string", - "description": "The UUID of the meshTenant. It must be used to reference a meshTenant.", - "nullable": true - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the meshTenant belongs to." - } - }, - "description": "Contains common meshObject data." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshTenant datatype. Matches the version provided in the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Currently only contains the self link." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." - }, - "spec": { - "required": [ - "landingZoneIdentifier", - "platformIdentifier", - "quotas" - ], - "type": "object", - "properties": { - "quotas": { - "type": "array", - "description": "The set of applied Tenant Quotas. They can be set individually per tenant. By default the Landing Zone quotas are applied to new meshTenants.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "platformTenantId": { - "type": "string", - "description": "The platform tenant id related to this meshTenant. It will only be set if the tenant was either imported via meshObject API with a platformTenantId or if at least one replication run was executed that resulted in the creation of a platform tenant. +\n*Note:* This does not mean the whole replication must have been successful. Some steps like role assignments on this tenant might be still in progress.", - "nullable": true - }, - "landingZoneIdentifier": { - "type": "string", - "description": "The identifier of the Landing Zone of this meshTenant. This field will be empty if the meshTenant has no Landing Zone." - }, - "platformIdentifier": { - "type": "string", - "description": "The identifier of the related platform instance." - } - }, - "description": "All fields in this section describe the meshTenant." - }, - "status": { - "required": [ - "platformTypeIdentifier", - "tags", - "tenantName" - ], - "type": "object", - "properties": { - "platformWorkspaceIdentifier": { - "type": "string", - "description": "Some platforms like Cloud Foundry create a representation of a workspace. The identifier of this workspace representation is stored here. This field is not provided or null if the platform does not support this feature.", - "nullable": true - }, - "tenantName": { - "type": "string", - "description": "The full name of this tenant, a concatenation of the workspace identifier, project identifier and platform identifier." - }, - "tags": { - "type": "object", - "description": "The tags assigned to this meshTenant originating from meshWorkspace, Payment Method and meshProject. Keep in mind, that values are an array." - }, - "platformTypeIdentifier": { - "type": "string", - "description": "The identifier of the related platform type." - } - }, - "description": "All fields in this section represent the current status of the tenant and can change over time." - } - } - }, - "metadataRoot": { - "title": "metadataRoot", - "required": [ - "_links" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "All available Metadata Links for the authenticated user." - } - } - }, - "meshLandingZone-Get-aks": { - "title": "meshLandingZone-Get-aks", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "tags" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier as 'name' to uniquely identify the meshLandingZone." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshLandingZone." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshLandingZone." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshLandingZone datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on this meshObject." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." - }, - "spec": { - "required": [ - "automateDeletionApproval", - "automateDeletionReplication", - "displayName", - "platformRef", - "quotas" - ], - "type": "object", - "properties": { - "platformProperties": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "kubernetes": { - "required": [ - "kubernetesRoleMappings" - ], - "type": "object", - "properties": { - "kubernetesRoleMappings": { - "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } + "description": "Configuration for Azure Kubernetes Service (AKS)" }, - "gcp": { + "type": { + "type": "string", + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." + }, + "aws": { "required": [ - "gcpFolderId", - "gcpRoleMappings" + "region" ], "type": "object", "properties": { - "gcpFolderId": { - "type": "string", - "description": "Google Cloud Projects will be added to this Google Cloud Folder. This allows applying Organization Policies to all projects managed under this Landing Zone." - }, - "gcpRoleMappings": { - "type": "array", - "description": "You can use both built-in roles like 'roles/editor' or custom roles like 'organizations/123123123123/roles/meshstack.project_developer'. For more information see https://docs.meshcloud.io/meshstack.gcp.landing-zones/#meshrole-to-platform-role-mapping[the Landing Zone documentation]. Multiple GCP Roles can be assigned to one meshRole. If empty, the default that is configured on platform level will be used.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" + "replication": { + "required": [ + "accessConfig", + "accountAccessRole", + "accountAliasPattern", + "accountEmailPattern", + "automationAccountRole", + "enforceAccountAlias", + "selfDowngradeAccessRole", + "skipUserGroupPermissionCleanup", + "waitForExternalAvm" + ], + "type": "object", + "properties": { + "selfDowngradeAccessRole": { + "type": "boolean", + "description": "Flag for self downgrade access role. If set, meshStack will revoke its rights on the managed account that were only needed for initial account creation." + }, + "enrollmentConfiguration": { + "required": [ + "accountFactoryProductId", + "managementAccountId" + ], + "type": "object", + "properties": { + "managementAccountId": { + "type": "string", + "description": "The Account ID of the management account configured for the platform instance." + }, + "accountFactoryProductId": { + "type": "string", + "description": "The Product ID of the AWS Account Factory Product in AWS Service Catalog that should be used for enrollment. Starts with `prod-`." + } }, - { - "type": "string" + "description": "With this optional configuration you can provide general information to enroll the created AWS accounts into Control Tower. Make sure you also enable it on the meshLandingZone!. If you don't, meshStack will skip the enrollment of AWS Accounts into Control Tower." + }, + "accountAccessRole": { + "type": "string", + "description": "The name for the Account Access Role that will be rolled out to all managed accounts. Only a name, not an ARN must be set here, as the ARN must be built dynamically for every managed AWS Account. The replicator service user needs to assume this role in all accounts to manage them." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Namespace prefix for tenant tags" + } }, - { - "type": "number" - } - ] - } - }, - "gcpTemplateUrl": { - "type": "string", - "description": "URL to a GCP bucket (starts with 'gs://') with a template config. The template is deployed in the project during the replication process. Only YAML files are supported with a file size limit of 1 MB.", - "nullable": true - }, - "gcpCloudFunctionUrl": { - "type": "string", - "description": "If a GCP Cloud Function URL is provided it is getting called at the end of the replication process.", - "nullable": true - } - } - }, - "azurerg": { - "required": [ - "azureRgLocation", - "azureRgRoleMappings" - ], - "type": "object", - "properties": { - "azureRgRoleMappings": { - "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cloud specific access role. If empty, the default that is configured on platform level will be used.", - "items": { - "required": [ - "azureGroupSuffix", - "azureRoleDefinitionIds" - ], - "type": "object", - "properties": { - "azureRoleDefinitionIds": { - "type": "array", - "description": "Role Definitions with the given IDs will be attached to this Azure Role", - "items": { - "oneOf": [ - { - "type": "object" + "description": "Tenant tags configuration" + }, + "automationAccountRole": { + "type": "string", + "description": "ARN of the Automation Account Role. The Automation Account contains all AWS StackSets and Lambda Functions that shall be executed via meshLandingZones. E.g. arn:aws:iam::123456789:role/MeshfedAutomationRole." + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later. " + }, + "automationAccountExternalId": { + "type": "string", + "description": "ExternalId to enhance security in a multi account setup when assuming the automation account role.", + "nullable": true + }, + "accountAliasPattern": { + "type": "string", + "description": "With a String Pattern you can define how the account alias of the created AWS account will be named. E.g. +++#+++{workspaceIdentifier}-+++#+++{projectIdentifier}.\nAttention: Account Alias must be globally unique in AWS. So consider defining a unique prefix." + }, + "accountEmailPattern": { + "type": "string", + "description": "With a String Pattern you can define how the account email address of the created AWS account will be set. E.g. 'aws++++#+++{workspaceIdentifier}.+++#+++{projectIdentifier}@yourcompany.com'. Please consider that this email address is limited to 64 characters! Also have a look at our docs for more information." + }, + "enforceAccountAlias": { + "type": "boolean", + "description": "Flag to enforce account alias. If set, meshStack will guarantee on every replication that the configured Account Alias is applied. Otherwise it will only set the Account Alias once during tenant creation." + }, + "waitForExternalAvm": { + "type": "boolean", + "description": "Flag to wait for external AVM.Please use this setting with care! It is currently very specific to certain tags being present on the account! In general, we recommend not to activate this waitForExternalAvm functionality! In a meshLandingZone an AVM can be triggered via an AWS StackSet or via a Lambda Function. If meshStack shall wait for the AVM to complete when creating a new platform tenant, this flag must be checked. meshStack will identify completion of the AVM by checking the presence of the following tags on the AWS account: 'ProductName' is set to workspace identifier and 'Stage' is set to project identifier." + }, + "allowHierarchicalOrganizationalUnitAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical organizational unit assignment in AWS. If set to true: Accounts can be moved to child organizational units of the organizational unit defined in the Landing Zone. This is useful if you want to manage the account location with a deeper and more granular hierarchy. If set to false: Accounts will always be moved directly to the organizational unit defined in the Landing Zone.", + "nullable": true + }, + "accessConfig": { + "required": [ + "auth", + "organizationRootAccountRole" + ], + "type": "object", + "properties": { + "organizationRootAccountRole": { + "type": "string", + "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." + }, + "auth": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" }, - { - "type": "boolean" + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" }, - { - "type": "string" + "type": { + "type": "string", + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Authentication configuration for AWS access" + }, + "organizationRootAccountExternalId": { + "type": "string", + "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role. ", + "nullable": true + } + }, + "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys." + }, + "awsSso": { + "required": [ + "arn", + "awsRoleMappings", + "groupNamePattern", + "scimEndpoint", + "signInUrl", + "ssoAccessToken" + ], + "type": "object", + "properties": { + "ssoAccessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true }, - { - "type": "number" + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true } - ] + }, + "description": "The AWS IAM Identity Center SCIM Access Token. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "signInUrl": { + "type": "string", + "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." + }, + "scimEndpoint": { + "type": "string", + "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." + }, + "arn": { + "type": "string", + "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." + }, + "awsRoleMappings": { + "type": "array", + "description": "Roles can be mapped from the meshRole to the AWS role.", + "items": { + "required": [ + "permissionSetArns", + "projectRoleRef" + ], + "type": "object", + "properties": { + "projectRoleRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Must always be set to `meshProjectRole`" + }, + "name": { + "type": "string", + "description": "The identifier of the meshProjectRole, e.g. `admin` or `user` or `reader`" + } + }, + "description": "A reference to an existing meshProjectRole" + }, + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + } + }, + "groupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." } }, - "azureGroupSuffix": { - "type": "string", - "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." - } + "description": "AWS SSO configuration" } - } + }, + "description": "Replication configuration for AWS (optional, but required for replication)" }, - "azureFunction": { + "metering": { "required": [ - "azureFunctionUrl" + "accessConfig", + "filter", + "processing", + "reservedInstanceFairChargeback", + "savingsPlanFairChargeback" ], "type": "object", "properties": { - "azureFunctionScope": { + "filter": { "type": "string", - "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", - "nullable": true + "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." }, - "azureFunctionUrl": { - "type": "string", - "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "accessConfig": { + "required": [ + "auth", + "organizationRootAccountRole" + ], + "type": "object", + "properties": { + "organizationRootAccountRole": { + "type": "string", + "description": "ARN of the Management Account Role for metering access." + }, + "auth": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role for metering access via workload identity federation" + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" + }, + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for metering service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for metering service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { + "type": "string", + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Authentication configuration for AWS metering access" + }, + "organizationRootAccountExternalId": { + "type": "string", + "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", + "nullable": true + } + }, + "description": "AWS access configuration for metering" + }, + "savingsPlanFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for savings plans" + }, + "reservedInstanceFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for reserved instances" } }, - "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." + "description": "Metering configuration for AWS (optional, but required for metering)" }, - "azureRgLocation": { - "type": "string", - "description": "The newly created Resource Group for the meshProjects will get assigned to this location. It must be all lower case and without spaces (e.g. eastus2 for East US 2). In order to list the available locations you can use `az account list-locations --query \"[*].name\" --out tsv | sort`" - } - } - }, - "openshift": { - "type": "object", - "properties": { - "openShiftTemplate": { + "region": { "type": "string", - "description": "template definition YML to setup a template for projects created in Open Shift", - "nullable": true + "description": "AWS region" } - } + }, + "description": "Configuration for AWS" }, - "aks": { + "azure": { "required": [ - "kubernetesRoleMappings" + "entraTenant" ], "type": "object", "properties": { - "kubernetesRoleMappings": { - "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" + "replication": { + "required": [ + "azureRoleMappings", + "blueprintLocation", + "blueprintServicePrincipal", + "groupNamePattern", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscriptionNamePattern", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } }, - { - "type": "string" + "description": "Service principal configuration for replicator access." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + } }, - { - "type": "number" - } - ] - } - } - } - }, - "type": { - "type": "string", - "description": "The platform type. Possible values are: 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift'." - }, - "aws": { - "required": [ - "awsEnrollAccount", - "awsRoleMappings", - "awsTargetOrgUnitId" - ], - "type": "object", - "properties": { - "awsTargetOrgUnitId": { - "type": "string", - "description": "The created AWS account for this Landing Zone will be put under the given Organizational Unit. You can also input a Root ID (starting with 'r-') then the account will be put directly under this root without assigning it to an OU (this is not recommended)." - }, - "awsLambdaArn": { - "type": "string", - "description": "If this Lambda ARN is given, it is invoked after each project replication. You can use it to trigger a custom Account Vending Machine to perform several additional provisioning steps.", - "nullable": true - }, - "awsRoleMappings": { - "type": "array", - "description": "Roles can be mapped from the meshRole to the AWS Role. The AWS role will be part of the role or group name within AWS. If empty, the default that is configured on platform level will be used.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" + "description": "Tenant tags configuration" + }, + "blueprintLocation": { + "type": "string", + "description": "The Azure location where replication creates and updates Blueprint Assignments. Note that it's still possible that the Blueprint creates resources in other locations, this is merely the location where the Blueprint Assignment is managed." + }, + "userLookUpStrategy": { + "type": "string", + "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + }, + "administrativeUnitId": { + "type": "string", + "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "nullable": true + }, + "azureRoleMappings": { + "type": "array", + "description": "Role mappings for Azure with project role references", + "items": { + "required": [ + "azureRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "azureRole": { + "required": [ + "alias", + "id" + ], + "type": "object", + "properties": { + "alias": { + "type": "string", + "description": "Alias for the Azure role" + }, + "id": { + "type": "string", + "description": "ID of the Azure role" + } + }, + "description": "Azure role" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } } - ] - } - }, - "awsEnrollAccount": { - "type": "boolean", - "description": "If true, accounts will be enrolled to AWS control tower. In case an enrollment configuration is provided for the AWS platform AND this value is set to true, created AWS accounts will automatically be enrolled with AWS Control Tower. Automatic account enrollment does also require the Target Organizational Unit to already be enrolled with AWS Control Tower and the corresponding meshfed-service role needs to be in the \"IAM Principal\" list for the Portfolio access of the Account Factory Product ID you defined in platform settings. Click https://docs.meshcloud.io/integrations/aws/how-to-integrate/#8-integrate-aws-control-tower[here] to learn more about the Control Tower setup." - } - } - }, - "azure": { - "required": [ - "azureManagementGroupId", - "azureRoleMappings" - ], - "type": "object", - "properties": { - "azureRoleMappings": { - "type": "array", - "description": "An array of mappings between the meshRole and the Azure specific access role. If empty, default role mappings defined on meshPlatform level are used. For more information see https://docs.meshcloud.io/meshstack.azure.landing-zones#meshrole-to-platform-role-mapping[the Landing Zone documentation]. If empty, the default that is configured on platform level will be used.", - "items": { - "required": [ - "azureGroupSuffix", - "azureRoleDefinitions" - ], - "type": "object", - "properties": { - "azureRoleDefinitions": { - "type": "array", - "description": "Role Definitions with the given IDs will be attached to this Azure Role", - "items": { + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." + } + }, + "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + }, + "blueprintServicePrincipal": { + "type": "string", + "description": "Object ID of the Enterprise Application belonging to the Microsoft Application 'Azure Blueprints'. meshStack will grant the necessary permissions on managed Subscriptions to this SPN so that it can create System Assigned Managed Identities (SAMI) for Blueprint execution." + }, + "provisioning": { + "type": "object", + "properties": { + "preProvisioned": { + "required": [ + "unusedSubscriptionNamePrefix" + ], "type": "object", "properties": { - "abacCondition": { + "unusedSubscriptionNamePrefix": { "type": "string", - "description": "an ABAC condition for the role assignment in form of a string", + "description": "The prefix that identifies unused subscriptions. Subscriptions will be renamed during meshStack's project replication, at which point they should no longer carry this prefix." + } + }, + "description": "If your organization does not have access to an Enterprise Enrollment, you can alternatively configure meshcloud to consume subscriptions from a pool of externally-provisioned subscriptions. This is useful for smaller organizations that wish to use 'Pay-as-you-go' subscriptions or if you're organization partners with an Azure Cloud Solution Provider to provide your subscriptions. The meshcloud Azure replication detects externally-provisioned subscriptions based on a configurable prefix in the subscription name. Upon assignment to a meshProject, the subscription is inflated with the right Landing Zone configuration and removed from the subscription pool." + }, + "customerAgreement": { + "required": [ + "billingScope", + "destinationEntraId", + "sourceEntraTenant", + "sourceServicePrincipal" + ], + "type": "object", + "properties": { + "sourceServicePrincipal": { + "required": [ + "auth", + "clientId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure Graph API authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the source service principal for replicator access to a customer agreement. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." + }, + "sourceEntraTenant": { + "type": "string", + "description": "Microsoft Entra ID Tenant UUID or domain name used for creating subscriptions. Set this to the Microsoft Entra ID Tenant owning the MCA Billing Scope. If source and destination Microsoft Entra ID Tenants are the same, you need to use UUID." + }, + "subscriptionCreationErrorCooldownSec": { + "type": "number", + "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", "nullable": true + }, + "destinationEntraId": { + "type": "string", + "description": "Microsoft Entra ID Tenant UUID where created subscriptions should be moved. Set this to the Microsoft Entra ID Tenant hosting your landing zones." + }, + "billingScope": { + "type": "string", + "description": "ID of the MCA Billing Scope used for creating subscriptions. Must follow this format: `/providers/Microsoft.Billing/billingAccounts/$accountId/billingProfiles/$profileId/invoiceSections/$sectionId`." } + }, + "description": "meshcloud can automatically provision new subscriptions from a Customer Agreement Account owned by your organization. This is suitable for larger organizations that have such a Customer Agreement with Microsoft, and want to provide a large number of subscriptions in a fully automated fashion." + }, + "subscriptionOwnerObjectIds": { + "type": "array", + "description": "One or more principals Object IDs (e.g. user groups, SPNs) that meshStack will ensure have an 'Owner' role assignment on the managed subscriptions. This can be useful to satisfy Azure's constraint of at least one direct 'Owner' role assignment per Subscription. If you want to use a Service Principal please use the Enterprise Application Object ID.\nYou can not use the replicator object ID here, because meshStack always removes its high privilege access after a Subscription creation.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] } + }, + "enterpriseEnrollment": { + "required": [ + "enrollmentAccountId", + "subscriptionOfferType", + "useLegacySubscriptionEnrollment" + ], + "type": "object", + "properties": { + "subscriptionOfferType": { + "type": "string", + "description": "The Microsoft Subscription offer type to use when creating subscriptions. Only `Production` for standard and `DevTest` for Dev/Test subscriptions are supported for the Non Legacy Subscription Enrollment. For the Legacy Subscription Enrollment also other types can be defined." + }, + "enrollmentAccountId": { + "type": "string", + "description": "ID of the EA Enrollment Account used for the Subscription creation. Should look like this: `/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321`. For more information, review the https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement?tabs=rest-getEnrollments%2Crest-EA#find-accounts-you-have-access-to[Azure docs]." + }, + "subscriptionCreationErrorCooldownSec": { + "type": "number", + "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", + "nullable": true + }, + "useLegacySubscriptionEnrollment": { + "type": "boolean", + "description": "Deprecated: Uses the old Subscription enrollment API in its preview version. This enrollment is less reliable and should not be used for new Azure Platform Integrations." + } + }, + "description": "meshcloud can automatically provision new subscriptions from an Enterprise Enrollment Account owned by your organization. This is suitable for large organizations that have a Microsoft Enterprise Agreement, Microsoft Customer Agreement or a Microsoft Partner Agreement and want to provide a large number of subscriptions in a fully automated fashion." } }, - "azureGroupSuffix": { - "type": "string", - "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." - } + "description": "To provide Azure Subscription for your organization's meshProjects, meshcloud supports using Enterprise Enrollment or allocating from a pool of pre-provisioned subscriptions. One of the subFields `enterpriseEnrollment`, `customerAgreement` or `preProvisioned` must be provided!" + }, + "subscriptionNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." + }, + "groupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names are unique in the managed AAD Tenant." + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to sub management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "nullable": true } - } + }, + "description": "Replication configuration for Azure (optional, but required for replication)" }, - "azureFunction": { + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + }, + "metering": { "required": [ - "azureFunctionUrl" + "processing", + "servicePrincipal" ], "type": "object", "properties": { - "azureFunctionScope": { - "type": "string", - "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", - "nullable": true + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "Client ID of the service principal for metering" + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "Object ID of the service principal for metering" + } + }, + "description": "Service principal configuration for metering access" }, - "azureFunctionUrl": { - "type": "string", - "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" } }, - "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." - }, - "azureManagementGroupId": { - "type": "string", - "description": "Subscriptions with this Landing Zone will be added to this Management Group. Please make sure to use the Management Group ID and not the group name!" + "description": "Metering configuration for Azure (optional, but required for metering)" } - } + }, + "description": "Configuration for Azure" } }, - "description": "Custom properties for the platform of the landing zone. The values depend on the platform type. " + "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." }, - "quotas": { + "contributingWorkspaces": { "type": "array", - "description": "List of default quotas applied via this landing zone. Quotas define resource limits that will be applied to tenants using this landing zone. Tenants can afterwards request different quotas if needed. The available quota keys depend on the platform type and its quota definitions. For platforms that do not support quotas, this will be an empty array.", + "description": "A list of workspace identifiers that may contribute to this meshPlatform.", + "nullable": true, "items": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "value": { - "type": "number", - "description": "The quota value for this landing zone. Must be within the min/max range defined in the platform's quota definition." + "oneOf": [ + { + "type": "object" }, - "key": { - "type": "string", - "description": "The quota key as defined in the platform's quota definitions. Must match a quota definition key from the platform." + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" } - } + ] } - }, - "automateDeletionApproval": { - "type": "boolean", - "description": "Whether deletion approval is automated for this landing zone." - }, - "displayName": { - "type": "string", - "description": "The human-readable display name of the meshLandingZone." - }, - "description": { - "type": "string", - "description": "The description of the meshLandingZone.", - "nullable": true - }, - "automateDeletionReplication": { - "type": "boolean", - "description": "Whether deletion replication is automated for this landing zone." - }, - "platformRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshPlatform\"" - }, - "uuid": { - "type": "string", - "description": "The UUID of the platform instance." - } - }, - "description": "Reference to the platform instance this landing zone belongs to." - }, - "infoLink": { - "type": "string", - "description": "An optional link to describe more details about the landing zone", - "nullable": true - } - }, - "description": "All fields in this section describe the meshLandingZone." - }, - "status": { - "required": [ - "disabled", - "restricted" - ], - "type": "object", - "properties": { - "restricted": { - "type": "boolean", - "description": "If true, users will be unable to select this landing zone in meshPanel. Only Platform teams can create tenants using restricted landing zones with the meshObject API." - }, - "disabled": { - "type": "boolean", - "description": "Whether the landing zone is disabled." } }, - "description": "Current status of the meshLandingZone." + "description": "All fields in this section describe the meshPlatform configuration." } } }, - "importInJson": { - "title": "importInJson", - "type": "object" - }, - "meshPlatformTypeV1Post": { - "title": "meshPlatformTypeV1Post", + "meshTagDefinition": { + "title": "meshTagDefinition", "required": [ "_links", "apiVersion", @@ -19227,223 +18126,107 @@ "properties": { "name": { "type": "string", - "description": "The identifier that uniquely identifies the meshPlatformType." - }, - "createdOn": { - "type": "string", - "description": "Timestamp when the meshPlatformType was created.", - "nullable": true - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies the meshPlatformType across all platform types.", - "nullable": true + "description": "Must be of the form `$targetKind.$key` since tag definitions must be non-conflicting." } }, - "description": "Contains the identifiers for the meshPlatformType." + "description": "Always contains the 'name' to uniquely identify the meshTagDefinition." }, "apiVersion": { "type": "string", - "description": "Version of meshPlatformType datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of `meshTagDefinition` datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", - "description": "Available links on a meshPlatformType." + "description": "Currently only contains the `self` link." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatformType' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a `kind`. This is always `meshTagDefinition` for this endpoint." }, "spec": { "required": [ - "category", + "description", "displayName", - "icon" + "key", + "targetKind", + "valueType" ], "type": "object", "properties": { - "displayName": { - "type": "string", - "description": "The display name of the meshPlatformType shown in the UI." + "immutable": { + "type": "boolean", + "description": "Indicates whether the tag value is not editable after initially set.", + "nullable": true }, - "icon": { + "replicationKey": { "type": "string", - "description": "The icon used to display the platform type in the UI. This must be provided as a base64 encoded data image. Size should be kept small to ensure fast loading times and efficient storage." + "description": "The key for this tag when replicated to cloud platforms. If null, replication is disabled.", + "nullable": true }, - "defaultEndpoint": { - "type": "string", - "description": "The default endpoint URL for the platform type. This will be used as a default value when creating platform instances. The default endpoint should be a link to a web portal of the cloud platform for example.", + "restricted": { + "type": "boolean", + "description": "Indicates whether only admins can edit this tag.", "nullable": true }, - "category": { + "displayName": { "type": "string", - "description": "The platform category. For custom platform types, this is always 'CUSTOM'. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." - } - }, - "description": "All fields in this section describe the meshPlatformType configuration." - }, - "status": { - "required": [ - "lifecycleState" - ], - "type": "object", - "properties": { - "lifecycleState": { - "type": "string", - "description": "The lifecycle state of the platform type. Can be 'ACTIVE' or 'DEACTIVATED'. Deactivated platform types cannot be used to create new platform instances." - } - }, - "description": "The current status of the meshPlatformType." - } - } - }, - "meshBuildingBlockListV2": { - "title": "meshBuildingBlockListV2", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Contains the self link and pagination links (first, last, next, prev). Also includes a link to the related tenant." - }, - "_embedded": { - "required": [ - "meshBuildingBlocks" - ], - "type": "object", - "properties": { - "meshBuildingBlocks": { - "type": "array", - "description": "List of meshBuildingBlocks.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "meshLandingZone-Put-aws": { - "title": "meshLandingZone-Put-aws", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "tags" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier as 'name' to uniquely identify the meshLandingZone." + "description": "The display name of the tag." }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshLandingZone." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshLandingZone." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshLandingZone datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on this meshObject." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." - }, - "spec": { - "required": [ - "automateDeletionApproval", - "automateDeletionReplication", - "displayName", - "platformRef", - "quotas" - ], - "type": "object", - "properties": { - "platformProperties": { - "required": [ - "type" - ], + "valueType": { "type": "object", "properties": { - "kubernetes": { - "required": [ - "kubernetesRoleMappings" - ], + "number": { "type": "object", "properties": { - "kubernetesRoleMappings": { - "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } + "defaultValue": { + "type": "number", + "description": "The default value of the tag.", + "nullable": true } - } + }, + "description": "a decimal number, represented a JSON number" }, - "gcp": { + "string": { + "type": "object", + "properties": { + "defaultValue": { + "type": "string", + "description": "The default value of the tag.", + "nullable": true + }, + "validationRegex": { + "type": "string", + "description": "The regex pattern that the tag value must match.", + "nullable": true + } + }, + "description": "string, represented as JSON string" + }, + "integer": { + "type": "object", + "properties": { + "defaultValue": { + "type": "number", + "description": "The default value of the tag.", + "nullable": true + } + }, + "description": "an integer, represented as a JSON number" + }, + "singleSelect": { "required": [ - "gcpFolderId", - "gcpRoleMappings" + "options" ], "type": "object", "properties": { - "gcpFolderId": { + "defaultValue": { "type": "string", - "description": "Google Cloud Projects will be added to this Google Cloud Folder. This allows applying Organization Policies to all projects managed under this Landing Zone." + "description": "The default value of the tag.", + "nullable": true }, - "gcpRoleMappings": { + "options": { "type": "array", - "description": "You can use both built-in roles like 'roles/editor' or custom roles like 'organizations/123123123123/roles/meshstack.project_developer'. For more information see https://docs.meshcloud.io/meshstack.gcp.landing-zones/#meshrole-to-platform-role-mapping[the Landing Zone documentation]. Multiple GCP Roles can be assigned to one meshRole. If empty, the default that is configured on platform level will be used.", + "description": "The allowed options for the tag as a string[]", "items": { "oneOf": [ { @@ -19460,106 +18243,36 @@ } ] } - }, - "gcpTemplateUrl": { - "type": "string", - "description": "URL to a GCP bucket (starts with 'gs://') with a template config. The template is deployed in the project during the replication process. Only YAML files are supported with a file size limit of 1 MB.", - "nullable": true - }, - "gcpCloudFunctionUrl": { - "type": "string", - "description": "If a GCP Cloud Function URL is provided it is getting called at the end of the replication process.", - "nullable": true } - } + }, + "description": "a string from a list of options, represented as a JSON string" }, - "azurerg": { - "required": [ - "azureRgLocation", - "azureRgRoleMappings" - ], + "email": { "type": "object", "properties": { - "azureRgRoleMappings": { - "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cloud specific access role. If empty, the default that is configured on platform level will be used.", - "items": { - "required": [ - "azureGroupSuffix", - "azureRoleDefinitionIds" - ], - "type": "object", - "properties": { - "azureRoleDefinitionIds": { - "type": "array", - "description": "Role Definitions with the given IDs will be attached to this Azure Role", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "azureGroupSuffix": { - "type": "string", - "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." - } - } - } - }, - "azureFunction": { - "required": [ - "azureFunctionUrl" - ], - "type": "object", - "properties": { - "azureFunctionScope": { - "type": "string", - "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", - "nullable": true - }, - "azureFunctionUrl": { - "type": "string", - "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" - } - }, - "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." - }, - "azureRgLocation": { + "defaultValue": { "type": "string", - "description": "The newly created Resource Group for the meshProjects will get assigned to this location. It must be all lower case and without spaces (e.g. eastus2 for East US 2). In order to list the available locations you can use `az account list-locations --query \"[*].name\" --out tsv | sort`" - } - } - }, - "openshift": { - "type": "object", - "properties": { - "openShiftTemplate": { + "description": "The default value of the tag.", + "nullable": true + }, + "validationRegex": { "type": "string", - "description": "template definition YML to setup a template for projects created in Open Shift", + "description": "The regex pattern that the tag value must match.", "nullable": true } - } + }, + "description": "email address, represented as JSON string" }, - "aks": { + "multiSelect": { "required": [ - "kubernetesRoleMappings" + "options" ], "type": "object", "properties": { - "kubernetesRoleMappings": { + "defaultValue": { "type": "array", - "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", + "description": "The default value of the tag.", + "nullable": true, "items": { "oneOf": [ { @@ -19576,33 +18289,10 @@ } ] } - } - } - }, - "type": { - "type": "string", - "description": "The platform type. Possible values are: 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift'." - }, - "aws": { - "required": [ - "awsEnrollAccount", - "awsRoleMappings", - "awsTargetOrgUnitId" - ], - "type": "object", - "properties": { - "awsTargetOrgUnitId": { - "type": "string", - "description": "The created AWS account for this Landing Zone will be put under the given Organizational Unit. You can also input a Root ID (starting with 'r-') then the account will be put directly under this root without assigning it to an OU (this is not recommended)." }, - "awsLambdaArn": { - "type": "string", - "description": "If this Lambda ARN is given, it is invoked after each project replication. You can use it to trigger a custom Account Vending Machine to perform several additional provisioning steps.", - "nullable": true - }, - "awsRoleMappings": { + "options": { "type": "array", - "description": "Roles can be mapped from the meshRole to the AWS Role. The AWS role will be part of the role or group name within AWS. If empty, the default that is configured on platform level will be used.", + "description": "The allowed options for the tag as a string[]", "items": { "oneOf": [ { @@ -19619,164 +18309,42 @@ } ] } - }, - "awsEnrollAccount": { - "type": "boolean", - "description": "If true, accounts will be enrolled to AWS control tower. In case an enrollment configuration is provided for the AWS platform AND this value is set to true, created AWS accounts will automatically be enrolled with AWS Control Tower. Automatic account enrollment does also require the Target Organizational Unit to already be enrolled with AWS Control Tower and the corresponding meshfed-service role needs to be in the \"IAM Principal\" list for the Portfolio access of the Account Factory Product ID you defined in platform settings. Click https://docs.meshcloud.io/integrations/aws/how-to-integrate/#8-integrate-aws-control-tower[here] to learn more about the Control Tower setup." - } - } - }, - "azure": { - "required": [ - "azureManagementGroupId", - "azureRoleMappings" - ], - "type": "object", - "properties": { - "azureRoleMappings": { - "type": "array", - "description": "An array of mappings between the meshRole and the Azure specific access role. If empty, default role mappings defined on meshPlatform level are used. For more information see https://docs.meshcloud.io/meshstack.azure.landing-zones#meshrole-to-platform-role-mapping[the Landing Zone documentation]. If empty, the default that is configured on platform level will be used.", - "items": { - "required": [ - "azureGroupSuffix", - "azureRoleDefinitions" - ], - "type": "object", - "properties": { - "azureRoleDefinitions": { - "type": "array", - "description": "Role Definitions with the given IDs will be attached to this Azure Role", - "items": { - "type": "object", - "properties": { - "abacCondition": { - "type": "string", - "description": "an ABAC condition for the role assignment in form of a string", - "nullable": true - } - } - } - }, - "azureGroupSuffix": { - "type": "string", - "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." - } - } - } - }, - "azureFunction": { - "required": [ - "azureFunctionUrl" - ], - "type": "object", - "properties": { - "azureFunctionScope": { - "type": "string", - "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", - "nullable": true - }, - "azureFunctionUrl": { - "type": "string", - "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" - } - }, - "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." - }, - "azureManagementGroupId": { - "type": "string", - "description": "Subscriptions with this Landing Zone will be added to this Management Group. Please make sure to use the Management Group ID and not the group name!" } - } - } - }, - "description": "Custom properties for the platform of the landing zone. The values depend on the platform type. " - }, - "quotas": { - "type": "array", - "description": "List of default quotas applied via this landing zone. Quotas define resource limits that will be applied to tenants using this landing zone. Tenants can afterwards request different quotas if needed. The available quota keys depend on the platform type and its quota definitions. For platforms that do not support quotas, this will be an empty array.", - "items": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "value": { - "type": "number", - "description": "The quota value for this landing zone. Must be within the min/max range defined in the platform's quota definition." }, - "key": { - "type": "string", - "description": "The quota key as defined in the platform's quota definitions. Must match a quota definition key from the platform." - } + "description": "one or multiple strings from a list of option, represented as a JSON array" } - } + }, + "description": "The TagValueType of the tag. Must define exactly one of the available types." }, - "automateDeletionApproval": { - "type": "boolean", - "description": "Whether deletion approval is automated for this landing zone." + "sortOrder": { + "type": "number", + "description": "The sort order for this tag when displayed in the UI. meshPanel sorts tags in ascending order.", + "nullable": true }, - "displayName": { + "targetKind": { "type": "string", - "description": "The human-readable display name of the meshLandingZone." + "description": "The kind of meshObject this tag is defined for. At this moment only the following kinds are supported by meshStack: `meshWorkspace, meshProject, meshLandingZone, meshPaymentMethod, meshBuildingBlockDefinition, meshProjectRole, meshPrincipal`" }, "description": { "type": "string", - "description": "The description of the meshLandingZone.", - "nullable": true + "description": "The detailed description of the tag." }, - "automateDeletionReplication": { + "mandatory": { "type": "boolean", - "description": "Whether deletion replication is automated for this landing zone." - }, - "platformRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshPlatform\"" - }, - "uuid": { - "type": "string", - "description": "The UUID of the platform instance." - } - }, - "description": "Reference to the platform instance this landing zone belongs to." - }, - "infoLink": { - "type": "string", - "description": "An optional link to describe more details about the landing zone", + "description": "Indicates whether the tag is mandatory.", "nullable": true - } - }, - "description": "All fields in this section describe the meshLandingZone." - }, - "status": { - "required": [ - "disabled", - "restricted" - ], - "type": "object", - "properties": { - "restricted": { - "type": "boolean", - "description": "If true, users will be unable to select this landing zone in meshPanel. Only Platform teams can create tenants using restricted landing zones with the meshObject API." }, - "disabled": { - "type": "boolean", - "description": "Whether the landing zone is disabled." + "key": { + "type": "string", + "description": "The key of the tag. This key must be unique for all tags defined for the same `targetKind`." } }, - "description": "Current status of the meshLandingZone." + "description": "Specification for the meshTagDefinition." } } }, - "meshLocation-List": { - "title": "meshLocation-List", + "meshEventLogList": { + "title": "meshEventLogList", "required": [ "_embedded", "_links", @@ -19790,13 +18358,13 @@ }, "_embedded": { "required": [ - "meshLocations" + "meshEventLogs" ], "type": "object", "properties": { - "meshLocations": { + "meshEventLogs": { "type": "array", - "description": "List of meshLocations.", + "description": "List of meshEventLogs.", "items": { "required": [ "_links", @@ -19809,64 +18377,90 @@ "properties": { "metadata": { "required": [ - "name" + "createdAt", + "uuid" ], "type": "object", "properties": { - "name": { + "createdAt": { "type": "string", - "description": "The identifier that uniquely identifies the meshLocation." + "description": "The timestamp when this event log was created (ISO-8601 format)." }, "uuid": { "type": "string", - "description": "The UUID that uniquely identifies the meshLocation. This is a common attribute for all meshObjects, but in case of a meshLocation it is not used for referencing the location. Instead the name (identifier) is used.", - "nullable": true + "description": "The UUID that uniquely identifies this event log." } }, - "description": "Contains the identifiers for the meshLocation." + "description": "Contains metadata about the event log, including its UUID and creation timestamp." }, "apiVersion": { "type": "string", - "description": "Version of meshLocation datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshEventLog datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", - "description": "Available links on a meshLocation." + "description": "Available links on a meshEventLog." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLocation' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshEventLog' for this endpoint." }, "spec": { "required": [ - "displayName" + "author", + "content", + "description", + "eventType", + "title" ], "type": "object", "properties": { - "displayName": { - "type": "string", - "description": "The display name of the meshLocation shown in the UI." - }, - "description": { - "type": "string", - "description": "An optional description of the meshLocation.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshLocation configuration." - }, - "status": { - "required": [ - "isPublic" - ], - "type": "object", - "properties": { - "isPublic": { - "type": "boolean", - "description": "Indicates whether the location has any public platform instances associated with it." + "author": { + "required": [ + "authorType", + "identifier" + ], + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "The identifier of the author who triggered this event. Depending on the `authorType`, this is:\n* ApiKey: The Key ID (UUID) of the ApiKey\n* ApiUser: The username of the ApiUser\n* System: Always `system` (only a single System author exists)\n* Unknown: Usually the username of a user that has been deleted\n* User: The `uuid` of the User" + }, + "authorType": { + "type": "string", + "description": "The type of author who triggered this event. Possible values: ApiKey, ApiUser, System, Unknown, User." + } + }, + "description": "Information about the author who triggered this event." + }, + "description": { + "type": "string", + "description": "A detailed description of the event." + }, + "previousContent": { + "type": "object", + "description": "The previous content/state before this event occurred, represented as a JSON object. Only present for events of type `Changed`.", + "nullable": true + }, + "workspaceRef": { + "type": "object", + "description": "Reference to the workspace this event log is associated with. May be null for system-wide events.", + "nullable": true + }, + "eventType": { + "type": "string", + "description": "The type of event. Possible values: Added, Approved, Cancelled, Changed, Created, Deleted, Rejected, Removed, Requested." + }, + "title": { + "type": "string", + "description": "A brief title describing the event." + }, + "content": { + "type": "object", + "description": "The current content/state associated with this event, represented as a JSON object. The structure varies depending on the event type." } }, - "description": "The current status of the meshLocation." + "description": "All fields in this section describe the event log." } } } @@ -19880,7 +18474,7 @@ } } }, - "api-meshobjects-meshprojects-600031310": { + "api-meshobjects-meshpaymentmethods1366945563": { "required": [ "apiVersion", "kind", @@ -19898,217 +18492,333 @@ "properties": { "name": { "type": "string", - "description": "The identifier that should be unique within a workspace" + "description": "The paymentMethodIdentifier as 'name'." }, "ownedByWorkspace": { "type": "string", - "description": "The identifier of the workspace that the project should belong to." + "description": "The workspaceIdentifier as 'ownedByWorkspace'." } }, - "description": "Fixed fields that help to identify the meshProject." + "description": "Always contains the 'name' and (optional) 'ownedByWorkspace' to uniquely identify the meshPaymentMethod." }, "apiVersion": { "type": "string", - "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshPaymentMethod datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPaymentMethod' for this endpoint." }, "spec": { "required": [ - "displayName", - "tags" + "displayName" ], "type": "object", "properties": { - "substitutePaymentMethodIdentifier": { - "type": "string", - "description": "The substitute payment method of the project.", + "amount": { + "type": "number", + "description": "The amount of the meshPaymentMethod.", "nullable": true }, - "paymentMethodIdentifier": { + "displayName": { "type": "string", - "description": "The payment method of the project.", - "nullable": true + "description": "The display name of the meshPaymentMethod as it is shown in meshPanel." }, - "displayName": { + "expirationDate": { "type": "string", - "description": "The display name of the project as it is shown in meshPanel." + "description": "The expiration date (yyyy-MM-dd) of the meshPaymentMethod. The date is considered as UTC.", + "nullable": true }, "tags": { "type": "object", - "description": "Key/Value pairs of tags set on the project. Keep in mind, that values are an array." + "description": "Key/Value pairs of tags set on the meshPaymentMethod. Keep in mind, that values are an array.", + "nullable": true } }, - "description": "All fields in this section describe the project." + "description": "All fields in this section describe the meshPaymentMethod." } } }, - "api-meshobjects-meshintegrations-743765211": { + "meshTenantPostV4": { + "title": "meshTenantPostV4", "required": [ + "_links", "apiVersion", "kind", "metadata", - "spec" + "spec", + "status" ], "type": "object", "properties": { "metadata": { "required": [ + "ownedByProject", "ownedByWorkspace" ], "type": "object", "properties": { + "ownedByProject": { + "type": "string", + "description": "The identifier of the meshProject the meshTenant belongs to." + }, + "markedForDeletionOn": { + "type": "string", + "description": "If the meshTenant has been submitted for deletion by a Workspace Manager, the date is represented here (e.g. `2020-12-22T09:37:43Z)`. Otherwise this field is missing.", + "nullable": true + }, + "deletedOn": { + "type": "string", + "description": "If the meshTenant was deleted successfully in the cloud platform, the date is represented here (e.g. `2020-12-22T10:12:25Z)`. Otherwise this field is missing.", + "nullable": true + }, + "createdOn": { + "type": "string", + "description": "The creation date of the meshTenant.", + "nullable": true + }, + "uuid": { + "type": "string", + "description": "The UUID of the meshTenant. It must be used to reference a meshTenant.", + "nullable": true + }, "ownedByWorkspace": { "type": "string", - "description": "The workspace identifier that owns this integration." + "description": "The identifier of the meshWorkspace the meshTenant belongs to." } }, - "description": "Contains identifiers and ownership information for the integration." + "description": "Contains common meshObject data." }, "apiVersion": { "type": "string", - "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshTenant datatype. Matches the version provided in the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Currently only contains the self link." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." }, "spec": { "required": [ - "config", - "displayName", - "runnerRef" + "landingZoneIdentifier", + "platformIdentifier", + "quotas" ], "type": "object", "properties": { - "displayName": { + "quotas": { + "type": "array", + "description": "The set of applied Tenant Quotas. They can be set individually per tenant. By default the Landing Zone quotas are applied to new meshTenants.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "platformTenantId": { "type": "string", - "description": "The display name of the integration." + "description": "The platform tenant id related to this meshTenant. It will only be set if the tenant was either imported via meshObject API with a platformTenantId or if at least one replication run was executed that resulted in the creation of a platform tenant. +\n*Note:* This does not mean the whole replication must have been successful. Some steps like role assignments on this tenant might be still in progress.", + "nullable": true }, - "runnerRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshBuildingBlockRunner\"." - }, - "uuid": { - "type": "string", - "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." - } - }, - "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + "landingZoneIdentifier": { + "type": "string", + "description": "The identifier of the Landing Zone of this meshTenant. This field will be empty if the meshTenant has no Landing Zone." }, - "config": { - "required": [ - "type" - ], + "platformIdentifier": { + "type": "string", + "description": "The identifier of the related platform instance." + } + }, + "description": "All fields in this section describe the meshTenant." + }, + "status": { + "required": [ + "platformTypeIdentifier", + "tags", + "tenantName" + ], + "type": "object", + "properties": { + "platformWorkspaceIdentifier": { + "type": "string", + "description": "Some platforms like Cloud Foundry create a representation of a workspace. The identifier of this workspace representation is stored here. This field is not provided or null if the platform does not support this feature.", + "nullable": true + }, + "tenantName": { + "type": "string", + "description": "The full name of this tenant, a concatenation of the workspace identifier, project identifier and platform identifier." + }, + "tags": { "type": "object", - "properties": { - "github": { - "required": [ - "appId", - "appPrivateKey", - "baseUrl", - "owner" - ], - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The GitHub organization or user that owns the repositories." - }, - "baseUrl": { - "type": "string", - "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." - }, - "appPrivateKey": { - "type": "string", - "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." - }, - "appId": { - "type": "string", - "description": "The GitHub App ID for authentication." - } - }, - "description": "GitHub-specific integration configuration." - }, - "azuredevops": { - "required": [ - "baseUrl", - "organization", - "personalAccessToken" - ], - "type": "object", - "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." - }, - "organization": { - "type": "string", - "description": "The Azure DevOps organization name." - }, - "personalAccessToken": { - "type": "string", - "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." - } - }, - "description": "Azure DevOps-specific integration configuration." - }, - "gitlab": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." - } - }, - "description": "GitLab-specific integration configuration." - }, - "type": { - "type": "string", - "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab'." - } - }, - "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." + "description": "The tags assigned to this meshTenant originating from meshWorkspace, Payment Method and meshProject. Keep in mind, that values are an array." + }, + "platformTypeIdentifier": { + "type": "string", + "description": "The identifier of the related platform type." } }, - "description": "All fields in this section describe the integration configuration." + "description": "All fields in this section represent the current status of the tenant and can change over time." } } }, - "meshProjectListV2": { - "title": "meshProjectListV2", + "meshBuildingBlockPost": { + "title": "meshBuildingBlockPost", "required": [ - "_embedded", "_links", - "page" + "apiVersion", + "kind", + "metadata", + "spec", + "status" ], "type": "object", "properties": { + "metadata": { + "required": [ + "createdOn", + "definitionUuid", + "definitionVersion", + "forcePurge", + "tenantIdentifier", + "uuid" + ], + "type": "object", + "properties": { + "markedForDeletionOn": { + "type": "string", + "description": "If the Building Block has been marked for deletion, the date when a user requested the deletion is provided via this field. e.g. `2020-12-22T09:37:43Z`", + "nullable": true + }, + "forcePurge": { + "type": "boolean", + "description": "Set to true, if an operator explicitly requested this Building Block to be purged." + }, + "definitionVersion": { + "type": "number", + "description": "The version number of the Building Block Definition this Building Block is based on." + }, + "markedForDeletionBy": { + "type": "string", + "description": "If the Building Block has already been deleted, the username of the user who triggered the deletion is provided here.", + "nullable": true + }, + "createdOn": { + "type": "string", + "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." + }, + "uuid": { + "type": "string", + "description": "The UUID to uniquely identify the Building Block." + }, + "definitionUuid": { + "type": "string", + "description": "The UUID of the Building Block Definition this Building Block is based on." + }, + "tenantIdentifier": { + "type": "string", + "description": "The full identifier of the tenant, this Building Block is created in." + } + }, + "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." + }, + "apiVersion": { + "type": "string", + "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." + }, "_links": { "type": "object", - "description": "Currently only contains the self link and pagination links." + "description": "Available links on a Building Block." }, - "_embedded": { + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { "required": [ - "meshProjects" + "displayName", + "inputs", + "parentBuildingBlocks" ], "type": "object", "properties": { - "meshProjects": { + "parentBuildingBlocks": { "type": "array", - "description": "List of meshProjects.", + "description": "List of inputs, which are set on the Building Block.", + "items": { + "required": [ + "buildingBlockUuid", + "definitionUuid" + ], + "type": "object", + "properties": { + "buildingBlockUuid": { + "type": "string", + "description": "The UUID of the parent Building Block." + }, + "definitionUuid": { + "type": "string", + "description": "The UUID of the Building Block Definition of the parent Building Block." + } + } + } + }, + "inputs": { + "type": "array", + "description": "List of inputs, which are set on the Building Block.", + "items": { + "required": [ + "key", + "value", + "valueType" + ], + "type": "object", + "properties": { + "valueType": { + "type": "string", + "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." + }, + "value": { + "type": "string", + "description": "The value, which is set on this input." + }, + "key": { + "type": "string", + "description": "The key of the input as set on the related Building Block Definition." + } + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the Building Block as it is shown in meshPanel." + } + }, + "description": "All fields in this section describe the Building Block." + }, + "status": { + "required": [ + "outputs", + "status" + ], + "type": "object", + "properties": { + "outputs": { + "type": "array", + "description": "List of outputs, which are set on the Building Block. Empty, just after creation.", "items": { "oneOf": [ { @@ -20125,18 +18835,20 @@ } ] } + }, + "status": { + "type": "string", + "description": "The status of the Building Block. One of WAITING_FOR_DEPENDENT_INPUT, WAITING_FOR_OPERATOR_INPUT, WAITING_FOR_USER_INPUT, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ABORTED." } }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." + "description": "All fields in this section describe the current status of the Building Block." } } }, - "api-meshobjects-meshusers-username-179515684": { + "meshUserV2": { + "title": "meshUserV2", "required": [ + "_links", "apiVersion", "kind", "metadata", @@ -20153,6 +18865,11 @@ "name": { "type": "string", "description": "The username as 'name' to uniquely identify the meshUser." + }, + "uuid": { + "type": "string", + "description": "A unique identifier (UUID) for the meshUser.", + "nullable": true } }, "description": "Always contains the 'name' to uniquely identify the meshUser." @@ -20161,6 +18878,10 @@ "type": "string", "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." }, + "_links": { + "type": "object", + "description": "Available links on a meshUser." + }, "kind": { "type": "string", "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." @@ -20200,398 +18921,528 @@ } } }, - "api-login2002944754": { + "meshWorkspaceUserGroup": { + "title": "meshWorkspaceUserGroup", "required": [ - "client_id", - "client_secret", - "grant_type" + "_links", + "apiVersion", + "kind", + "metadata", + "spec" ], "type": "object", "properties": { - "grant_type": { - "type": "string", - "description": "The grant type, which must be 'client_credentials'." + "metadata": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The workspaceUserGroupIdentifier as 'name' to uniquely identify the meshWorkspaceUserGroup." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace that owns this WorkspaceUserGroup." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshWorkspaceUserGroup. It also contains the workspace name that owns this WorkspaceUserGroup." }, - "client_secret": { + "apiVersion": { "type": "string", - "description": "The Key Secret associated with your API key. This secret is used in conjunction with the client_id to securely authenticate your application." + "description": "Version of meshWorkspaceUserGroup datatype. Matches the version part provided within the `Accept` request header." }, - "client_id": { - "type": "string", - "description": "The Key ID assigned to your API key upon creation. This ID is used to authenticate your application." - } - } - }, - "meshPlatform-List-V1": { - "title": "meshPlatform-List-V1", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { "_links": { "type": "object", - "description": "Contains the self link and pagination links (first, last, next, prev)." + "description": "Available links on a meshWorkspaceUserGroup." }, - "_embedded": { + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceUserGroup' for this endpoint." + }, + "spec": { "required": [ - "meshPlatforms" + "displayName", + "members", + "tags" ], "type": "object", "properties": { - "meshPlatforms": { - "type": "array", - "description": "List of meshPlatforms with their configurations. Each platform object has the same structure as documented in the GET single platform response.", - "items": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace", - "uuid" - ], - "type": "object", - "properties": { - "deletedOn": { - "type": "string", - "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", - "nullable": true - }, - "name": { - "type": "string", - "description": "The platform identifier as 'name' to identify the meshPlatform." - }, - "uuid": { - "type": "string", - "description": "The UUID of the meshPlatform." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace that owns this meshPlatform." - } - }, - "description": "Contains metadata to uniquely identify the meshPlatform." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." + "egid": { + "type": "string", + "description": "External Group Identifier, this is an optional field.", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the meshWorkspaceUserGroup as it is shown in meshPanel." + }, + "members": { + "type": "array", + "description": "List of usernames", + "items": { + "oneOf": [ + { + "type": "object" }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." + { + "type": "boolean" }, - "spec": { - "required": [ - "availability", - "config", - "displayName", - "locationRef" - ], - "type": "object", - "properties": { - "documentationUrl": { - "type": "string", - "description": "URL for platform documentation.", - "nullable": true - }, - "endpoint": { - "type": "string", - "description": "The web console URL endpoint of the platform.", - "nullable": true - }, - "locationRef": { - "required": [ - "identifier", - "kind" - ], - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "The identifier of the location." - }, - "kind": { - "type": "string", - "description": "The kind of the referenced location, always 'meshLocation'." - } - }, - "description": "Reference to the location where this platform is situated." - }, - "displayName": { - "type": "string", - "description": "The human-readable display name of the meshPlatform." - }, - "supportUrl": { - "type": "string", - "description": "URL for platform support documentation.", - "nullable": true - }, - "description": { - "type": "string", - "description": "description of the meshPlatform.", - "nullable": true - }, - "availability": { - "required": [ - "marketplaceStatus", - "restriction" - ], - "type": "object", - "properties": { - "restriction": { - "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." - }, - "marketplaceStatus": { - "type": "string", - "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." - }, - "restrictedToWorkspaces": { - "type": "array", - "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Availability configuration for the meshPlatform." - }, - "config": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." - } - }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." - }, - "contributingWorkspaces": { - "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "All fields in this section describe the meshPlatform configuration." + { + "type": "string" }, - "status": { - "type": "object", - "description": "Current status information of the meshPlatform." + { + "type": "number" } - } + ] } + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshWorkspaceUserGroup. Keep in mind, that values are an array." } }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." + "description": "All fields in this section describe the meshWorkspaceUserGroup." } } }, - "meshWorkspaceUserBinding": { - "title": "meshWorkspaceUserBinding", + "meshIntegration-Put-github": { + "title": "meshIntegration-Put-github", "required": [ "_links", "apiVersion", "kind", - "metadata" + "metadata", + "spec" ], "type": "object", "properties": { - "targetRef": { + "metadata": { "required": [ - "displayName", - "name" + "ownedByWorkspace" ], "type": "object", "properties": { - "displayName": { + "createdOn": { "type": "string", - "description": "The name of the workspace the user is assigned to." + "description": "Timestamp when the integration was created. This field is automatically set by the system and cannot be modified.", + "nullable": true }, - "name": { + "uuid": { "type": "string", - "description": "The identifier of the workspace the user is assigned to." - } - } - }, - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { + "description": "The UUID that uniquely identifies the integration across all integrations.", + "nullable": true + }, + "ownedByWorkspace": { "type": "string", - "description": "The meshWorkspaceUserBinding identifier as 'name' to uniquely identify the meshWorkspaceUserBinding." + "description": "The workspace identifier that owns this integration." } }, - "description": "Always contains the 'name' to uniquely identify the meshWorkspaceUserBinding." + "description": "Contains identifiers and ownership information for the integration." }, "apiVersion": { "type": "string", - "description": "Version of meshWorkspaceUserBinding datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", - "description": "Currently only contains the self link." + "description": "Available links on a meshIntegration." }, - "subject": { + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + }, + "spec": { "required": [ - "name" + "config", + "displayName" ], "type": "object", "properties": { - "name": { + "displayName": { "type": "string", - "description": "The username of the referenced user." + "description": "The display name of the integration." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "github": { + "required": [ + "appId", + "appPrivateKey", + "baseUrl", + "owner", + "runnerRef" + ], + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The GitHub organization or user that owns the repositories." + }, + "baseUrl": { + "type": "string", + "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." + }, + "appPrivateKey": { + "type": "string", + "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." + }, + "appId": { + "type": "string", + "description": "The GitHub App ID for authentication." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitHub-specific integration configuration." + }, + "azuredevops": { + "required": [ + "baseUrl", + "organization", + "personalAccessToken", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." + }, + "organization": { + "type": "string", + "description": "The Azure DevOps organization name." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + }, + "personalAccessToken": { + "type": "string", + "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + } + }, + "description": "Azure DevOps-specific integration configuration." + }, + "gitlab": { + "required": [ + "baseUrl", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitLab-specific integration configuration." + }, + "type": { + "type": "string", + "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab', 'metering', 'replicator'." + } + }, + "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab', 'metering', 'replicator') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." } - } - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceUserBinding' for this endpoint." + }, + "description": "All fields in this section describe the integration configuration." }, - "roleRef": { + "status": { "required": [ - "name" + "isBuiltIn" ], "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this user." + "workloadIdentityFederation": { + "required": [ + "issuer", + "subject" + ], + "type": "object", + "properties": { + "gcp": { + "required": [ + "audience" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "GCP Workload Identity Pool audience for token exchange." + } + }, + "description": "Google Cloud Platform specific WIF configuration." + }, + "subject": { + "type": "string", + "description": "OIDC subject claim for Workload Identity Federation. Identifies the workload service account." + }, + "aws": { + "required": [ + "audience", + "thumbprint" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "AWS STS audience for AssumeRoleWithWebIdentity." + }, + "thumbprint": { + "type": "string", + "description": "AWS OIDC provider thumbprint for trust verification." + } + }, + "description": "Amazon Web Services specific WIF configuration." + }, + "issuer": { + "type": "string", + "description": "OIDC issuer URL for Workload Identity Federation." + }, + "azure": { + "required": [ + "audience" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "Azure AD audience for workload identity federation." + } + }, + "description": "Microsoft Azure specific WIF configuration." + } + }, + "description": "Workload Identity Federation (WIF) configuration for this integration. Only present for built-in integrations. Provides OIDC issuer, subject, and cloud provider-specific configuration needed to set up trust relationships for workload identity." + }, + "isBuiltIn": { + "type": "boolean", + "description": "Indicates whether this integration is a built-in system integration." } - } + }, + "description": "Status information for integrations. Always includes the isBuiltIn field in responses. Workload Identity Federation (WIF) information is only present for built-in integrations. This field is read-only and ignored in request bodies." } } }, - "api-meshobjects-meshplatformtypes-identifier-729667817": { + "meshCommunication": { + "title": "meshCommunication", "required": [ + "_links", "apiVersion", "kind", "metadata", - "spec" + "spec", + "status" ], "type": "object", "properties": { "metadata": { "required": [ - "name" + "ownedByWorkspace", + "uuid" ], "type": "object", "properties": { - "name": { + "uuid": { "type": "string", - "description": "The identifier that uniquely identifies the meshPlatformType." + "description": "The UUID to uniquely identify the communication." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace that owns the communication" } }, - "description": "Contains the identifiers for the meshPlatformType." + "description": "Always contains the 'uuid' to uniquely identify the communication. It also contains additional meta information." }, "apiVersion": { "type": "string", - "description": "Version of meshPlatformType datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshCommunication datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Currently only contains the self link." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatformType' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshCommunication' for this endpoint." }, "spec": { "required": [ - "category", - "displayName", - "icon" + "communicationDefinitionRef", + "targetMeshObjectRef" ], "type": "object", "properties": { - "displayName": { - "type": "string", - "description": "The display name of the meshPlatformType shown in the UI." - }, - "icon": { - "type": "string", - "description": "The icon used to display the platform type in the UI. This must be provided as a base64 encoded data image. Size should be kept small to ensure fast loading times and efficient storage." - }, - "defaultEndpoint": { - "type": "string", - "description": "The default endpoint URL for the platform type. This will be used as a default value when creating platform instances. The default endpoint should be a link to a web portal of the cloud platform for example.", - "nullable": true + "communicationDefinitionRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshCommunicationDefinition\"" + }, + "uuid": { + "type": "string", + "description": "UUID of the associated communication definition." + } + }, + "description": "Reference to the associated communication definition." }, - "category": { - "type": "string", - "description": "The platform category. For custom platform types, this is always 'CUSTOM'. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." + "targetMeshObjectRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "What kind of meshObject is targeted (e.g. meshWorkspace)" + }, + "name": { + "type": "string", + "description": "An name or identifier to uniquely identify the targeted meshObject" + } + }, + "description": "Describes the meshObject that is targeted by this communication" } }, - "description": "All fields in this section describe the meshPlatformType configuration." + "description": "All fields in this section describe the communication." }, "status": { "required": [ - "lifecycleState" + "meshCommunicationDefinition", + "resolutionStatus" ], "type": "object", "properties": { - "lifecycleState": { - "type": "string", - "description": "The lifecycle state of the platform type. Can be 'ACTIVE' or 'DEACTIVATED'. Deactivated platform types cannot be used to create new platform instances." - } - }, - "description": "The current status of the meshPlatformType." - } - } - }, - "api-meshobjects-meshworkspacebindings-groupbindings-439969197": { + "meshCommunicationDefinition": { + "required": [ + "communicationType", + "dueDate", + "title", + "uuid" + ], + "type": "object", + "properties": { + "dueDate": { + "type": "string", + "description": "The due date of the meshCommunicationDefinition in ISO 8601 format (YYYY-MM-DD). Only present if a due date was specified for the communication definition." + }, + "communicationType": { + "type": "string", + "description": "Either NOTIFICATION or ACTION_REQUIRED." + }, + "title": { + "type": "string", + "description": "The title of the meshCommunicationDefinition." + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the meshCommunicationDefinition." + } + }, + "description": "the communication definition associated to this communication." + }, + "resolutionStatus": { + "type": "string", + "description": "only present if the associated communication definition is of type ACTION_REQUIRED. Either OPEN or RESOLVED." + } + }, + "description": "contains the current status as well as the associated meshCommunicationDefinition" + } + } + }, + "meshProjectUserBindingCreateV3": { + "title": "meshProjectUserBindingCreateV3", "required": [ + "_links", "apiVersion", "kind" ], "type": "object", "properties": { "targetRef": { + "required": [ + "displayName", + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the project the user was assigned to." + }, + "name": { + "type": "string", + "description": "The identifier of the project the user was assigned to." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace which contains the project." + } + } + }, + "metadata": { "required": [ "name" ], @@ -20599,7 +19450,120 @@ "properties": { "name": { "type": "string", - "description": "The identifier of the workspace the group should get assigned to." + "description": "Name of this binding which later can be used to refer to it" + } + } + }, + "apiVersion": { + "type": "string", + "description": "Version of this object" + }, + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "kind": { + "type": "string", + "description": "Type of the returned meshObject" + }, + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username of the referenced user." + } + } + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this user." + } + } + } + } + }, + "meshObjectsRootV1": { + "title": "meshObjectsRootV1", + "required": [ + "_links" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "All available meshObject Links for the authenticated user." + } + } + }, + "apiKeyLoginResponse": { + "title": "apiKeyLoginResponse", + "required": [ + "access_token", + "expires_in", + "not-before-policy", + "refresh_expires_in", + "scope", + "token_type" + ], + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "The access token issued by the authorization server. This token must be included in the Authorization header as a Bearer token when making authenticated API requests." + }, + "refresh_expires_in": { + "type": "number", + "description": "The number of seconds until the refresh token expires. After this time, a new login is required." + }, + "scope": { + "type": "string", + "description": "The scopes granted to the access token, indicating the permissions associated with the token." + }, + "not-before-policy": { + "type": "number", + "description": "The timestamp (in seconds since epoch) before which the token is not valid." + }, + "token_type": { + "type": "string", + "description": "The type of the token issued. Typically 'Bearer'." + }, + "expires_in": { + "type": "number", + "description": "The number of seconds until the access token expires and must be refreshed." + } + } + }, + "api-meshobjects-meshprojectbindings-groupbindings1480218446": { + "required": [ + "apiVersion", + "kind" + ], + "type": "object", + "properties": { + "targetRef": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier of the project the group should get assigned to." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace which contains the project." } } }, @@ -20631,7 +19595,7 @@ "properties": { "name": { "type": "string", - "description": "The identifier of the referenced workspace user group." + "description": "The identifier of the referenced group." } } }, @@ -20643,89 +19607,127 @@ "properties": { "name": { "type": "string", - "description": "The name of the role for this workspace user group." + "description": "The name of the referenced role for this group." } } } } }, - "api-meshobjects-meshcommunications-1284413466": { + "api-meshobjects-meshlocations-identifier-860925225": { "required": [ "apiVersion", "kind", + "metadata", "spec" ], "type": "object", "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier that uniquely identifies the meshLocation." + } + }, + "description": "Contains the identifiers for the meshLocation." + }, "apiVersion": { "type": "string", - "description": "Version of Communication datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshLocation datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshCommunication' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLocation' for this endpoint." }, "spec": { "required": [ - "communicationDefinitionRef", - "targetMeshObjectRef" + "displayName" ], "type": "object", "properties": { - "communicationDefinitionRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshCommunicationDefinition\"" - }, - "uuid": { - "type": "string", - "description": "The UUID of the communication definition associated with this communication." - } - }, - "description": "Reference to the associated communication definition." + "displayName": { + "type": "string", + "description": "The display name of the meshLocation shown in the UI." }, - "targetMeshObjectRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The type of mesh object being targeted. Supported values are: `meshWorkspace`, `meshTenant`, and `meshBuildingBlock`." - }, - "name": { - "type": "string", - "description": "An identifier or UUID that uniquely identifies the referenced meshObject. The required format depends on the `kind` of the target:\nFor kind `meshWorkspace`, use the workspace identifier.\nFor kind `meshTenant`, use the tenant UUID.\nFor kind `meshBuildingBlock`, use the building block UUID." - } - }, - "description": "describes which meshObject is targeted." + "description": { + "type": "string", + "description": "An optional description of the meshLocation.", + "nullable": true } }, - "description": "All fields in this section describe the Communication." + "description": "All fields in this section describe the meshLocation configuration." + } + } + }, + "meshProjectRoleListV1": { + "title": "meshProjectRoleListV1", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshProjectRoles" + ], + "type": "object", + "properties": { + "meshProjectRoles": { + "type": "array", + "description": "List of meshProjectRoles.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." } } }, - "api-meshobjects-meshplatforms-1788285441": { + "meshPlatform-Get-V2-aks": { + "title": "meshPlatform-Get-V2-aks", "required": [ + "_links", "apiVersion", "kind", "metadata", - "spec" + "spec", + "status" ], "type": "object", "properties": { "metadata": { "required": [ "name", - "ownedByWorkspace" + "ownedByWorkspace", + "uuid" ], "type": "object", "properties": { @@ -20738,6 +19740,10 @@ "type": "string", "description": "The platform identifier as 'name' to identify the meshPlatform." }, + "uuid": { + "type": "string", + "description": "The UUID of the meshPlatform." + }, "ownedByWorkspace": { "type": "string", "description": "The identifier of the workspace that owns this meshPlatform." @@ -20749,6 +19755,10 @@ "type": "string", "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." }, + "_links": { + "type": "object", + "description": "Available links on this meshObject." + }, "kind": { "type": "string", "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." @@ -20758,7 +19768,8 @@ "availability", "config", "displayName", - "locationRef" + "locationRef", + "quotaDefinitions" ], "type": "object", "properties": { @@ -20767,6 +19778,52 @@ "description": "URL for platform documentation.", "nullable": true }, + "quotaDefinitions": { + "type": "array", + "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For platforms that don't support it yet, you have to provide an empty array. If empty list is provided, all existing quota definitions are removed.", + "items": { + "required": [ + "autoApprovalThreshold", + "description", + "label", + "maxValue", + "minValue", + "quotaKey" + ], + "type": "object", + "properties": { + "quotaKey": { + "type": "string", + "description": "The key of the quota as it is required by the cloud platform." + }, + "minValue": { + "type": "number", + "description": "Minimum allowed value for this quota." + }, + "unit": { + "type": "string", + "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", + "nullable": true + }, + "autoApprovalThreshold": { + "type": "number", + "description": "Threshold below which quota requests are automatically approved." + }, + "maxValue": { + "type": "number", + "description": "Maximum allowed value for this quota." + }, + "description": { + "type": "string", + "description": "Detailed description of what this quota controls." + }, + "label": { + "type": "string", + "description": "Human-readable label for the quota." + } + } + } + }, "endpoint": { "type": "string", "description": "The web console URL endpoint of the platform.", @@ -20774,18 +19831,18 @@ }, "locationRef": { "required": [ - "identifier", - "kind" + "kind", + "name" ], "type": "object", "properties": { - "identifier": { - "type": "string", - "description": "The identifier of the location." - }, "kind": { "type": "string", "description": "The kind of the referenced location, always 'meshLocation'." + }, + "name": { + "type": "string", + "description": "The identifier of the location." } }, "description": "Reference to the location where this platform is situated." @@ -20806,18 +19863,18 @@ }, "availability": { "required": [ - "marketplaceStatus", + "publicationState", "restriction" ], "type": "object", "properties": { - "restriction": { + "publicationState": { "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." + "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." }, - "marketplaceStatus": { + "restriction": { "type": "string", - "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." + "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." }, "restrictedToWorkspaces": { "type": "array", @@ -20843,6 +19900,11 @@ }, "description": "Availability configuration for the meshPlatform." }, + "readme": { + "type": "string", + "description": "README about the meshPlatform in markdown format", + "nullable": true + }, "config": { "required": [ "type" @@ -20873,8 +19935,20 @@ "type": "object", "properties": { "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, "description": "Client configuration for Kubernetes" @@ -20886,13 +19960,64 @@ "type": "string", "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" }, + "metering": { + "required": [ + "clientConfig", + "processing" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client config for metering" + } + }, + "description": "Replication configuration for Kubernetes (optional, but required for metering)" + }, "disableSslValidation": { "type": "boolean", "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", "nullable": true } }, - "description": "Configuration for Kubernetes" + "description": "Kubernetes configuration, if applicable." }, "gcp": { "type": "object", @@ -20903,16 +20028,46 @@ "billingAccountId", "customerId", "domain", + "gcpRoleMappings", "groupNamePattern", "projectIdPattern", "projectNamePattern", - "roleMappings", - "serviceAccountConfig", + "serviceAccount", "skipUserGroupPermissionCleanup", "userLookupStrategy" ], "type": "object", "properties": { + "gcpRoleMappings": { + "type": "array", + "description": "Role mappings for GCP with project role references", + "items": { + "required": [ + "gcpRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "gcpRole": { + "type": "string", + "description": "GCP role to assign" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, "userLookupStrategy": { "type": "string", "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" @@ -20964,23 +20119,26 @@ "type": "string", "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." }, - "serviceAccountConfig": { + "customerId": { + "type": "string", + "description": "A Google Customer ID. It typically starts with a 'C'." + }, + "allowHierarchicalFolderAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + }, + "billingAccountId": { + "type": "string", + "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], "type": "object", "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." - } - }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" - }, - "serviceAccountWorkloadIdentityConfig": { + "workloadIdentity": { "required": [ "audience", "serviceAccountEmail" @@ -20996,45 +20154,30 @@ "description": "The audience associated with your workload identity pool provider." } }, - "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" - } - }, - "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "customerId": { - "type": "string", - "description": "A Google Customer ID. It typically starts with a 'C'." - }, - "roleMappings": { - "required": [ - "admin", - "member", - "reader" - ], - "type": "object", - "properties": { - "reader": { - "type": "string", - "description": "Role mapping for reader users" + "description": "Service account workload identity configuration (required when type is 'workloadIdentity')" }, - "member": { - "type": "string", - "description": "Role mapping for member users" + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." }, - "admin": { + "type": { "type": "string", - "description": "Role mapping for admin users" + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." } }, - "description": "Role mappings for GCP" - }, - "allowHierarchicalFolderAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." - }, - "billingAccountId": { - "type": "string", - "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + "description": "Configuration of the service account used for GCP API access" }, "skipUserGroupPermissionCleanup": { "type": "boolean", @@ -21046,9 +20189,108 @@ } }, "description": "Replication configuration for GCP (optional, but required for replication)" + }, + "metering": { + "required": [ + "bigqueryTable", + "partitionTimeColumn", + "processing", + "serviceAccount" + ], + "type": "object", + "properties": { + "partitionTimeColumn": { + "type": "string", + "description": "Column name for partitioning time-based data" + }, + "additionalFilter": { + "type": "string", + "description": "Additional SQL filter for billing data (optional)", + "nullable": true + }, + "bigqueryTableForCarbonFootprint": { + "type": "string", + "description": "BigQuery table containing carbon footprint data (optional)", + "nullable": true + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "carbonFootprintDataCollectionStartMonth": { + "type": "string", + "description": "Start month for carbon footprint data collection (optional)", + "nullable": true + }, + "bigqueryTable": { + "type": "string", + "description": "BigQuery table containing billing data export" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account for metering, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider for metering access." + } + }, + "description": "Service account workload identity configuration for metering (required when type is 'workloadIdentity')" + }, + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for metering service account. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Configuration of the service account used for GCP metering API access" + } + }, + "description": "Metering configuration for GCP (optional, but required for metering)" } }, - "description": "Configuration for Google Cloud Platform (GCP)" + "description": "GCP configuration, if applicable." }, "azurerg": { "required": [ @@ -21069,16 +20311,16 @@ "properties": { "administrativeUnitId": { "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "description": "Administrative unit ID for group placement", "nullable": true }, "userGroupNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" }, "servicePrincipal": { "required": [ - "authType", + "auth", "clientId", "objectId" ], @@ -21086,23 +20328,44 @@ "properties": { "clientId": { "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." }, "objectId": { "type": "string", "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." } }, - "description": "Service principal configuration for Azure" + "description": "Service principal configuration for replicator access." }, "b2bUserInvitation": { "required": [ @@ -21113,14 +20376,14 @@ "properties": { "redirectUrl": { "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" }, "sendAzureInvitationMail": { "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." + "description": "When true, Azure sends Invitation mails to invited users" } }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + "description": "Optional B2B user invitation configuration" }, "tenantTags": { "required": [ @@ -21152,30 +20415,30 @@ }, "namespacePrefix": { "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + "description": "Prefix for all labels created by meshStack" } }, "description": "Tenant tags configuration" }, "userLookUpStrategy": { "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + "description": "User lookup strategy ('userPrincipalName' or 'email')" }, "subscription": { "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." + "description": "The Subscription that will contain all the created Resource Groups" }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "description": "Preserve user groups and replicated permission after tenant deletion" }, "resourceGroupNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" }, "allowHierarchicalManagementGroupAssignment": { "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "description": "Enable or disable hierarchical management group assignment", "nullable": true } }, @@ -21186,7 +20449,7 @@ "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Configuration for Azure Resource Group" + "description": "Azure Resource Group configuration, if applicable." }, "openshift": { "required": [ @@ -21203,6 +20466,36 @@ ], "type": "object", "properties": { + "openshiftRoleMappings": { + "type": "array", + "description": "Role mappings for GCP with project role references", + "items": { + "required": [ + "openshiftRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "openshiftRole": { + "type": "string", + "description": "OpenShift role to assign" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "identifier of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, "webConsoleUrl": { "type": "string", "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", @@ -21255,28 +20548,60 @@ "type": "boolean", "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." }, - "roleMappings": { + "clientConfig": { "required": [ - "admin", - "member", - "reader" + "accessToken" ], "type": "object", "properties": { - "reader": { - "type": "string", - "description": "Role mapping for reader users" - }, - "member": { - "type": "string", - "description": "Role mapping for member users" + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client configuration for OpenShift" + } + }, + "description": "Replication configuration for OpenShift (optional, but required for replication)" + }, + "baseUrl": { + "type": "string", + "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" + }, + "metering": { + "required": [ + "clientConfig", + "processing" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true }, - "admin": { - "type": "string", - "description": "Role mapping for admin users" + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true } }, - "description": "Role mappings for OpenShift" + "description": "Processing configuration for metering data" }, "clientConfig": { "required": [ @@ -21285,18 +20610,26 @@ "type": "object", "properties": { "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Access token for Kubernetes API authentication. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, - "description": "Client configuration for OpenShift" + "description": "Kubernetes client configuration for metering access" } }, - "description": "Replication configuration for OpenShift (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" + "description": "Metering configuration for OpenShift (optional, but required for metering)" }, "disableSslValidation": { "type": "boolean", @@ -21304,7 +20637,7 @@ "nullable": true } }, - "description": "Configuration for OpenShift" + "description": "Openshift configuration, if applicable." }, "aks": { "required": [ @@ -21337,7 +20670,7 @@ }, "servicePrincipal": { "required": [ - "authType", + "auth", "clientId", "entraTenant", "objectId" @@ -21352,21 +20685,42 @@ "type": "string", "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for the service principal (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of AKS authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." }, "objectId": { "type": "string", "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." } }, - "description": "Service principal configuration for AKS" + "description": "Service principal configuration for replicator EntraID access to manage groups that are used for RBAC in the AKS cluster." }, "redirectUrl": { "type": "string", @@ -21394,8 +20748,20 @@ "description": "Name of the AKS cluster" }, "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the Kubernetes service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." }, "groupNamePattern": { "type": "string", @@ -21408,17 +20774,62 @@ "type": "string", "description": "Base URL of the AKS cluster" }, + "metering": { + "required": [ + "clientConfig" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + } + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Processing configuration for metering data" + } + }, + "description": "Replication configuration for AKS (optional, but required for metering)" + }, "disableSslValidation": { "type": "boolean", "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", "nullable": true } }, - "description": "Configuration for Azure Kubernetes Service (AKS)" - }, - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." + "description": "Azure Kubernetes Service configuration, if applicable." }, "aws": { "required": [ @@ -21507,7 +20918,7 @@ }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later. " }, "automationAccountExternalId": { "type": "string", @@ -21537,6 +20948,7 @@ }, "accessConfig": { "required": [ + "auth", "organizationRootAccountRole" ], "type": "object", @@ -21545,48 +20957,74 @@ "type": "string", "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." - } - }, - "description": "Workload identity configuration (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { + "auth": { "required": [ - "accessKey", - "secretKey" + "type" ], "type": "object", "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for service user" + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" }, - "accessKey": { + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { "type": "string", - "description": "AWS access key for service user" + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." } }, - "description": "Service user configuration (alternative to workloadIdentityConfig)" + "description": "Authentication configuration for AWS access" }, "organizationRootAccountExternalId": { "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role.", + "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role. ", "nullable": true } }, - "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." + "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys." }, "awsSso": { "required": [ "arn", + "awsRoleMappings", "groupNamePattern", "scimEndpoint", "signInUrl", @@ -21595,84 +21033,24 @@ "type": "object", "properties": { "ssoAccessToken": { - "type": "string", - "description": "The AWS IAM Identity Center SCIM Access Token that was generated via the Automatic provisioning config in AWS IAM Identity Center." - }, - "signInUrl": { - "type": "string", - "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." - }, - "roleMappings": { "type": "object", "properties": { - "member": { - "required": [ - "awsRoleName", - "permissionSetArns" - ], - "type": "object", - "properties": { - "awsRoleName": { - "type": "string", - "description": "AWS role name for member role mapping" - }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for member role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true }, - "admin": { - "required": [ - "awsRoleName", - "permissionSetArns" - ], - "type": "object", - "properties": { - "awsRoleName": { - "type": "string", - "description": "AWS role name for admin role mapping" - }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for admin role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true } }, - "description": "Role mappings for AWS SSO" + "description": "The AWS IAM Identity Center SCIM Access Token. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "signInUrl": { + "type": "string", + "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." }, "scimEndpoint": { "type": "string", @@ -21682,35 +21060,206 @@ "type": "string", "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." }, - "groupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." - } - }, - "description": "AWS SSO configuration" - } - }, - "description": "Replication configuration for AWS (optional, but required for replication)" - }, - "region": { - "type": "string", - "description": "AWS region" - } - }, - "description": "Configuration for AWS" - }, - "azure": { - "required": [ - "entraTenant" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "blueprintLocation", - "blueprintServicePrincipal", - "groupNamePattern", - "roleMappings", + "awsRoleMappings": { + "type": "array", + "description": "Roles can be mapped from the meshRole to the AWS role.", + "items": { + "required": [ + "permissionSetArns", + "projectRoleRef" + ], + "type": "object", + "properties": { + "projectRoleRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Must always be set to `meshProjectRole`" + }, + "name": { + "type": "string", + "description": "The identifier of the meshProjectRole, e.g. `admin` or `user` or `reader`" + } + }, + "description": "A reference to an existing meshProjectRole" + }, + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + } + }, + "groupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." + } + }, + "description": "AWS SSO configuration" + } + }, + "description": "Replication configuration for AWS (optional, but required for replication)" + }, + "metering": { + "required": [ + "accessConfig", + "filter", + "processing", + "reservedInstanceFairChargeback", + "savingsPlanFairChargeback" + ], + "type": "object", + "properties": { + "filter": { + "type": "string", + "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "accessConfig": { + "required": [ + "auth", + "organizationRootAccountRole" + ], + "type": "object", + "properties": { + "organizationRootAccountRole": { + "type": "string", + "description": "ARN of the Management Account Role for metering access." + }, + "auth": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role for metering access via workload identity federation" + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" + }, + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for metering service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for metering service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { + "type": "string", + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Authentication configuration for AWS metering access" + }, + "organizationRootAccountExternalId": { + "type": "string", + "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", + "nullable": true + } + }, + "description": "AWS access configuration for metering" + }, + "savingsPlanFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for savings plans" + }, + "reservedInstanceFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for reserved instances" + } + }, + "description": "Metering configuration for AWS (optional, but required for metering)" + }, + "region": { + "type": "string", + "description": "AWS region" + } + }, + "description": "AWS configuration, if applicable." + }, + "type": { + "type": "string", + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." + }, + "azure": { + "required": [ + "entraTenant" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "azureRoleMappings", + "blueprintLocation", + "blueprintServicePrincipal", + "groupNamePattern", "servicePrincipal", "skipUserGroupPermissionCleanup", "subscriptionNamePattern", @@ -21720,7 +21269,7 @@ "properties": { "servicePrincipal": { "required": [ - "authType", + "auth", "clientId", "objectId" ], @@ -21728,23 +21277,44 @@ "properties": { "clientId": { "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." }, "objectId": { "type": "string", "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." } }, - "description": "Service principal configuration for Azure" + "description": "Service principal configuration for replicator access." }, "tenantTags": { "required": [ @@ -21789,10 +21359,6 @@ "type": "string", "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." }, - "roleMappings": { - "type": "object", - "description": "Role mappings for Azure" - }, "skipUserGroupPermissionCleanup": { "type": "boolean", "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." @@ -21802,6 +21368,50 @@ "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", "nullable": true }, + "azureRoleMappings": { + "type": "array", + "description": "Role mappings for Azure with project role references", + "items": { + "required": [ + "azureRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "azureRole": { + "required": [ + "alias", + "id" + ], + "type": "object", + "properties": { + "alias": { + "type": "string", + "description": "Alias for the Azure role" + }, + "id": { + "type": "string", + "description": "ID of the Azure role" + } + }, + "description": "Azure role" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, "b2bUserInvitation": { "required": [ "redirectUrl", @@ -21851,7 +21461,7 @@ "properties": { "sourceServicePrincipal": { "required": [ - "authType", + "auth", "clientId" ], "type": "object", @@ -21860,14 +21470,35 @@ "type": "string", "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Must be set if and only if `authType` is `CREDENTIALS`. A valid secret for accessing the application. In Azure Portal, this can be configured on the \"App Registration\" under Certificates & secrets. https://docs.meshcloud.io/operations/security-faq/#how-does-meshstack-securely-handle-my-cloud-platform-credentials[How is this information secured?]", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Must be one of `CREDENTIALS` or `WORKLOAD_IDENTITY`. Workload Identity Federation is the one that we recommend as it enables the most secure approach to provide access to your Azure tenant without using long lived credentials. Credential Authentication is an alternative approach where you have to provide a clientSecret manually to meshStack and meshStack stores it encrypted." + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure Graph API authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the source service principal for replicator access to a customer agreement. When using workload identity (type='workloadIdentity'), no additional configuration details are required." } }, "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." @@ -21963,6 +21594,81 @@ "entraTenant": { "type": "string", "description": "Azure Active Directory (Entra ID) tenant" + }, + "metering": { + "required": [ + "processing", + "servicePrincipal" + ], + "type": "object", + "properties": { + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "Client ID of the service principal for metering" + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "Object ID of the service principal for metering" + } + }, + "description": "Service principal configuration for metering access" + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + } + }, + "description": "Metering configuration for Azure (optional, but required for metering)" } }, "description": "Configuration for Azure" @@ -21993,145 +21699,16 @@ } }, "description": "All fields in this section describe the meshPlatform configuration." - } - } - }, - "meshUserV2Put": { - "title": "meshUserV2Put", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The username as 'name' to uniquely identify the meshUser." - }, - "uuid": { - "type": "string", - "description": "A unique identifier (UUID) for the meshUser.", - "nullable": true - } - }, - "description": "Always contains the 'name' to uniquely identify the meshUser." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshUser." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." - }, - "spec": { - "required": [ - "email", - "firstName", - "lastName" - ], - "type": "object", - "properties": { - "lastName": { - "type": "string", - "description": "The last name of the meshUser." - }, - "firstName": { - "type": "string", - "description": "The first name of the meshUser." - }, - "euid": { - "type": "string", - "description": "External User ID which is used to lookup the user in the cloud platforms.", - "nullable": true - }, - "email": { - "type": "string", - "description": "The email of the meshUser." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshUser. Keep in mind, that values are an array.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshUser." - } - } - }, - "meshPaymentMethodV2Put": { - "title": "meshPaymentMethodV2Put", - "type": "object" - }, - "meshWorkspacePut": { - "title": "meshWorkspacePut", - "type": "object" - }, - "meshPaymentMethodListV2": { - "title": "meshPaymentMethodListV2", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshPaymentMethods" - ], - "type": "object", - "properties": { - "meshPaymentMethods": { - "type": "array", - "description": "List of meshPaymentMethods.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." }, - "page": { + "status": { "type": "object", - "description": "Information about paging." + "description": "Current status information of the meshPlatform." } } }, - "meshCommunicationDefinitionList": { - "title": "meshCommunicationDefinitionList", + "meshWorkspaceGroupBindingList": { + "title": "meshWorkspaceGroupBindingList", "required": [ - "_embedded", "_links", "page" ], @@ -22143,13 +21720,13 @@ }, "_embedded": { "required": [ - "meshCommunicationDefinitions" + "meshWorkspaceGroupBindings" ], "type": "object", "properties": { - "meshCommunicationDefinitions": { + "meshWorkspaceGroupBindings": { "type": "array", - "description": "Filtered list of definitions.", + "description": "List of meshWorkspaceGroupBindings.", "items": { "oneOf": [ { @@ -22167,8 +21744,7 @@ ] } } - }, - "description": "The container for the result set." + } }, "page": { "type": "object", @@ -22176,10 +21752,8 @@ } } }, - "meshUserV2Post": { - "title": "meshUserV2Post", + "api-meshobjects-meshbuildingblocks-884287178": { "required": [ - "_links", "apiVersion", "kind", "metadata", @@ -22189,191 +21763,393 @@ "properties": { "metadata": { "required": [ - "name" + "definitionUuid", + "definitionVersion", + "tenantIdentifier" ], "type": "object", "properties": { - "name": { + "definitionVersion": { + "type": "number", + "description": "The version number of the Building Block Definition this Building Block is based on." + }, + "definitionUuid": { "type": "string", - "description": "The username as 'name' to uniquely identify the meshUser." + "description": "The UUID of the Building Block Definition this Building Block is based on." }, - "uuid": { + "tenantIdentifier": { "type": "string", - "description": "A unique identifier (UUID) for the meshUser.", - "nullable": true + "description": "The full identifier of the tenant, this Building Block is created in." } }, - "description": "Always contains the 'name' to uniquely identify the meshUser." + "description": "Fixed fields that help identify the Building Block." }, "apiVersion": { "type": "string", - "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshUser." + "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." }, "spec": { "required": [ - "email", - "firstName", - "lastName" + "displayName", + "inputs", + "parentBuildingBlocks" ], "type": "object", "properties": { - "lastName": { - "type": "string", - "description": "The last name of the meshUser." - }, - "firstName": { - "type": "string", - "description": "The first name of the meshUser." + "parentBuildingBlocks": { + "type": "array", + "description": "List of parent building blocks, which are required for the Building Block. If none given, an empty list needs to be provided.", + "items": { + "required": [ + "buildingBlockUuid", + "definitionUuid" + ], + "type": "object", + "properties": { + "buildingBlockUuid": { + "type": "string", + "description": "The UUID of the parent Building Block." + }, + "definitionUuid": { + "type": "string", + "description": "The UUID of the Building Block Definition of the parent Building Block." + } + } + } }, - "euid": { + "inputs": { + "type": "array", + "description": "List of inputs, which are set on the Building Block.", + "items": { + "required": [ + "key", + "value", + "valueType" + ], + "type": "object", + "properties": { + "valueType": { + "type": "string", + "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." + }, + "value": { + "type": "string", + "description": "The value, which is set on this input." + }, + "key": { + "type": "string", + "description": "The key of the input as set on the related Building Block Definition." + } + } + } + }, + "displayName": { "type": "string", - "description": "External User ID which is used to lookup the user in the cloud platforms.", + "description": "The display name of the Building Block as it is shown in meshPanel." + } + }, + "description": "All fields in this section describe the Building Block." + } + } + }, + "api-meshobjects-meshtenants14069591": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "ownedByProject", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "ownedByProject": { + "type": "string", + "description": "The identifier of the meshProject the meshTenant belongs to." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the meshTenant belongs to." + } + }, + "description": "Fixed fields that help identify the Tenant." + }, + "apiVersion": { + "type": "string", + "description": "Version of Tenant datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." + }, + "spec": { + "required": [ + "landingZoneIdentifier", + "platformIdentifier" + ], + "type": "object", + "properties": { + "platformTenantId": { + "type": "string", + "description": "The platform tenant id assigned by the platform for this meshTenant. If set, meshStack will import an existing tenant from the cloud platform instead of creating a new one. Only API Keys or API Users with admin permissions for saving tenants can set this field.", "nullable": true }, - "email": { + "landingZoneIdentifier": { "type": "string", - "description": "The email of the meshUser." + "description": "The identifier of the landing zone the meshTenant belongs to." + }, + "platformIdentifier": { + "type": "string", + "description": "The identifier of the platform the meshTenant belongs to." + } + }, + "description": "All fields in this section describe the Tenant." + } + } + }, + "meshProjectPut": { + "title": "meshProjectPut", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "deletedOn": { + "type": "string", + "description": "If the meshProject has been submitted for deletion by a Workspace Manager, the date, the date is represented here (e.g. `2020-12-22T09:37:43Z)`. Otherwise this field is missing.", + "nullable": true + }, + "name": { + "type": "string", + "description": "The projectIdentifier as 'name'." + }, + "createdOn": { + "type": "string", + "description": "The meshProject has been created at this date (e.g. `2020-12-22T09:37:43Z`).", + "nullable": true + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspaceIdentifier as 'ownedByWorkspace'." + } + }, + "description": "Always contains the 'name' and 'ownedByWorkspace' to uniquely identify the meshProject." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshProject." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." + }, + "spec": { + "required": [ + "displayName", + "tags" + ], + "type": "object", + "properties": { + "substitutePaymentMethodIdentifier": { + "type": "string", + "description": "The substitutePaymentMethod of the meshProject", + "nullable": true + }, + "paymentMethodIdentifier": { + "type": "string", + "description": "The meshPaymentMethod of the meshProject.", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the meshProject as it is shown in meshPanel." }, "tags": { "type": "object", - "description": "Key/Value pairs of tags set on the meshUser. Keep in mind, that values are an array.", - "nullable": true + "description": "Key/Value pairs of tags set on the meshProject. Keep in mind, that values are an array." } }, - "description": "All fields in this section describe the meshUser." + "description": "All fields in this section describe the meshProject." } } }, - "meshPlatformTypeListV1": { - "title": "meshPlatformTypeListV1", + "meshTenantV4": { + "title": "meshTenantV4", "required": [ - "_embedded", "_links", - "page" + "apiVersion", + "kind", + "metadata", + "spec", + "status" ], "type": "object", "properties": { + "metadata": { + "required": [ + "ownedByProject", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "ownedByProject": { + "type": "string", + "description": "The identifier of the meshProject the meshTenant belongs to." + }, + "markedForDeletionOn": { + "type": "string", + "description": "If the meshTenant has been submitted for deletion by a Workspace Manager, the date is represented here (e.g. `2020-12-22T09:37:43Z)`. Otherwise this field is missing.", + "nullable": true + }, + "deletedOn": { + "type": "string", + "description": "If the meshTenant was deleted successfully in the cloud platform, the date is represented here (e.g. `2020-12-22T10:12:25Z)`. Otherwise this field is missing.", + "nullable": true + }, + "createdOn": { + "type": "string", + "description": "The creation date of the meshTenant.", + "nullable": true + }, + "uuid": { + "type": "string", + "description": "The UUID of the meshTenant. It must be used to reference a meshTenant.", + "nullable": true + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the meshTenant belongs to." + } + }, + "description": "Contains common meshObject data." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshTenant datatype. Matches the version provided in the `Accept` request header." + }, "_links": { "type": "object", - "description": "Currently only contains the self link and pagination links." + "description": "Currently only contains the self link." }, - "_embedded": { + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." + }, + "spec": { "required": [ - "meshPlatformTypes" + "landingZoneIdentifier", + "platformIdentifier", + "quotas" ], "type": "object", "properties": { - "meshPlatformTypes": { + "quotas": { "type": "array", - "description": "List of meshPlatformTypes.", + "description": "The set of applied Tenant Quotas. They can be set individually per tenant. By default the Landing Zone quotas are applied to new meshTenants.", "items": { - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier that uniquely identifies the meshPlatformType." - }, - "createdOn": { - "type": "string", - "description": "Timestamp when the meshPlatformType was created.", - "nullable": true - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies the meshPlatformType across all platform types.", - "nullable": true - } - }, - "description": "Contains the identifiers for the meshPlatformType." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshPlatformType datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshPlatformType." + "oneOf": [ + { + "type": "object" }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatformType' for this endpoint." + { + "type": "boolean" }, - "spec": { - "required": [ - "category", - "displayName", - "icon" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name of the meshPlatformType shown in the UI." - }, - "icon": { - "type": "string", - "description": "The icon used to display the platform type in the UI. This must be provided as a base64 encoded data image. Size should be kept small to ensure fast loading times and efficient storage." - }, - "defaultEndpoint": { - "type": "string", - "description": "The default endpoint URL for the platform type. This will be used as a default value when creating platform instances. The default endpoint should be a link to a web portal of the cloud platform for example.", - "nullable": true - }, - "category": { - "type": "string", - "description": "The platform category. For custom platform types, this is always 'CUSTOM'. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." - } - }, - "description": "All fields in this section describe the meshPlatformType configuration." + { + "type": "string" }, - "status": { - "required": [ - "lifecycleState" - ], - "type": "object", - "properties": { - "lifecycleState": { - "type": "string", - "description": "The lifecycle state of the platform type. Can be 'ACTIVE' or 'DEACTIVATED'. Deactivated platform types cannot be used to create new platform instances." - } - }, - "description": "The current status of the meshPlatformType." + { + "type": "number" } - } + ] } + }, + "platformTenantId": { + "type": "string", + "description": "The platform tenant id related to this meshTenant. It will only be set if the tenant was either imported via meshObject API with a platformTenantId or if at least one replication run was executed that resulted in the creation of a platform tenant. +\n*Note:* This does not mean the whole replication must have been successful. Some steps like role assignments on this tenant might be still in progress.", + "nullable": true + }, + "landingZoneIdentifier": { + "type": "string", + "description": "The identifier of the Landing Zone of this meshTenant. This field will be empty if the meshTenant has no Landing Zone." + }, + "platformIdentifier": { + "type": "string", + "description": "The identifier of the related platform instance." } }, - "description": "Contains the actual content of the paged response." + "description": "All fields in this section describe the meshTenant." }, - "page": { + "status": { + "required": [ + "platformTypeIdentifier", + "tags", + "tenantName" + ], "type": "object", - "description": "Information about paging." + "properties": { + "platformWorkspaceIdentifier": { + "type": "string", + "description": "Some platforms like Cloud Foundry create a representation of a workspace. The identifier of this workspace representation is stored here. This field is not provided or null if the platform does not support this feature.", + "nullable": true + }, + "tenantName": { + "type": "string", + "description": "The full name of this tenant, a concatenation of the workspace identifier, project identifier and platform identifier." + }, + "tags": { + "type": "object", + "description": "The tags assigned to this meshTenant originating from meshWorkspace, Payment Method and meshProject. Keep in mind, that values are an array." + }, + "platformTypeIdentifier": { + "type": "string", + "description": "The identifier of the related platform type." + } + }, + "description": "All fields in this section represent the current status of the tenant and can change over time." } } }, - "api-meshobjects-meshlandingzones-identifier1747291786": { + "metadataRoot": { + "title": "metadataRoot", + "required": [ + "_links" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "All available Metadata Links for the authenticated user." + } + } + }, + "meshLandingZone-Get-aws": { + "title": "meshLandingZone-Get-aws", "required": [ + "_links", "apiVersion", "kind", "metadata", @@ -22403,6 +22179,10 @@ "type": "string", "description": "Version of meshLandingZone datatype. Matches the version part provided within the `Accept` request header." }, + "_links": { + "type": "object", + "description": "Available links on this meshObject." + }, "kind": { "type": "string", "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." @@ -22775,91 +22555,33 @@ } }, "description": "All fields in this section describe the meshLandingZone." - } - } - }, - "meshProjectRoleV1Post": { - "title": "meshProjectRoleV1Post", - "type": "object" - }, - "meshProjectGroupBindingListV3": { - "title": "meshProjectGroupBindingListV3", - "required": [ - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." }, - "_embedded": { + "status": { "required": [ - "meshProjectGroupBindings" + "disabled", + "restricted" ], "type": "object", "properties": { - "meshProjectGroupBindings": { - "type": "array", - "description": "List of meshProjectGroupBindings.", - "items": { - "type": "object", - "properties": { - "targetRef": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of the project the group is assigned to." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace which contains the project." - } - } - }, - "subject": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of this user group." - } - } - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this group." - } - } - } - } - } + "restricted": { + "type": "boolean", + "description": "If true, users will be unable to select this landing zone in meshPanel. Only Platform teams can create tenants using restricted landing zones with the meshObject API." + }, + "disabled": { + "type": "boolean", + "description": "Whether the landing zone is disabled." } - } - }, - "page": { - "type": "object", - "description": "Information about paging." + }, + "description": "Current status of the meshLandingZone." } } }, - "meshIntegration-Post-azure_devops": { - "title": "meshIntegration-Post-azure_devops", + "importInJson": { + "title": "importInJson", + "type": "object" + }, + "meshPlatformTypeV1Post": { + "title": "meshPlatformTypeV1Post", "required": [ "_links", "apiVersion", @@ -22871,418 +22593,114 @@ "properties": { "metadata": { "required": [ - "ownedByWorkspace" + "name" ], "type": "object", "properties": { - "createdOn": { + "name": { "type": "string", - "description": "Timestamp when the integration was created. This field is automatically set by the system and cannot be modified.", - "nullable": true + "description": "The identifier that uniquely identifies the meshPlatformType." }, - "uuid": { + "createdOn": { "type": "string", - "description": "The UUID that uniquely identifies the integration across all integrations.", + "description": "Timestamp when the meshPlatformType was created.", "nullable": true }, - "ownedByWorkspace": { + "uuid": { "type": "string", - "description": "The workspace identifier that owns this integration." + "description": "The UUID that uniquely identifies the meshPlatformType across all platform types.", + "nullable": true } }, - "description": "Contains identifiers and ownership information for the integration." + "description": "Contains the identifiers for the meshPlatformType." }, "apiVersion": { "type": "string", - "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshPlatformType datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", - "description": "Available links on a meshIntegration." + "description": "Available links on a meshPlatformType." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatformType' for this endpoint." }, "spec": { "required": [ - "config", + "category", "displayName", - "runnerRef" + "icon" ], "type": "object", "properties": { "displayName": { "type": "string", - "description": "The display name of the integration." - }, - "runnerRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshBuildingBlockRunner\"." - }, - "uuid": { - "type": "string", - "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." - } - }, - "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + "description": "The display name of the meshPlatformType shown in the UI." }, - "config": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "github": { - "required": [ - "appId", - "appPrivateKey", - "baseUrl", - "owner" - ], - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The GitHub organization or user that owns the repositories." - }, - "baseUrl": { - "type": "string", - "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." - }, - "appPrivateKey": { - "type": "string", - "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." - }, - "appId": { - "type": "string", - "description": "The GitHub App ID for authentication." - } - }, - "description": "GitHub-specific integration configuration." - }, - "azuredevops": { - "required": [ - "baseUrl", - "organization", - "personalAccessToken" - ], - "type": "object", - "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." - }, - "organization": { - "type": "string", - "description": "The Azure DevOps organization name." - }, - "personalAccessToken": { - "type": "string", - "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." - } - }, - "description": "Azure DevOps-specific integration configuration." - }, - "gitlab": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." - } - }, - "description": "GitLab-specific integration configuration." - }, - "type": { - "type": "string", - "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab'." - } - }, - "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." - } - }, - "description": "All fields in this section describe the integration configuration." - } - } - }, - "meshBuildingBlock": { - "title": "meshBuildingBlock", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "createdOn", - "definitionUuid", - "definitionVersion", - "forcePurge", - "tenantIdentifier", - "uuid" - ], - "type": "object", - "properties": { - "markedForDeletionOn": { + "icon": { "type": "string", - "description": "If the Building Block has been marked for deletion, the date when a user requested the deletion is provided via this field. e.g. `2020-12-22T09:37:43Z`", - "nullable": true - }, - "forcePurge": { - "type": "boolean", - "description": "Set to true, if an operator explicitly requested this Building Block to be purged." - }, - "definitionVersion": { - "type": "number", - "description": "The version number of the Building Block Definition this Building Block is based on." + "description": "The icon used to display the platform type in the UI. This must be provided as a base64 encoded data image. Size should be kept small to ensure fast loading times and efficient storage." }, - "markedForDeletionBy": { + "defaultEndpoint": { "type": "string", - "description": "If the Building Block has already been deleted, the username of the user who triggered the deletion is provided here.", + "description": "The default endpoint URL for the platform type. This will be used as a default value when creating platform instances. The default endpoint should be a link to a web portal of the cloud platform for example.", "nullable": true }, - "createdOn": { - "type": "string", - "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." - }, - "uuid": { - "type": "string", - "description": "The UUID to uniquely identify the Building Block." - }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition this Building Block is based on." - }, - "tenantIdentifier": { - "type": "string", - "description": "The full identifier of the tenant, this Building Block is created in." - } - }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." - }, - "apiVersion": { - "type": "string", - "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a Building Block." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." - }, - "spec": { - "required": [ - "displayName", - "inputs", - "parentBuildingBlocks" - ], - "type": "object", - "properties": { - "parentBuildingBlocks": { - "type": "array", - "description": "List of parent building blocks, which are set on the Building Block.", - "items": { - "required": [ - "buildingBlockUuid", - "definitionUuid" - ], - "type": "object", - "properties": { - "buildingBlockUuid": { - "type": "string", - "description": "The UUID of the parent Building Block." - }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition of the parent Building Block." - } - } - } - }, - "inputs": { - "type": "array", - "description": "List of inputs, which are set on the Building Block.", - "items": { - "required": [ - "key", - "value", - "valueType" - ], - "type": "object", - "properties": { - "valueType": { - "type": "string", - "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." - }, - "value": { - "type": "string", - "description": "The value, which is set on this input." - }, - "key": { - "type": "string", - "description": "The key of the input as set on the related Building Block Definition." - } - } - } - }, - "displayName": { + "category": { "type": "string", - "description": "The display name of the Building Block as it is shown in meshPanel." + "description": "The platform category. For custom platform types, this is always 'CUSTOM'. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." } }, - "description": "All fields in this section describe the Building Block." + "description": "All fields in this section describe the meshPlatformType configuration." }, "status": { "required": [ - "outputs", - "status" + "lifecycleState" ], "type": "object", "properties": { - "outputs": { - "type": "array", - "description": "List of outputs, which are set on the Building Block.", - "items": { - "required": [ - "key", - "value", - "valueType" - ], - "type": "object", - "properties": { - "valueType": { - "type": "string", - "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." - }, - "value": { - "type": "string", - "description": "The value, which is set on this output." - }, - "key": { - "type": "string", - "description": "The key of the output as set on the related Building Block Definition." - } - } - } - }, - "status": { + "lifecycleState": { "type": "string", - "description": "The status of the Building Block. One of WAITING_FOR_DEPENDENT_INPUT, WAITING_FOR_OPERATOR_INPUT, WAITING_FOR_USER_INPUT, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ABORTED." - } - }, - "description": "All fields in this section describe the current status of the Building Block." - } - } - }, - "meshTenantListV3": { - "title": "meshTenantListV3", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshTenants" - ], - "type": "object", - "properties": { - "meshTenants": { - "type": "array", - "description": "List of meshTenant.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } + "description": "The lifecycle state of the platform type. Can be 'ACTIVE' or 'DEACTIVATED'. Deactivated platform types cannot be used to create new platform instances." } }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." + "description": "The current status of the meshPlatformType." } } }, - "meshPlatform-Put-V2-kubernetes": { - "title": "meshPlatform-Put-V2-kubernetes", + "meshLandingZone-Put-aws": { + "title": "meshLandingZone-Put-aws", "required": [ "_links", "apiVersion", "kind", "metadata", - "spec", - "status" + "spec" ], "type": "object", "properties": { "metadata": { "required": [ "name", - "ownedByWorkspace", - "uuid" + "tags" ], "type": "object", "properties": { - "deletedOn": { - "type": "string", - "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", - "nullable": true - }, "name": { "type": "string", - "description": "The platform identifier as 'name' to identify the meshPlatform." - }, - "uuid": { - "type": "string", - "description": "The UUID of the meshPlatform." + "description": "The identifier as 'name' to uniquely identify the meshLandingZone." }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace that owns this meshPlatform." + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshLandingZone." } }, - "description": "Contains metadata to uniquely identify the meshPlatform." + "description": "Always contains the 'name' to uniquely identify the meshLandingZone." }, "apiVersion": { "type": "string", - "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshLandingZone datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", @@ -23290,151 +22708,19 @@ }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." }, "spec": { "required": [ - "availability", - "config", + "automateDeletionApproval", + "automateDeletionReplication", "displayName", - "locationRef", - "quotaDefinitions" + "platformRef", + "quotas" ], "type": "object", "properties": { - "documentationUrl": { - "type": "string", - "description": "URL for platform documentation.", - "nullable": true - }, - "quotaDefinitions": { - "type": "array", - "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For platforms that don't support it yet, you have to provide an empty array. If empty list is provided, all existing quota definitions are removed.", - "items": { - "required": [ - "autoApprovalThreshold", - "description", - "label", - "maxValue", - "minValue", - "quotaKey" - ], - "type": "object", - "properties": { - "quotaKey": { - "type": "string", - "description": "The key of the quota as it is required by the cloud platform." - }, - "minValue": { - "type": "number", - "description": "Minimum allowed value for this quota." - }, - "unit": { - "type": "string", - "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", - "nullable": true - }, - "autoApprovalThreshold": { - "type": "number", - "description": "Threshold below which quota requests are automatically approved." - }, - "maxValue": { - "type": "number", - "description": "Maximum allowed value for this quota." - }, - "description": { - "type": "string", - "description": "Detailed description of what this quota controls." - }, - "label": { - "type": "string", - "description": "Human-readable label for the quota." - } - } - } - }, - "endpoint": { - "type": "string", - "description": "The web console URL endpoint of the platform.", - "nullable": true - }, - "locationRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The kind of the referenced location, always 'meshLocation'." - }, - "name": { - "type": "string", - "description": "The identifier of the location." - } - }, - "description": "Reference to the location where this platform is situated." - }, - "displayName": { - "type": "string", - "description": "The human-readable display name of the meshPlatform." - }, - "supportUrl": { - "type": "string", - "description": "URL for platform support documentation.", - "nullable": true - }, - "description": { - "type": "string", - "description": "description of the meshPlatform.", - "nullable": true - }, - "availability": { - "required": [ - "publicationState", - "restriction" - ], - "type": "object", - "properties": { - "publicationState": { - "type": "string", - "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." - }, - "restriction": { - "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." - }, - "restrictedToWorkspaces": { - "type": "array", - "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Availability configuration for the meshPlatform." - }, - "readme": { - "type": "string", - "description": "README about the meshPlatform in markdown format", - "nullable": true - }, - "config": { + "platformProperties": { "required": [ "type" ], @@ -23442,1481 +22728,504 @@ "properties": { "kubernetes": { "required": [ - "baseUrl" + "kubernetesRoleMappings" ], "type": "object", "properties": { - "replication": { - "required": [ - "clientConfig", - "namespaceNamePattern" - ], - "type": "object", - "properties": { - "namespaceNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. Kubernetes Namespace Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." - } + "kubernetesRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", + "items": { + "oneOf": [ + { + "type": "object" }, - "description": "Client configuration for Kubernetes" - } - }, - "description": "Replication configuration for Kubernetes (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" - }, - "metering": { - "required": [ - "clientConfig" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" } - }, - "clientConfig": { - "type": "object", - "description": "Processing configuration for metering data" - } - }, - "description": "Replication configuration for Kubernetes (optional, but required for metering)" - }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", - "nullable": true + ] + } } - }, - "description": "Kubernetes configuration, if applicable." + } }, "azurerg": { "required": [ - "entraTenant" + "azureRgLocation", + "azureRgRoleMappings" ], "type": "object", "properties": { - "replication": { + "azureRgRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cloud specific access role. If empty, the default that is configured on platform level will be used.", + "items": { + "required": [ + "azureGroupSuffix", + "azureRoleDefinitionIds" + ], + "type": "object", + "properties": { + "azureRoleDefinitionIds": { + "type": "array", + "description": "Role Definitions with the given IDs will be attached to this Azure Role", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "azureGroupSuffix": { + "type": "string", + "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." + } + } + } + }, + "azureFunction": { "required": [ - "resourceGroupNamePattern", - "servicePrincipal", - "skipUserGroupPermissionCleanup", - "subscription", - "userGroupNamePattern", - "userLookUpStrategy" + "azureFunctionUrl" ], "type": "object", "properties": { - "administrativeUnitId": { + "azureFunctionScope": { "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", "nullable": true }, - "userGroupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." - }, - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." - } - }, - "description": "Tenant tags configuration" - }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." - }, - "subscription": { - "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "resourceGroupNamePattern": { + "azureFunctionUrl": { "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." - }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true + "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" } }, - "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" + "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." }, - "entraTenant": { + "azureRgLocation": { "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + "description": "The newly created Resource Group for the meshProjects will get assigned to this location. It must be all lower case and without spaces (e.g. eastus2 for East US 2). In order to list the available locations you can use `az account list-locations --query \"[*].name\" --out tsv | sort`" } - }, - "description": "Configuration for Azure Resource Group" + } }, "gcp": { + "required": [ + "gcpFolderId", + "gcpRoleMappings" + ], "type": "object", "properties": { - "replication": { - "required": [ - "allowHierarchicalFolderAssignment", - "billingAccountId", - "customerId", - "domain", - "gcpRoleMappings", - "groupNamePattern", - "projectIdPattern", - "projectNamePattern", - "serviceAccountConfig", - "skipUserGroupPermissionCleanup", - "userLookupStrategy" - ], - "type": "object", - "properties": { - "gcpRoleMappings": { - "type": "array", - "description": "Role mappings for GCP with project role references", - "items": { - "required": [ - "gcpRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "gcpRole": { - "type": "string", - "description": "GCP role to assign" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, - "userLookupStrategy": { - "type": "string", - "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" - }, - "projectNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. The result must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. When length restrictions are applied, the abbreviation will be in the middle and marked by a single-quote." - }, - "projectIdPattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. The resulting string must not exceed a total length of 30 characters. Only alphanumeric + hyphen are allowed. We recommend that configuration include at least 3 characters of the random parameter to reduce the chance of naming collisions as the project Ids must be globally unique within GCP." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "Namespace prefix for tenant tags" - } - }, - "description": "Tenant tags configuration" - }, - "domain": { - "type": "string", - "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." - }, - "serviceAccountConfig": { - "type": "object", - "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." - } - }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" - }, - "serviceAccountWorkloadIdentityConfig": { - "required": [ - "audience" - ], - "type": "object", - "properties": { - "serviceAccountEmail": { - "type": "string", - "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation.", - "nullable": true - }, - "audience": { - "type": "string", - "description": "The audience associated with your workload identity pool provider." - } - }, - "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" - } - }, - "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "customerId": { - "type": "string", - "description": "A Google Customer ID. It typically starts with a 'C'." - }, - "allowHierarchicalFolderAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." - }, - "billingAccountId": { - "type": "string", - "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "groupNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." - } - }, - "description": "Replication configuration for GCP (optional, but required for replication)" + "gcpFolderId": { + "type": "string", + "description": "Google Cloud Projects will be added to this Google Cloud Folder. This allows applying Organization Policies to all projects managed under this Landing Zone." }, - "metering": { - "required": [ - "bigqueryTable", - "partitionTimeColumn", - "processing", - "serviceAccountConfig" - ], - "type": "object", - "properties": { - "partitionTimeColumn": { - "type": "string", - "description": "Column name for partitioning time-based data" - }, - "serviceAccountConfig": { - "type": "object", - "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for metering service account" - } - }, - "description": "Service account credentials configuration for metering" - } + "gcpRoleMappings": { + "type": "array", + "description": "You can use both built-in roles like 'roles/editor' or custom roles like 'organizations/123123123123/roles/meshstack.project_developer'. For more information see https://docs.meshcloud.io/meshstack.gcp.landing-zones/#meshrole-to-platform-role-mapping[the Landing Zone documentation]. Multiple GCP Roles can be assigned to one meshRole. If empty, the default that is configured on platform level will be used.", + "items": { + "oneOf": [ + { + "type": "object" }, - "description": "Service account configuration for metering. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "additionalFilter": { - "type": "string", - "description": "Additional SQL filter for billing data (optional)", - "nullable": true - }, - "bigqueryTableForCarbonFootprint": { - "type": "string", - "description": "BigQuery table containing carbon footprint data (optional)", - "nullable": true - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } + { + "type": "boolean" }, - "description": "Processing configuration for metering data" - }, - "carbonFootprintDataCollectionStartMonth": { - "type": "string", - "description": "Start month for carbon footprint data collection (optional)", - "nullable": true - }, - "bigqueryTable": { - "type": "string", - "description": "BigQuery table containing billing data export" - } - }, - "description": "Metering configuration for GCP (optional, but required for metering)" + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "gcpTemplateUrl": { + "type": "string", + "description": "URL to a GCP bucket (starts with 'gs://') with a template config. The template is deployed in the project during the replication process. Only YAML files are supported with a file size limit of 1 MB.", + "nullable": true + }, + "gcpCloudFunctionUrl": { + "type": "string", + "description": "If a GCP Cloud Function URL is provided it is getting called at the end of the replication process.", + "nullable": true } - }, - "description": "GCP configuration, if applicable." + } }, "openshift": { + "type": "object", + "properties": { + "openShiftTemplate": { + "type": "string", + "description": "template definition YML to setup a template for projects created in Open Shift", + "nullable": true + } + } + }, + "aks": { "required": [ - "baseUrl" + "kubernetesRoleMappings" ], "type": "object", "properties": { - "replication": { - "required": [ - "clientConfig", - "enableTemplateInstantiation", - "identityProviderName", - "projectNamePattern" - ], - "type": "object", - "properties": { - "openshiftRoleMappings": { - "type": "array", - "description": "Role mappings for GCP with project role references", - "items": { - "required": [ - "openshiftRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "openshiftRole": { - "type": "string", - "description": "OpenShift role to assign" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "identifier of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, - "webConsoleUrl": { - "type": "string", - "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", - "nullable": true - }, - "projectNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. OpenShift Project Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." - } + "kubernetesRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", + "items": { + "oneOf": [ + { + "type": "object" }, - "description": "Tenant tags configuration" - }, - "identityProviderName": { - "type": "string", - "description": "Identity provider name" - }, - "enableTemplateInstantiation": { - "type": "boolean", - "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." - } + { + "type": "boolean" }, - "description": "Client configuration for OpenShift" - } - }, - "description": "Replication configuration for OpenShift (optional, but required for replication)" + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + }, + "type": { + "type": "string", + "description": "The platform type. Possible values are: 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift'." + }, + "aws": { + "required": [ + "awsEnrollAccount", + "awsRoleMappings", + "awsTargetOrgUnitId" + ], + "type": "object", + "properties": { + "awsTargetOrgUnitId": { + "type": "string", + "description": "The created AWS account for this Landing Zone will be put under the given Organizational Unit. You can also input a Root ID (starting with 'r-') then the account will be put directly under this root without assigning it to an OU (this is not recommended)." }, - "baseUrl": { + "awsLambdaArn": { "type": "string", - "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" + "description": "If this Lambda ARN is given, it is invoked after each project replication. You can use it to trigger a custom Account Vending Machine to perform several additional provisioning steps.", + "nullable": true }, - "metering": { - "required": [ - "clientConfig", - "processing" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } + "awsRoleMappings": { + "type": "array", + "description": "Roles can be mapped from the meshRole to the AWS Role. The AWS role will be part of the role or group name within AWS. If empty, the default that is configured on platform level will be used.", + "items": { + "oneOf": [ + { + "type": "object" }, - "description": "Processing configuration for metering data" - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "Access token for Kubernetes API authentication" - } + { + "type": "boolean" }, - "description": "Kubernetes client configuration for metering access" - } - }, - "description": "Metering configuration for OpenShift (optional, but required for metering)" + { + "type": "string" + }, + { + "type": "number" + } + ] + } }, - "disableSslValidation": { + "awsEnrollAccount": { "type": "boolean", - "description": "Flag to disable SSL validation for the OpenShift cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", - "nullable": true + "description": "If true, accounts will be enrolled to AWS control tower. In case an enrollment configuration is provided for the AWS platform AND this value is set to true, created AWS accounts will automatically be enrolled with AWS Control Tower. Automatic account enrollment does also require the Target Organizational Unit to already be enrolled with AWS Control Tower and the corresponding meshfed-service role needs to be in the \"IAM Principal\" list for the Portfolio access of the Account Factory Product ID you defined in platform settings. Click https://docs.meshcloud.io/integrations/aws/how-to-integrate/#8-integrate-aws-control-tower[here] to learn more about the Control Tower setup." } - }, - "description": "Openshift configuration, if applicable." + } }, - "aks": { + "azure": { "required": [ - "baseUrl" + "azureManagementGroupId", + "azureRoleMappings" ], "type": "object", "properties": { - "replication": { - "required": [ - "accessToken", - "aksClusterName", - "aksResourceGroup", - "aksSubscriptionId", - "groupNamePattern", - "namespaceNamePattern", - "sendAzureInvitationMail", - "servicePrincipal", - "userLookUpStrategy" - ], - "type": "object", - "properties": { - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "aksSubscriptionId": { - "type": "string", - "description": "Subscription ID for the AKS cluster" - }, - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "entraTenant", - "objectId" - ], - "type": "object", - "properties": { - "entraTenant": { - "type": "string", - "description": "Domain name or ID of the Entra Tenant that holds the Service Principal." - }, - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for the service principal (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + "azureRoleMappings": { + "type": "array", + "description": "An array of mappings between the meshRole and the Azure specific access role. If empty, default role mappings defined on meshPlatform level are used. For more information see https://docs.meshcloud.io/meshstack.azure.landing-zones#meshrole-to-platform-role-mapping[the Landing Zone documentation]. If empty, the default that is configured on platform level will be used.", + "items": { + "required": [ + "azureGroupSuffix", + "azureRoleDefinitions" + ], + "type": "object", + "properties": { + "azureRoleDefinitions": { + "type": "array", + "description": "Role Definitions with the given IDs will be attached to this Azure Role", + "items": { + "type": "object", + "properties": { + "abacCondition": { + "type": "string", + "description": "an ABAC condition for the role assignment in form of a string", + "nullable": true + } + } } }, - "description": "Service principal configuration for AKS" - }, - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation.", - "nullable": true - }, - "aksResourceGroup": { - "type": "string", - "description": "Resource group for the AKS cluster" - }, - "namespaceNamePattern": { - "type": "string", - "description": "Pattern for naming namespaces in AKS" - }, - "userLookUpStrategy": { - "type": "string", - "description": "Strategy for user lookup in Azure ('userPrincipalName' or 'email')" - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "Flag to send Azure invitation emails. When true, meshStack instructs Azure to send out Invitation mails to invited users." - }, - "aksClusterName": { - "type": "string", - "description": "Name of the AKS cluster" - }, - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." - }, - "groupNamePattern": { - "type": "string", - "description": "Pattern for naming groups in AKS" + "azureGroupSuffix": { + "type": "string", + "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." + } } - }, - "description": "Replication configuration for AKS (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "Base URL of the AKS cluster" + } }, - "metering": { + "azureFunction": { "required": [ - "clientConfig" + "azureFunctionUrl" ], "type": "object", "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - } + "azureFunctionScope": { + "type": "string", + "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", + "nullable": true }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for metering access." - } - }, - "description": "Processing configuration for metering data" + "azureFunctionUrl": { + "type": "string", + "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" } }, - "description": "Replication configuration for AKS (optional, but required for metering)" + "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", - "nullable": true + "azureManagementGroupId": { + "type": "string", + "description": "Subscriptions with this Landing Zone will be added to this Management Group. Please make sure to use the Management Group ID and not the group name!" } + } + } + }, + "description": "Custom properties for the platform of the landing zone. The values depend on the platform type. " + }, + "quotas": { + "type": "array", + "description": "List of default quotas applied via this landing zone. Quotas define resource limits that will be applied to tenants using this landing zone. Tenants can afterwards request different quotas if needed. The available quota keys depend on the platform type and its quota definitions. For platforms that do not support quotas, this will be an empty array.", + "items": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "The quota value for this landing zone. Must be within the min/max range defined in the platform's quota definition." }, - "description": "Azure Kubernetes Service configuration, if applicable." + "key": { + "type": "string", + "description": "The quota key as defined in the platform's quota definitions. Must match a quota definition key from the platform." + } + } + } + }, + "automateDeletionApproval": { + "type": "boolean", + "description": "Whether deletion approval is automated for this landing zone." + }, + "displayName": { + "type": "string", + "description": "The human-readable display name of the meshLandingZone." + }, + "description": { + "type": "string", + "description": "The description of the meshLandingZone.", + "nullable": true + }, + "automateDeletionReplication": { + "type": "boolean", + "description": "Whether deletion replication is automated for this landing zone." + }, + "platformRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshPlatform\"" }, - "aws": { - "required": [ - "region" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "accessConfig", - "accountAccessRole", - "accountAliasPattern", - "accountEmailPattern", - "automationAccountRole", - "enforceAccountAlias", - "selfDowngradeAccessRole", - "skipUserGroupPermissionCleanup", - "waitForExternalAvm" - ], - "type": "object", - "properties": { - "selfDowngradeAccessRole": { - "type": "boolean", - "description": "Flag for self downgrade access role. If set, meshStack will revoke its rights on the managed account that were only needed for initial account creation." - }, - "enrollmentConfiguration": { - "required": [ - "accountFactoryProductId", - "managementAccountId" - ], - "type": "object", - "properties": { - "managementAccountId": { - "type": "string", - "description": "The Account ID of the management account configured for the platform instance." - }, - "accountFactoryProductId": { - "type": "string", - "description": "The Product ID of the AWS Account Factory Product in AWS Service Catalog that should be used for enrollment. Starts with `prod-`." - } - }, - "description": "With this optional configuration you can provide general information to enroll the created AWS accounts into Control Tower. Make sure you also enable it on the meshLandingZone!. If you don't, meshStack will skip the enrollment of AWS Accounts into Control Tower." - }, - "accountAccessRole": { - "type": "string", - "description": "The name for the Account Access Role that will be rolled out to all managed accounts. Only a name, not an ARN must be set here, as the ARN must be built dynamically for every managed AWS Account. The replicator service user needs to assume this role in all accounts to manage them." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "Namespace prefix for tenant tags" - } - }, - "description": "Tenant tags configuration" - }, - "automationAccountRole": { - "type": "string", - "description": "ARN of the Automation Account Role. The Automation Account contains all AWS StackSets and Lambda Functions that shall be executed via meshLandingZones. E.g. arn:aws:iam::123456789:role/MeshfedAutomationRole." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later. " - }, - "automationAccountExternalId": { - "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the automation account role.", - "nullable": true - }, - "accountAliasPattern": { - "type": "string", - "description": "With a String Pattern you can define how the account alias of the created AWS account will be named. E.g. +++#+++{workspaceIdentifier}-+++#+++{projectIdentifier}.\nAttention: Account Alias must be globally unique in AWS. So consider defining a unique prefix." - }, - "accountEmailPattern": { - "type": "string", - "description": "With a String Pattern you can define how the account email address of the created AWS account will be set. E.g. 'aws++++#+++{workspaceIdentifier}.+++#+++{projectIdentifier}@yourcompany.com'. Please consider that this email address is limited to 64 characters! Also have a look at our docs for more information." - }, - "enforceAccountAlias": { - "type": "boolean", - "description": "Flag to enforce account alias. If set, meshStack will guarantee on every replication that the configured Account Alias is applied. Otherwise it will only set the Account Alias once during tenant creation." - }, - "waitForExternalAvm": { - "type": "boolean", - "description": "Flag to wait for external AVM.Please use this setting with care! It is currently very specific to certain tags being present on the account! In general, we recommend not to activate this waitForExternalAvm functionality! In a meshLandingZone an AVM can be triggered via an AWS StackSet or via a Lambda Function. If meshStack shall wait for the AVM to complete when creating a new platform tenant, this flag must be checked. meshStack will identify completion of the AVM by checking the presence of the following tags on the AWS account: 'ProductName' is set to workspace identifier and 'Stage' is set to project identifier." - }, - "allowHierarchicalOrganizationalUnitAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical organizational unit assignment in AWS. If set to true: Accounts can be moved to child organizational units of the organizational unit defined in the Landing Zone. This is useful if you want to manage the account location with a deeper and more granular hierarchy. If set to false: Accounts will always be moved directly to the organizational unit defined in the Landing Zone.", - "nullable": true - }, - "accessConfig": { - "required": [ - "organizationRootAccountRole" - ], - "type": "object", - "properties": { - "organizationRootAccountRole": { - "type": "string", - "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." - }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." - } - }, - "description": "Workload identity configuration (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { - "required": [ - "accessKey", - "secretKey" - ], - "type": "object", - "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for service user" - }, - "accessKey": { - "type": "string", - "description": "AWS access key for service user" - } - }, - "description": "Service user configuration (alternative to workloadIdentityConfig)" - }, - "organizationRootAccountExternalId": { - "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role. ", - "nullable": true - } - }, - "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." - }, - "awsSso": { - "required": [ - "arn", - "awsRoleMappings", - "groupNamePattern", - "scimEndpoint", - "signInUrl", - "ssoAccessToken" - ], - "type": "object", - "properties": { - "ssoAccessToken": { - "type": "string", - "description": "The AWS IAM Identity Center SCIM Access Token that was generated via the Automatic provisioning config in AWS IAM Identity Center." - }, - "signInUrl": { - "type": "string", - "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." - }, - "scimEndpoint": { - "type": "string", - "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." - }, - "arn": { - "type": "string", - "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." - }, - "awsRoleMappings": { - "type": "array", - "description": "Roles can be mapped from the meshRole to the AWS role.", - "items": { - "required": [ - "permissionSetArns", - "projectRoleRef" - ], - "type": "object", - "properties": { - "projectRoleRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "Must always be set to `meshProjectRole`" - }, - "name": { - "type": "string", - "description": "The identifier of the meshProjectRole, e.g. `admin` or `user` or `reader`" - } - }, - "description": "A reference to an existing meshProjectRole" - }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } - } - }, - "groupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." - } - }, - "description": "AWS SSO configuration" - } + "uuid": { + "type": "string", + "description": "The UUID of the platform instance." + } + }, + "description": "Reference to the platform instance this landing zone belongs to." + }, + "infoLink": { + "type": "string", + "description": "An optional link to describe more details about the landing zone", + "nullable": true + } + }, + "description": "All fields in this section describe the meshLandingZone." + }, + "status": { + "required": [ + "disabled", + "restricted" + ], + "type": "object", + "properties": { + "restricted": { + "type": "boolean", + "description": "If true, users will be unable to select this landing zone in meshPanel. Only Platform teams can create tenants using restricted landing zones with the meshObject API." + }, + "disabled": { + "type": "boolean", + "description": "Whether the landing zone is disabled." + } + }, + "description": "Current status of the meshLandingZone." + } + } + }, + "meshLocation-List": { + "title": "meshLocation-List", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshLocations" + ], + "type": "object", + "properties": { + "meshLocations": { + "type": "array", + "description": "List of meshLocations.", + "items": { + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier that uniquely identifies the meshLocation." }, - "description": "Replication configuration for AWS (optional, but required for replication)" + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the meshLocation. This is a common attribute for all meshObjects, but in case of a meshLocation it is not used for referencing the location. Instead the name (identifier) is used.", + "nullable": true + } }, - "metering": { - "required": [ - "accessConfig", - "filter", - "processing", - "reservedInstanceFairChargeback", - "savingsPlanFairChargeback" - ], - "type": "object", - "properties": { - "filter": { - "type": "string", - "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - }, - "accessConfig": { - "required": [ - "organizationRootAccountRole" - ], - "type": "object", - "properties": { - "organizationRootAccountRole": { - "type": "string", - "description": "ARN of the Management Account Role for metering access." - }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role for metering access via workload identity federation" - } - }, - "description": "Workload identity configuration for metering (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { - "required": [ - "accessKey", - "secretKey" - ], - "type": "object", - "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for metering service user" - }, - "accessKey": { - "type": "string", - "description": "AWS access key for metering service user" - } - }, - "description": "Service user configuration for metering (alternative to workloadIdentityConfig)" - }, - "organizationRootAccountExternalId": { - "type": "string", - "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", - "nullable": true - } - }, - "description": "AWS access configuration for metering. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." - }, - "savingsPlanFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for savings plans" - }, - "reservedInstanceFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for reserved instances" - } + "description": "Contains the identifiers for the meshLocation." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshLocation datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshLocation." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLocation' for this endpoint." + }, + "spec": { + "required": [ + "displayName" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the meshLocation shown in the UI." }, - "description": "Metering configuration for AWS (optional, but required for metering)" + "description": { + "type": "string", + "description": "An optional description of the meshLocation.", + "nullable": true + } }, - "region": { - "type": "string", - "description": "AWS region" - } + "description": "All fields in this section describe the meshLocation configuration." }, - "description": "AWS configuration, if applicable." - }, - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." - }, - "azure": { - "required": [ - "entraTenant" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "azureRoleMappings", - "blueprintLocation", - "blueprintServicePrincipal", - "groupNamePattern", - "servicePrincipal", - "skipUserGroupPermissionCleanup", - "subscriptionNamePattern", - "userLookUpStrategy" - ], - "type": "object", - "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." - } - }, - "description": "Tenant tags configuration" - }, - "blueprintLocation": { - "type": "string", - "description": "The Azure location where replication creates and updates Blueprint Assignments. Note that it's still possible that the Blueprint creates resources in other locations, this is merely the location where the Blueprint Assignment is managed." - }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "azureRoleMappings": { - "type": "array", - "description": "Role mappings for Azure with project role references", - "items": { - "required": [ - "azureRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "azureRole": { - "required": [ - "alias", - "id" - ], - "type": "object", - "properties": { - "alias": { - "type": "string", - "description": "Alias for the Azure role" - }, - "id": { - "type": "string", - "description": "ID of the Azure role" - } - }, - "description": "Azure role" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." - }, - "blueprintServicePrincipal": { - "type": "string", - "description": "Object ID of the Enterprise Application belonging to the Microsoft Application 'Azure Blueprints'. meshStack will grant the necessary permissions on managed Subscriptions to this SPN so that it can create System Assigned Managed Identities (SAMI) for Blueprint execution." - }, - "provisioning": { - "type": "object", - "properties": { - "preProvisioned": { - "required": [ - "unusedSubscriptionNamePrefix" - ], - "type": "object", - "properties": { - "unusedSubscriptionNamePrefix": { - "type": "string", - "description": "The prefix that identifies unused subscriptions. Subscriptions will be renamed during meshStack's project replication, at which point they should no longer carry this prefix." - } - }, - "description": "If your organization does not have access to an Enterprise Enrollment, you can alternatively configure meshcloud to consume subscriptions from a pool of externally-provisioned subscriptions. This is useful for smaller organizations that wish to use 'Pay-as-you-go' subscriptions or if you're organization partners with an Azure Cloud Solution Provider to provide your subscriptions. The meshcloud Azure replication detects externally-provisioned subscriptions based on a configurable prefix in the subscription name. Upon assignment to a meshProject, the subscription is inflated with the right Landing Zone configuration and removed from the subscription pool." - }, - "customerAgreement": { - "required": [ - "billingScope", - "destinationEntraId", - "sourceEntraTenant", - "sourceServicePrincipal" - ], - "type": "object", - "properties": { - "sourceServicePrincipal": { - "required": [ - "authType", - "clientId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Must be set if and only if `authType` is `CREDENTIALS`. A valid secret for accessing the application. In Azure Portal, this can be configured on the \"App Registration\" under Certificates & secrets. https://docs.meshcloud.io/operations/security-faq/#how-does-meshstack-securely-handle-my-cloud-platform-credentials[How is this information secured?]", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Must be one of `CREDENTIALS` or `WORKLOAD_IDENTITY`. Workload Identity Federation is the one that we recommend as it enables the most secure approach to provide access to your Azure tenant without using long lived credentials. Credential Authentication is an alternative approach where you have to provide a clientSecret manually to meshStack and meshStack stores it encrypted." - } - }, - "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." - }, - "sourceEntraTenant": { - "type": "string", - "description": "Microsoft Entra ID Tenant UUID or domain name used for creating subscriptions. Set this to the Microsoft Entra ID Tenant owning the MCA Billing Scope. If source and destination Microsoft Entra ID Tenants are the same, you need to use UUID." - }, - "subscriptionCreationErrorCooldownSec": { - "type": "number", - "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", - "nullable": true - }, - "destinationEntraId": { - "type": "string", - "description": "Microsoft Entra ID Tenant UUID where created subscriptions should be moved. Set this to the Microsoft Entra ID Tenant hosting your landing zones." - }, - "billingScope": { - "type": "string", - "description": "ID of the MCA Billing Scope used for creating subscriptions. Must follow this format: `/providers/Microsoft.Billing/billingAccounts/$accountId/billingProfiles/$profileId/invoiceSections/$sectionId`." - } - }, - "description": "meshcloud can automatically provision new subscriptions from a Customer Agreement Account owned by your organization. This is suitable for larger organizations that have such a Customer Agreement with Microsoft, and want to provide a large number of subscriptions in a fully automated fashion." - }, - "subscriptionOwnerObjectIds": { - "type": "array", - "description": "One or more principals Object IDs (e.g. user groups, SPNs) that meshStack will ensure have an 'Owner' role assignment on the managed subscriptions. This can be useful to satisfy Azure's constraint of at least one direct 'Owner' role assignment per Subscription. If you want to use a Service Principal please use the Enterprise Application Object ID.\nYou can not use the replicator object ID here, because meshStack always removes its high privilege access after a Subscription creation.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "enterpriseEnrollment": { - "required": [ - "enrollmentAccountId", - "subscriptionOfferType", - "useLegacySubscriptionEnrollment" - ], - "type": "object", - "properties": { - "subscriptionOfferType": { - "type": "string", - "description": "The Microsoft Subscription offer type to use when creating subscriptions. Only `Production` for standard and `DevTest` for Dev/Test subscriptions are supported for the Non Legacy Subscription Enrollment. For the Legacy Subscription Enrollment also other types can be defined." - }, - "enrollmentAccountId": { - "type": "string", - "description": "ID of the EA Enrollment Account used for the Subscription creation. Should look like this: `/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321`. For more information, review the https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement?tabs=rest-getEnrollments%2Crest-EA#find-accounts-you-have-access-to[Azure docs]." - }, - "subscriptionCreationErrorCooldownSec": { - "type": "number", - "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", - "nullable": true - }, - "useLegacySubscriptionEnrollment": { - "type": "boolean", - "description": "Deprecated: Uses the old Subscription enrollment API in its preview version. This enrollment is less reliable and should not be used for new Azure Platform Integrations." - } - }, - "description": "meshcloud can automatically provision new subscriptions from an Enterprise Enrollment Account owned by your organization. This is suitable for large organizations that have a Microsoft Enterprise Agreement, Microsoft Customer Agreement or a Microsoft Partner Agreement and want to provide a large number of subscriptions in a fully automated fashion." - } - }, - "description": "To provide Azure Subscription for your organization's meshProjects, meshcloud supports using Enterprise Enrollment or allocating from a pool of pre-provisioned subscriptions. One of the subFields `enterpriseEnrollment`, `customerAgreement` or `preProvisioned` must be provided!" - }, - "subscriptionNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." - }, - "groupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names are unique in the managed AAD Tenant." - }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to sub management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true - } - }, - "description": "Replication configuration for Azure (optional, but required for replication)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + "status": { + "required": [ + "isPublic" + ], + "type": "object", + "properties": { + "isPublic": { + "type": "boolean", + "description": "Indicates whether the location has any public platform instances associated with it." + } }, - "metering": { - "required": [ - "processing", - "servicePrincipal" - ], - "type": "object", - "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "Client ID of the service principal for metering" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for credentials-based authentication", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the metering service principal" - }, - "objectId": { - "type": "string", - "description": "Object ID of the service principal for metering" - } - }, - "description": "Service principal configuration for metering access" - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - } - }, - "description": "Metering configuration for Azure (optional, but required for metering)" - } - }, - "description": "Azure configuration, if applicable." + "description": "The current status of the meshLocation." + } } - }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." - }, - "contributingWorkspaces": { + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshBuildingBlockListV2": { + "title": "meshBuildingBlockListV2", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Contains the self link and pagination links (first, last, next, prev). Also includes a link to the related tenant." + }, + "_embedded": { + "required": [ + "meshBuildingBlocks" + ], + "type": "object", + "properties": { + "meshBuildingBlocks": { "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, + "description": "List of meshBuildingBlocks.", "items": { "oneOf": [ { @@ -24935,183 +23244,129 @@ } } }, - "description": "All fields in this section describe the meshPlatform configuration." + "description": "Contains the actual content of the paged response." }, - "status": { + "page": { "type": "object", - "description": "Current status information of the meshPlatform." + "description": "Information about paging." } } }, - "meshCommunicationDefinitionPost": { - "title": "meshCommunicationDefinitionPost", + "api-meshobjects-meshprojects-600031310": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], "type": "object", "properties": { - "status": { + "metadata": { "required": [ - "communicationsOpen", - "communicationsResolved", - "communicationsTotal" + "name", + "ownedByWorkspace" ], "type": "object", "properties": { - "communicationsOpen": { - "type": "number", - "description": "the amount of open (unresolved) communications. This field is only present for communication definitions of type ACTION_REQUIRED, because other types of communications are not meant to be resolved." - }, - "communicationsResolved": { - "type": "number", - "description": "the amount of resolved communications. This field is only present for communication definitions of type ACTION_REQUIRED, because other types of communications are not meant to be resolved." + "name": { + "type": "string", + "description": "The identifier that should be unique within a workspace" }, - "communicationsTotal": { - "type": "number", - "description": "the total amount of communications associated to this definition." + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace that the project should belong to." } - } - } - } - }, - "api-meshobjects-meshcommunicationdefinitions-uuid1963883446": { - "required": [ - "apiVersion", - "kind" - ], - "type": "object", - "properties": { + }, + "description": "Fixed fields that help to identify the meshProject." + }, "apiVersion": { "type": "string", - "description": "API version of the resource." + "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "Kind of mesh object, always 'MeshCommunicationDefinition'." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." }, "spec": { - "type": "object", - "properties": { - "communication": { - "required": [ - "dueDate", - "message", - "title", - "type" - ], - "type": "object", - "properties": { - "skipEmailNotifications": { - "type": "boolean", - "description": "Whether to skip sending email notifications for this communication. Defaults to false.", - "nullable": true - }, - "dueDate": { - "type": "string", - "description": "The due date in ISO 8601 format." - }, - "type": { - "type": "string", - "description": "The type of communication: ACTION_REQUIRED or NOTIFICATION." - }, - "message": { - "type": "string", - "description": "The message content of the communication." - }, - "title": { - "type": "string", - "description": "The title of the communication definition." - } - } - } - } - } - } - }, - "meshProjectGroupBindingV3": { - "title": "meshProjectGroupBindingV3", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata" - ], - "type": "object", - "properties": { - "targetRef": { "required": [ "displayName", - "name", - "ownedByWorkspace" + "tags" ], "type": "object", "properties": { - "displayName": { + "substitutePaymentMethodIdentifier": { "type": "string", - "description": "The name of the project the group is assigned to." + "description": "The substitute payment method of the project.", + "nullable": true }, - "name": { + "paymentMethodIdentifier": { "type": "string", - "description": "The identifier of the project the group is assigned to." + "description": "The payment method of the project.", + "nullable": true }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace which contains the project." - } - } - }, - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { + "displayName": { "type": "string", - "description": "The meshProjectGroupBinding identifier as 'name' to uniquely identify the meshProjectGroupBinding." + "description": "The display name of the project as it is shown in meshPanel." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the project. Keep in mind, that values are an array." } }, - "description": "Always contains the 'name' to uniquely identify the meshProjectGroupBinding." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshProjectGroupBinding datatype. Matches the version part provided within the `Accept` request header." - }, + "description": "All fields in this section describe the project." + } + } + }, + "meshProjectListV2": { + "title": "meshProjectListV2", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { "_links": { "type": "object", - "description": "Currently only contains the self link." + "description": "Currently only contains the self link and pagination links." }, - "subject": { + "_embedded": { "required": [ - "name" + "meshProjects" ], "type": "object", "properties": { - "name": { - "type": "string", - "description": "The identifier of this user group." + "meshProjects": { + "type": "array", + "description": "List of meshProjects.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } } - } - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProjectGroupBinding' for this endpoint." + }, + "description": "Contains the actual content of the paged response." }, - "roleRef": { - "required": [ - "name" - ], + "page": { "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this group." - } - } + "description": "Information about paging." } } }, - "meshPaymentMethodV2": { - "title": "meshPaymentMethodV2", + "api-meshobjects-meshplatforms-uuid337042054": { "required": [ - "_links", "apiVersion", "kind", "metadata", @@ -25122,287 +23377,180 @@ "metadata": { "required": [ "name", - "ownedByWorkspace" + "ownedByWorkspace", + "uuid" ], "type": "object", "properties": { + "deletedOn": { + "type": "string", + "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", + "nullable": true + }, "name": { "type": "string", - "description": "The paymentMethodIdentifier as 'name'." + "description": "The platform identifier as 'name' to identify the meshPlatform." + }, + "uuid": { + "type": "string", + "description": "The UUID of the meshPlatform." }, "ownedByWorkspace": { "type": "string", - "description": "The workspaceIdentifier as 'ownedByWorkspace'." + "description": "The identifier of the workspace that owns this meshPlatform." } }, - "description": "Always contains the 'name' and (optional) 'ownedByWorkspace' to uniquely identify the meshPaymentMethod." + "description": "Contains metadata to uniquely identify the meshPlatform." }, "apiVersion": { "type": "string", - "description": "Version of meshPaymentMethod datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshPaymentMethod." + "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPaymentMethod' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." }, "spec": { "required": [ - "displayName" + "availability", + "config", + "displayName", + "locationRef", + "quotaDefinitions" ], "type": "object", "properties": { - "amount": { - "type": "number", - "description": "The amount of the meshPaymentMethod.", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the meshPaymentMethod as it is shown in meshPanel." - }, - "expirationDate": { + "documentationUrl": { "type": "string", - "description": "The expiration date (yyyy-MM-dd) of the meshPaymentMethod. The date is considered as UTC.", + "description": "URL for platform documentation.", "nullable": true }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshPaymentMethod. Keep in mind, that values are an array.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshPaymentMethod." - } - } - }, - "api-meshobjects-meshserviceinstances-serviceInstanceId-343819711": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "instanceId", - "marketplaceIdentifier", - "ownedByProject", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The project that this Service Instance belongs to." - }, - "marketplaceIdentifier": { - "type": "string", - "description": "The identifier of the marketplace that this Service Instance belongs to." - }, - "instanceId": { - "type": "string", - "description": "The instance id this Service Instance should use." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace that this Service Instance belongs to." - } - }, - "description": "Metadata and more fields to identify the Service Instance." - }, - "apiVersion": { - "type": "string", - "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." - }, - "spec": { - "required": [ - "creator", - "displayName", - "planId", - "serviceId" - ], - "type": "object", - "properties": { - "creator": { - "type": "string", - "description": "The creator's username that creates this Service Instance" - }, - "displayName": { - "type": "string", - "description": "The display name of the Service Instance." - }, - "planId": { - "type": "string", - "description": "The id of the plan for this Service Instance" - }, - "serviceId": { - "type": "string", - "description": "The id of the service for the Service Instance" - } - }, - "description": "Specifications for the Service Instance." - } - } - }, - "meshTagDefinitionPost": { - "title": "meshTagDefinitionPost", - "type": "object" - }, - "meshProjectUserBindingListV3": { - "title": "meshProjectUserBindingListV3", - "required": [ - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshProjectUserBindings" - ], - "type": "object", - "properties": { - "meshProjectUserBindings": { + "quotaDefinitions": { "type": "array", - "description": "List of meshProjectUserBindings.", + "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For unsupported platform types (those not listed above), quota definitions have to be provided as an empty array. For supported platform types, providing an empty array will remove all existing quota definitions of the given platform.", "items": { + "required": [ + "autoApprovalThreshold", + "description", + "label", + "maxValue", + "minValue", + "quotaKey" + ], "type": "object", "properties": { - "targetRef": { - "required": [ - "displayName", - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The name of the project the user is assigned to." - }, - "name": { - "type": "string", - "description": "The identifier of the project the user is assigned to." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace which contains the project." - } - } + "quotaKey": { + "type": "string", + "description": "The key of the quota as it is required by the cloud platform." }, - "subject": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The username of the referenced user." - } - } + "minValue": { + "type": "number", + "description": "Minimum allowed value for this quota." }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this user." - } - } + "unit": { + "type": "string", + "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", + "nullable": true + }, + "autoApprovalThreshold": { + "type": "number", + "description": "Threshold below which quota requests are automatically approved." + }, + "maxValue": { + "type": "number", + "description": "Maximum allowed value for this quota." + }, + "description": { + "type": "string", + "description": "Detailed description of what this quota controls." + }, + "label": { + "type": "string", + "description": "Human-readable label for the quota." } } } - } - } - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "api-meshobjects-meshintegrations-uuid220444133": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "uuid": { + }, + "endpoint": { "type": "string", - "description": "The UUID that uniquely identifies the integration across all integrations.", + "description": "The web console URL endpoint of the platform.", "nullable": true }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace identifier that owns this integration." - } - }, - "description": "Contains identifiers and ownership information for the integration." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." - }, - "spec": { - "required": [ - "config", - "displayName", - "runnerRef" - ], - "type": "object", - "properties": { + "locationRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "The kind of the referenced location, always 'meshLocation'." + }, + "name": { + "type": "string", + "description": "The identifier of the location." + } + }, + "description": "Reference to the location where this platform is situated." + }, "displayName": { "type": "string", - "description": "The display name of the integration." + "description": "The human-readable display name of the meshPlatform." + }, + "supportUrl": { + "type": "string", + "description": "URL for platform support documentation.", + "nullable": true + }, + "description": { + "type": "string", + "description": "description of the meshPlatform.", + "nullable": true }, - "runnerRef": { + "availability": { "required": [ - "kind", - "uuid" + "publicationState", + "restriction" ], "type": "object", "properties": { - "kind": { + "publicationState": { "type": "string", - "description": "This is a fixed value \"meshBuildingBlockRunner\"." + "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." }, - "uuid": { + "restriction": { "type": "string", - "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." + }, + "restrictedToWorkspaces": { + "type": "array", + "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } } }, - "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + "description": "Availability configuration for the meshPlatform." + }, + "readme": { + "type": "string", + "description": "README about the meshPlatform in markdown format", + "nullable": true }, "config": { "required": [ @@ -25410,2017 +23558,975 @@ ], "type": "object", "properties": { - "github": { + "kubernetes": { "required": [ - "appId", - "appPrivateKey", - "baseUrl", - "owner" + "baseUrl" ], "type": "object", "properties": { - "owner": { - "type": "string", - "description": "The GitHub organization or user that owns the repositories." - }, - "baseUrl": { - "type": "string", - "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." - }, - "appPrivateKey": { - "type": "string", - "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." + "replication": { + "required": [ + "clientConfig", + "namespaceNamePattern" + ], + "type": "object", + "properties": { + "namespaceNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. Kubernetes Namespace Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client configuration for Kubernetes" + } + }, + "description": "Replication configuration for Kubernetes (optional, but required for replication)" }, - "appId": { - "type": "string", - "description": "The GitHub App ID for authentication." - } - }, - "description": "GitHub-specific integration configuration." - }, - "azuredevops": { - "required": [ - "baseUrl", - "organization", - "personalAccessToken" - ], - "type": "object", - "properties": { "baseUrl": { "type": "string", - "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." + "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" }, - "organization": { - "type": "string", - "description": "The Azure DevOps organization name." + "metering": { + "required": [ + "clientConfig", + "processing" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client config for metering" + } + }, + "description": "Replication configuration for Kubernetes (optional, but required for metering)" }, - "personalAccessToken": { - "type": "string", - "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", + "nullable": true } }, - "description": "Azure DevOps-specific integration configuration." + "description": "Configuration for Kubernetes" }, - "gitlab": { + "azurerg": { "required": [ - "baseUrl" + "entraTenant" ], "type": "object", "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." - } - }, - "description": "GitLab-specific integration configuration." - }, - "type": { - "type": "string", - "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab'." - } - }, - "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." - } - }, - "description": "All fields in this section describe the integration configuration." - } - } - }, - "meshCommunicationList": { - "title": "meshCommunicationList", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshCommunications" - ], - "type": "object", - "properties": { - "meshCommunications": { - "type": "array", - "description": "List of meshCommunications.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "meshBuildingBlockDefinitionListV1": { - "title": "meshBuildingBlockDefinitionListV1", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Contains the self link and pagination links (first, last, next, prev). Also includes a link to the related tenant." - }, - "_embedded": { - "required": [ - "meshBuildingBlockDefinitions" - ], - "type": "object", - "properties": { - "meshBuildingBlockDefinitions": { - "type": "array", - "description": "List of meshBuildingBlockDefinitions.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "meshWorkspaceList": { - "title": "meshWorkspaceList", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshWorkspaces" - ], - "type": "object", - "properties": { - "meshWorkspaces": { - "type": "array", - "description": "List of meshWorkspaces.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "api-meshobjects-meshcommunicationdefinitions-1419667539": { - "required": [ - "apiVersion", - "kind" - ], - "type": "object", - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the resource." - }, - "kind": { - "type": "string", - "description": "Kind of mesh object, always 'meshCommunicationDefinition'." - }, - "spec": { - "type": "object", - "properties": { - "communication": { - "required": [ - "dueDate", - "message", - "title", - "type" - ], - "type": "object", - "properties": { - "skipEmailNotifications": { - "type": "boolean", - "description": "Whether to skip sending email notifications for this communication. Defaults to false.", - "nullable": true - }, - "dueDate": { - "type": "string", - "description": "Due date in ISO 8601 format." - }, - "type": { - "type": "string", - "description": "Type of communication: ACTION_REQUIRED or NOTIFICATION." - }, - "message": { - "type": "string", - "description": "Content of the message." - }, - "title": { - "type": "string", - "description": "Title of the communication." - } - } - } - } - } - } - }, - "api-metadata-openstackProjectMetadata-1305671199": { - "required": [ - "project-id" - ], - "type": "object", - "properties": { - "project-id": { - "type": "string", - "description": "The ID of the project metadata information shall be retrieved for." - } - } - }, - "openStackProjectMetadata": { - "title": "openStackProjectMetadata", - "required": [ - "customer-display-name", - "customer-identifier", - "project-display-name", - "project-identifier", - "tags" - ], - "type": "object", - "properties": { - "customer-display-name": { - "type": "string", - "description": "Human readable customer name." - }, - "project-identifier": { - "type": "string", - "description": "Immutable unique identifier of the project." - }, - "customer-identifier": { - "type": "string", - "description": "Immutable unique identifier of the customer" - }, - "project-display-name": { - "type": "string", - "description": "Human readable project name." - }, - "tags": { - "required": [ - "costCenter", - "customNumber" - ], - "type": "object", - "properties": { - "costCenter": { - "type": "array", - "description": "A cost center number could be a custom tag.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "customNumber": { - "type": "array", - "description": "And any further attribute can be provided as a tag.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Custom tags specified on the project." - } - } - }, - "meshIntegration-Put-azure_devops": { - "title": "meshIntegration-Put-azure_devops", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "createdOn": { - "type": "string", - "description": "Timestamp when the integration was created. This field is automatically set by the system and cannot be modified.", - "nullable": true - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies the integration across all integrations.", - "nullable": true - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace identifier that owns this integration." - } - }, - "description": "Contains identifiers and ownership information for the integration." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshIntegration." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." - }, - "spec": { - "required": [ - "config", - "displayName", - "runnerRef" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name of the integration." - }, - "runnerRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshBuildingBlockRunner\"." - }, - "uuid": { - "type": "string", - "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." - } - }, - "description": "Reference to the Building Block Runner that will execute building blocks using this integration." - }, - "config": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "github": { - "required": [ - "appId", - "appPrivateKey", - "baseUrl", - "owner" - ], - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The GitHub organization or user that owns the repositories." - }, - "baseUrl": { - "type": "string", - "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." - }, - "appPrivateKey": { - "type": "string", - "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." - }, - "appId": { - "type": "string", - "description": "The GitHub App ID for authentication." - } - }, - "description": "GitHub-specific integration configuration." - }, - "azuredevops": { - "required": [ - "baseUrl", - "organization", - "personalAccessToken" - ], - "type": "object", - "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." - }, - "organization": { - "type": "string", - "description": "The Azure DevOps organization name." + "replication": { + "required": [ + "resourceGroupNamePattern", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscription", + "userGroupNamePattern", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "administrativeUnitId": { + "type": "string", + "description": "Administrative unit ID for group placement", + "nullable": true + }, + "userGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" + }, + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } + }, + "description": "Service principal configuration for replicator access." + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, Azure sends Invitation mails to invited users" + } + }, + "description": "Optional B2B user invitation configuration" + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Prefix for all labels created by meshStack" + } + }, + "description": "Tenant tags configuration" + }, + "userLookUpStrategy": { + "type": "string", + "description": "User lookup strategy ('userPrincipalName' or 'email')" + }, + "subscription": { + "type": "string", + "description": "The Subscription that will contain all the created Resource Groups" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Preserve user groups and replicated permission after tenant deletion" + }, + "resourceGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Enable or disable hierarchical management group assignment", + "nullable": true + } + }, + "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" }, - "personalAccessToken": { + "entraTenant": { "type": "string", - "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Azure DevOps-specific integration configuration." + "description": "Configuration for Azure Resource Group" }, - "gitlab": { - "required": [ - "baseUrl" - ], + "gcp": { "type": "object", "properties": { - "baseUrl": { - "type": "string", - "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." - } - }, - "description": "GitLab-specific integration configuration." - }, - "type": { - "type": "string", - "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab'." - } - }, - "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." - } - }, - "description": "All fields in this section describe the integration configuration." - } - } - }, - "meshCommunicationDefinition": { - "title": "meshCommunicationDefinition", - "required": [ - "_links", - "apiVersion", - "kind" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "uuid" - ], - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "Unique identifier." - } - } - }, - "apiVersion": { - "type": "string", - "description": "API version." - }, - "_links": { - "type": "object", - "description": "Currently only contains the self link." - }, - "kind": { - "type": "string", - "description": "Resource kind, always 'meshCommunicationDefinition'." - }, - "spec": { - "type": "object", - "properties": { - "communication": { - "required": [ - "dueDate", - "message", - "title", - "type" - ], - "type": "object", - "properties": { - "skipEmailNotifications": { - "type": "boolean", - "description": "Whether to skip sending email notifications for this communication. Defaults to false.", - "nullable": true - }, - "dueDate": { - "type": "string", - "description": "Due date (ISO format)." - }, - "type": { - "type": "string", - "description": "Type of communication (e.g. ACTION_REQUIRED)." + "replication": { + "required": [ + "allowHierarchicalFolderAssignment", + "billingAccountId", + "customerId", + "domain", + "gcpRoleMappings", + "groupNamePattern", + "projectIdPattern", + "projectNamePattern", + "serviceAccount", + "skipUserGroupPermissionCleanup", + "userLookupStrategy" + ], + "type": "object", + "properties": { + "gcpRoleMappings": { + "type": "array", + "description": "Role mappings for GCP with project role references", + "items": { + "required": [ + "gcpRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "gcpRole": { + "type": "string", + "description": "GCP role to assign" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, + "userLookupStrategy": { + "type": "string", + "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" + }, + "projectNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. The result must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. When length restrictions are applied, the abbreviation will be in the middle and marked by a single-quote." + }, + "projectIdPattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. The resulting string must not exceed a total length of 30 characters. Only alphanumeric + hyphen are allowed. We recommend that configuration include at least 3 characters of the random parameter to reduce the chance of naming collisions as the project Ids must be globally unique within GCP." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Namespace prefix for tenant tags" + } + }, + "description": "Tenant tags configuration" + }, + "domain": { + "type": "string", + "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." + }, + "customerId": { + "type": "string", + "description": "A Google Customer ID. It typically starts with a 'C'." + }, + "allowHierarchicalFolderAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + }, + "billingAccountId": { + "type": "string", + "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider." + } + }, + "description": "Service account workload identity configuration (required when type is 'workloadIdentity')" + }, + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Configuration of the service account used for GCP API access" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + }, + "groupNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." + } + }, + "description": "Replication configuration for GCP (optional, but required for replication)" + }, + "metering": { + "required": [ + "bigqueryTable", + "partitionTimeColumn", + "processing", + "serviceAccount" + ], + "type": "object", + "properties": { + "partitionTimeColumn": { + "type": "string", + "description": "Column name for partitioning time-based data" + }, + "additionalFilter": { + "type": "string", + "description": "Additional SQL filter for billing data (optional)", + "nullable": true + }, + "bigqueryTableForCarbonFootprint": { + "type": "string", + "description": "BigQuery table containing carbon footprint data (optional)", + "nullable": true + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "carbonFootprintDataCollectionStartMonth": { + "type": "string", + "description": "Start month for carbon footprint data collection (optional)", + "nullable": true + }, + "bigqueryTable": { + "type": "string", + "description": "BigQuery table containing billing data export" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account for metering, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider for metering access." + } + }, + "description": "Service account workload identity configuration for metering (required when type is 'workloadIdentity')" + }, + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for metering service account. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Configuration of the service account used for GCP metering API access" + } + }, + "description": "Metering configuration for GCP (optional, but required for metering)" + } + }, + "description": "Configuration for Google Cloud Platform (GCP)" }, - "message": { - "type": "string", - "description": "Message content." + "openshift": { + "required": [ + "baseUrl" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "clientConfig", + "enableTemplateInstantiation", + "identityProviderName", + "projectNamePattern" + ], + "type": "object", + "properties": { + "openshiftRoleMappings": { + "type": "array", + "description": "Role mappings for GCP with project role references", + "items": { + "required": [ + "openshiftRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "openshiftRole": { + "type": "string", + "description": "OpenShift role to assign" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "identifier of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, + "webConsoleUrl": { + "type": "string", + "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", + "nullable": true + }, + "projectNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. OpenShift Project Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + } + }, + "description": "Tenant tags configuration" + }, + "identityProviderName": { + "type": "string", + "description": "Identity provider name" + }, + "enableTemplateInstantiation": { + "type": "boolean", + "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client configuration for OpenShift" + } + }, + "description": "Replication configuration for OpenShift (optional, but required for replication)" + }, + "baseUrl": { + "type": "string", + "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" + }, + "metering": { + "required": [ + "clientConfig", + "processing" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Access token for Kubernetes API authentication. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Kubernetes client configuration for metering access" + } + }, + "description": "Metering configuration for OpenShift (optional, but required for metering)" + }, + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the OpenShift cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", + "nullable": true + } + }, + "description": "Configuration for OpenShift" }, - "title": { - "type": "string", - "description": "Title of the communication." - } - } - } - } - }, - "status": { - "required": [ - "communicationsOpen", - "communicationsResolved", - "communicationsTotal" - ], - "type": "object", - "properties": { - "communicationsOpen": { - "type": "number", - "description": "the amount of open (unresolved) communications. This field is only present for communication definitions of type ACTION_REQUIRED, because other types of communications are not meant to be resolved." - }, - "communicationsResolved": { - "type": "number", - "description": "the amount of resolved communications. This field is only present for communication definitions of type ACTION_REQUIRED, because other types of communications are not meant to be resolved." - }, - "communicationsTotal": { - "type": "number", - "description": "the total amount of communications associated to this definition." - } - } - } - } - }, - "meshWorkspaceGroupBinding": { - "title": "meshWorkspaceGroupBinding", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata" - ], - "type": "object", - "properties": { - "targetRef": { - "required": [ - "displayName", - "name" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The name of the workspace the group is assigned to." - }, - "name": { - "type": "string", - "description": "The identifier of the workspace the group is assigned to." - } - } - }, - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The meshWorkspaceGroupBinding identifier as 'name' to uniquely identify the meshWorkspaceGroupBinding." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshWorkspaceGroupBinding." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshWorkspaceGroupBinding datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Currently only contains the self link." - }, - "subject": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of this workspace user group." - } - } - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceGroupBinding' for this endpoint." - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this group." - } - } - } - } - }, - "meshProjectV2": { - "title": "meshProjectV2", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "deletedOn": { - "type": "string", - "description": "If the meshProject has been submitted for deletion by a Workspace Manager, the date, the date is represented here (e.g. `2020-12-22T09:37:43Z)`. Otherwise this field is missing.", - "nullable": true - }, - "name": { - "type": "string", - "description": "The projectIdentifier as 'name'." - }, - "createdOn": { - "type": "string", - "description": "The meshProject has been created at this date (e.g. `2020-12-22T09:37:43Z`).", - "nullable": true - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspaceIdentifier as 'ownedByWorkspace'." - } - }, - "description": "Always contains the 'name' and 'ownedByWorkspace' to uniquely identify the meshProject." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshProject." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." - }, - "spec": { - "required": [ - "displayName", - "tags" - ], - "type": "object", - "properties": { - "substitutePaymentMethodIdentifier": { - "type": "string", - "description": "The substitutePaymentMethod of the meshProject", - "nullable": true - }, - "paymentMethodIdentifier": { - "type": "string", - "description": "The meshPaymentMethod of the meshProject.", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the meshProject as it is shown in meshPanel." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshProject. Keep in mind, that values are an array." - } - }, - "description": "All fields in this section describe the meshProject." - } - } - }, - "api-meshobjects-meshserviceinstances2008903272": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "instanceId", - "marketplaceIdentifier", - "ownedByProject", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The project that this Service Instance belongs to." - }, - "marketplaceIdentifier": { - "type": "string", - "description": "The identifier of the marketplace that this Service Instance belongs to." - }, - "instanceId": { - "type": "string", - "description": "The instance id this Service Instance should use." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace that this Service Instance belongs to." - } - }, - "description": "Metadata and more fields to identify the Service Instance." - }, - "apiVersion": { - "type": "string", - "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." - }, - "spec": { - "required": [ - "creator", - "displayName", - "planId", - "serviceId" - ], - "type": "object", - "properties": { - "creator": { - "type": "string", - "description": "The meshUser's `username` that should be passed to the Open Service Broker via the `X-Broker-API-Originating-Identity` header." - }, - "displayName": { - "type": "string", - "description": "The display name of the Service Instance." - }, - "planId": { - "type": "string", - "description": "The id of the plan for this Service Instance" - }, - "serviceId": { - "type": "string", - "description": "The id of the service for the Service Instance" - } - }, - "description": "Specifications for the Service Instance." - } - } - }, - "api-meshobjects-meshbuildingblockdefinitions-uuid-1197355657": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "ownedByWorkspace", - "uuid" - ], - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "The uuid of the Building Blocks Definition." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the Building Blocks Definition belongs to." - } - }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block Definition. It also contains additional meta information like the Building Block Definition creation date." - }, - "apiVersion": { - "type": "string", - "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." - }, - "spec": { - "required": [ - "description", - "displayName", - "notificationSubscriberUsernames", - "supportedPlatforms", - "targetType", - "useInLandingZonesOnly" - ], - "type": "object", - "properties": { - "symbol": { - "type": "string", - "description": "The symbol of the Building Block Definition as it is shown in meshPanel. (optional)", - "nullable": true - }, - "documentationUrl": { - "type": "string", - "description": "The URL pointing to documentation of the Building Block Definition. (optional)", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the Building Block Definition as it is shown in meshPanel." - }, - "supportUrl": { - "type": "string", - "description": "The URL pointing to support of the Building Block Definition. (optional)", - "nullable": true - }, - "description": { - "type": "string", - "description": "The description of the Building Block Definition as it is shown in meshPanel." - }, - "targetType": { - "type": "string", - "description": "The type of Building Block Definition. (One of [TENANT_LEVEL, WORKSPACE_LEVEL])" - }, - "runTransparency": { - "type": "boolean", - "description": "Specifies the Building Block Definition run control. When set to true, both platform teams and workspace users can view detailed run logs and re-run building blocks. When set to false (default), only platform teams have this access. (Optional)", - "nullable": true - }, - "supportedPlatforms": { - "type": "array", - "description": "List of the platforms this Building Block Definition supports", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "notificationSubscriberUsernames": { - "type": "array", - "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" + "aks": { + "required": [ + "baseUrl" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "accessToken", + "aksClusterName", + "aksResourceGroup", + "aksSubscriptionId", + "groupNamePattern", + "namespaceNamePattern", + "sendAzureInvitationMail", + "servicePrincipal", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "administrativeUnitId": { + "type": "string", + "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "nullable": true + }, + "aksSubscriptionId": { + "type": "string", + "description": "Subscription ID for the AKS cluster" + }, + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "entraTenant", + "objectId" + ], + "type": "object", + "properties": { + "entraTenant": { + "type": "string", + "description": "Domain name or ID of the Entra Tenant that holds the Service Principal." + }, + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of AKS authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } + }, + "description": "Service principal configuration for replicator EntraID access to manage groups that are used for RBAC in the AKS cluster." + }, + "redirectUrl": { + "type": "string", + "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation.", + "nullable": true + }, + "aksResourceGroup": { + "type": "string", + "description": "Resource group for the AKS cluster" + }, + "namespaceNamePattern": { + "type": "string", + "description": "Pattern for naming namespaces in AKS" + }, + "userLookUpStrategy": { + "type": "string", + "description": "Strategy for user lookup in Azure ('userPrincipalName' or 'email')" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "Flag to send Azure invitation emails. When true, meshStack instructs Azure to send out Invitation mails to invited users." + }, + "aksClusterName": { + "type": "string", + "description": "Name of the AKS cluster" + }, + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the Kubernetes service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "groupNamePattern": { + "type": "string", + "description": "Pattern for naming groups in AKS" + } + }, + "description": "Replication configuration for AKS (optional, but required for replication)" + }, + "baseUrl": { + "type": "string", + "description": "Base URL of the AKS cluster" + }, + "metering": { + "required": [ + "clientConfig" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + } + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Processing configuration for metering data" + } + }, + "description": "Replication configuration for AKS (optional, but required for metering)" + }, + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", + "nullable": true + } }, - { - "type": "number" - } - ] - } - }, - "useInLandingZonesOnly": { - "type": "boolean", - "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." - } - }, - "description": "All fields in this section describe the Building Block Definition." - } - } - }, - "meshLocation-Post": { - "title": "meshLocation-Post", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier that uniquely identifies the meshLocation." - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies the meshLocation. This is a common attribute for all meshObjects, but in case of a meshLocation it is not used for referencing the location. Instead the name (identifier) is used.", - "nullable": true - } - }, - "description": "Contains the identifiers for the meshLocation." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshLocation datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshLocation." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLocation' for this endpoint." - }, - "spec": { - "required": [ - "displayName" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name of the meshLocation shown in the UI." - }, - "description": { - "type": "string", - "description": "An optional description of the meshLocation.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshLocation configuration." - }, - "status": { - "required": [ - "isPublic" - ], - "type": "object", - "properties": { - "isPublic": { - "type": "boolean", - "description": "Indicates whether the location has any public platform instances associated with it." - } - }, - "description": "The current status of the meshLocation." - } - } - }, - "api-meshobjects-meshpaymentmethods-identifier486549215": { - "type": "object" - }, - "meshPlatformTypeV1Put": { - "title": "meshPlatformTypeV1Put", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier that uniquely identifies the meshPlatformType." - }, - "createdOn": { - "type": "string", - "description": "Timestamp when the meshPlatformType was created.", - "nullable": true - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies the meshPlatformType across all platform types.", - "nullable": true - } - }, - "description": "Contains the identifiers for the meshPlatformType." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshPlatformType datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshPlatformType." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatformType' for this endpoint." - }, - "spec": { - "required": [ - "category", - "displayName", - "icon" - ], - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name of the meshPlatformType shown in the UI." - }, - "icon": { - "type": "string", - "description": "The icon used to display the platform type in the UI. This must be provided as a base64 encoded data image. Size should be kept small to ensure fast loading times and efficient storage." - }, - "defaultEndpoint": { - "type": "string", - "description": "The default endpoint URL for the platform type. This will be used as a default value when creating platform instances. The default endpoint should be a link to a web portal of the cloud platform for example.", - "nullable": true - }, - "category": { - "type": "string", - "description": "The platform category. For custom platform types, this is always 'CUSTOM'. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." - } - }, - "description": "All fields in this section describe the meshPlatformType configuration." - }, - "status": { - "required": [ - "lifecycleState" - ], - "type": "object", - "properties": { - "lifecycleState": { - "type": "string", - "description": "The lifecycle state of the platform type. Can be 'ACTIVE' or 'DEACTIVATED'. Deactivated platform types cannot be used to create new platform instances." - } - }, - "description": "The current status of the meshPlatformType." - } - } - }, - "meshBuildingBlockPostV2": { - "title": "meshBuildingBlockPostV2", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "createdOn", - "ownedByWorkspace", - "uuid" - ], - "type": "object", - "properties": { - "markedForDeletionOn": { - "type": "string", - "description": "If the Building Block has been marked for deletion, the date when a user requested the deletion is provided via this field. e.g. `2020-12-22T09:37:43Z`", - "nullable": true - }, - "markedForDeletionBy": { - "type": "string", - "description": "If the Building Block has already been deleted, the username of the user who triggered the deletion is provided here.", - "nullable": true - }, - "createdOn": { - "type": "string", - "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." - }, - "uuid": { - "type": "string", - "description": "The UUID to uniquely identify the Building Block." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the Building Blocks belongs to." - } - }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." - }, - "apiVersion": { - "type": "string", - "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a Building Block." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." - }, - "spec": { - "required": [ - "buildingBlockDefinitionVersionRef", - "displayName", - "inputs", - "parentBuildingBlocks", - "targetRef" - ], - "type": "object", - "properties": { - "parentBuildingBlocks": { - "type": "array", - "description": "List of inputs, which are set on the Building Block.", - "items": { - "required": [ - "buildingBlockUuid", - "definitionUuid" - ], - "type": "object", - "properties": { - "buildingBlockUuid": { - "type": "string", - "description": "The UUID of the parent Building Block." - }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition of the parent Building Block." - } - } - } - }, - "targetRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshTenant\"" + "description": "Configuration for Azure Kubernetes Service (AKS)" }, - "uuid": { - "type": "string", - "description": "The uuid of the tenant for this Building Block" - } - }, - "description": "The reference to either a tenant or workspace the Building Block is located on." - }, - "inputs": { - "type": "array", - "description": "List of inputs, which are set on the Building Block.", - "items": { - "required": [ - "key", - "value", - "valueType" - ], - "type": "object", - "properties": { - "valueType": { - "type": "string", - "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." - }, - "value": { - "type": "string", - "description": "The value, which is set on this input." - }, - "key": { - "type": "string", - "description": "The key of the input as set on the related Building Block Definition." - } - } - } - }, - "displayName": { - "type": "string", - "description": "The display name of the Building Block as it is shown in meshPanel." - }, - "buildingBlockDefinitionVersionRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { + "type": { "type": "string", - "description": "This is a fixed value \"meshBuildingBlockDefinitionVersion\"" + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." }, - "uuid": { - "type": "string", - "description": "The uuid of the meshBuildingBlockDefinitionVersion for this Building Block" - } - }, - "description": "The reference to the meshBuildingBlockDefinitionVersion for this Building Block" - } - }, - "description": "All fields in this section describe the Building Block." - }, - "status": { - "required": [ - "forcePurge", - "outputs", - "status" - ], - "type": "object", - "properties": { - "outputs": { - "type": "array", - "description": "List of outputs, which are set on the Building Block. Empty, just after creation.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "forcePurge": { - "type": "boolean", - "description": "Indicates whether this building block was marked to be purged." - }, - "status": { - "type": "string", - "description": "The status of the Building Block. One of WAITING_FOR_DEPENDENT_INPUT, WAITING_FOR_OPERATOR_INPUT, WAITING_FOR_USER_INPUT, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ABORTED." - } - }, - "description": "All fields in this section describe the current status of the Building Block." - } - } - }, - "meshBuildingBlockDefinitionPostV1": { - "title": "meshBuildingBlockDefinitionPostV1", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "createdOn", - "ownedByWorkspace", - "tags", - "uuid" - ], - "type": "object", - "properties": { - "createdOn": { - "type": "string", - "description": "The Building Block Definition has been created at this date (e.g. `2020-12-22T09:37:43Z`)." - }, - "uuid": { - "type": "string", - "description": "The UUID to uniquely identify the Building Block Definition." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the Building Block Definition. Keep in mind, that values are an array." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the Building Blocks Definition belongs to." - } - }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block Definition. It also contains additional meta information like the Building Block Definition creation date." - }, - "apiVersion": { - "type": "string", - "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a Building Block Definition." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." - }, - "spec": { - "required": [ - "description", - "displayName", - "documentationUrl", - "notificationSubscriberUsernames", - "runTransparency", - "supportUrl", - "supportedPlatforms", - "symbol", - "targetType", - "useInLandingZonesOnly" - ], - "type": "object", - "properties": { - "symbol": { - "type": "string", - "description": "The symbol of the Building Block Definition as it is shown in meshPanel." - }, - "documentationUrl": { - "type": "string", - "description": "The URL pointing to documentation of the Building Block Definition. (optional)" - }, - "displayName": { - "type": "string", - "description": "The display name of the Building Block Definition as it is shown in meshPanel." - }, - "supportUrl": { - "type": "string", - "description": "The URL pointing to support of the Building Block Definition. (optional)" - }, - "description": { - "type": "string", - "description": "The description of the Building Block Definition as it is shown in meshPanel." - }, - "targetType": { - "type": "string", - "description": "The type of Building Block Definition. (One of [TENANT_LEVEL, WORKSPACE_LEVEL])" - }, - "runTransparency": { - "type": "boolean", - "description": "Specifies the Building Block Definition run control. When set to true, both platform teams and workspace users can view detailed run logs and re-run building blocks. When set to false (default), only platform teams have this access." - }, - "supportedPlatforms": { - "type": "array", - "description": "List of the platforms this Building Block Definition supports", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "notificationSubscriberUsernames": { - "type": "array", - "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "useInLandingZonesOnly": { - "type": "boolean", - "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." - } - }, - "description": "All fields in this section describe the Building Block Definition." - }, - "status": { - "required": [ - "latestReleasedVersion", - "latestVersion", - "versions" - ], - "type": "object", - "properties": { - "versions": { - "type": "array", - "description": "List of meshBuildingBlockDefinitionVersions, which exist for the Building Block Definition.", - "items": { - "required": [ - "state", - "versionNumber", - "versionUuid" - ], - "type": "object", - "properties": { - "versionUuid": { - "type": "string", - "description": "The uuid of the listed version" - }, - "state": { - "type": "string", - "description": "The state of the listed version. (One of [DRAFT, RELEASED])" - }, - "versionNumber": { - "type": "number", - "description": "The number of the listed version." - } - } - } - }, - "latestReleasedVersion": { - "type": "number", - "description": "The number of the latest version based on this Building Block Definition not including a possible draft version." - }, - "latestVersion": { - "type": "number", - "description": "The number of the latest version based on this Building Block Definition including a possible draft version." - } - }, - "description": "All fields in this section describe the current status of the Building Block Definition." - } - } - }, - "meshServiceInstanceGet": { - "title": "meshServiceInstanceGet", - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "instanceId", - "marketplaceIdentifier", - "ownedByProject", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The project that this Service Instance belongs to." - }, - "marketplaceIdentifier": { - "type": "string", - "description": "The identifier of the marketplace that this Service Instance belongs to." - }, - "instanceId": { - "type": "string", - "description": "The instance id this Service Instance should use." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace that this Service Instance belongs to." - } - }, - "description": "Metadata and more fields to identify the Service Instance." - }, - "apiVersion": { - "type": "string", - "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." - }, - "spec": { - "required": [ - "creator", - "displayName", - "planId", - "serviceId" - ], - "type": "object", - "properties": { - "creator": { - "type": "string", - "description": "The meshUser `username` recorded as the creator of this Service Instance." - }, - "displayName": { - "type": "string", - "description": "The display name of the Service Instance." - }, - "planId": { - "type": "string", - "description": "The id of the plan for this Service Instance" - }, - "serviceId": { - "type": "string", - "description": "The id of the service for the Service Instance" - } - }, - "description": "Specifications for the Service Instance." - } - } - }, - "meshProjectRoleV1": { - "title": "meshProjectRoleV1", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "tags" - ], - "type": "object", - "properties": { - "deletedAt": { - "type": "string", - "description": "Timestamp when the meshProjectRole was marked for deletion. Only present if the role is deleted.", - "nullable": true - }, - "name": { - "type": "string", - "description": "The name to uniquely identify the meshProjectRole." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshProjectRole. Keep in mind, that values are an array." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshProjectRole." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshProjectRole datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "currently only provides a self link." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProjectRole' for this endpoint." - }, - "spec": { - "required": [ - "name", - "rank" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The display name of the meshProjectRole." - }, - "rank": { - "type": "number", - "description": "The rank of the role. Higher values represent greater privileges. Ranks are used to order project roles, with higher-privilege roles appearing above lower-privilege ones." - }, - "description": { - "type": "string", - "description": "A detailed description of the meshProjectRole and its permissions.", - "nullable": true - } - }, - "description": "All fields in this section describe the meshProjectRole." - } - } - }, - "meshPlatform-Get-V2-azure": { - "title": "meshPlatform-Get-V2-azure", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec", - "status" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace", - "uuid" - ], - "type": "object", - "properties": { - "deletedOn": { - "type": "string", - "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", - "nullable": true - }, - "name": { - "type": "string", - "description": "The platform identifier as 'name' to identify the meshPlatform." - }, - "uuid": { - "type": "string", - "description": "The UUID of the meshPlatform." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace that owns this meshPlatform." - } - }, - "description": "Contains metadata to uniquely identify the meshPlatform." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on this meshObject." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." - }, - "spec": { - "required": [ - "availability", - "config", - "displayName", - "locationRef", - "quotaDefinitions" - ], - "type": "object", - "properties": { - "documentationUrl": { - "type": "string", - "description": "URL for platform documentation.", - "nullable": true - }, - "quotaDefinitions": { - "type": "array", - "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For unsupported platform types (those not listed above), quota definitions have to be provided as an empty array. For supported platform types, providing an empty array will remove all existing quota definitions of the given platform.", - "items": { - "required": [ - "autoApprovalThreshold", - "description", - "label", - "maxValue", - "minValue", - "quotaKey" - ], - "type": "object", - "properties": { - "quotaKey": { - "type": "string", - "description": "The key of the quota as it is required by the cloud platform." - }, - "minValue": { - "type": "number", - "description": "Minimum allowed value for this quota." - }, - "unit": { - "type": "string", - "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", - "nullable": true - }, - "autoApprovalThreshold": { - "type": "number", - "description": "Threshold below which quota requests are automatically approved." - }, - "maxValue": { - "type": "number", - "description": "Maximum allowed value for this quota." - }, - "description": { - "type": "string", - "description": "Detailed description of what this quota controls." - }, - "label": { - "type": "string", - "description": "Human-readable label for the quota." - } - } - } - }, - "endpoint": { - "type": "string", - "description": "The web console URL endpoint of the platform.", - "nullable": true - }, - "locationRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The kind of the referenced location, always 'meshLocation'." - }, - "name": { - "type": "string", - "description": "The identifier of the location." - } - }, - "description": "Reference to the location where this platform is situated." - }, - "displayName": { - "type": "string", - "description": "The human-readable display name of the meshPlatform." - }, - "supportUrl": { - "type": "string", - "description": "URL for platform support documentation.", - "nullable": true - }, - "description": { - "type": "string", - "description": "description of the meshPlatform.", - "nullable": true - }, - "availability": { - "required": [ - "publicationState", - "restriction" - ], - "type": "object", - "properties": { - "publicationState": { - "type": "string", - "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." - }, - "restriction": { - "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." - }, - "restrictedToWorkspaces": { - "type": "array", - "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, - "description": "Availability configuration for the meshPlatform." - }, - "readme": { - "type": "string", - "description": "README about the meshPlatform in markdown format", - "nullable": true - }, - "config": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "kubernetes": { + "aws": { "required": [ - "baseUrl" + "region" ], "type": "object", "properties": { "replication": { "required": [ - "clientConfig", - "namespaceNamePattern" + "accessConfig", + "accountAccessRole", + "accountAliasPattern", + "accountEmailPattern", + "automationAccountRole", + "enforceAccountAlias", + "selfDowngradeAccessRole", + "skipUserGroupPermissionCleanup", + "waitForExternalAvm" ], "type": "object", "properties": { - "namespaceNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. Kubernetes Namespace Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." + "selfDowngradeAccessRole": { + "type": "boolean", + "description": "Flag for self downgrade access role. If set, meshStack will revoke its rights on the managed account that were only needed for initial account creation." }, - "clientConfig": { + "enrollmentConfiguration": { "required": [ - "accessToken" + "accountFactoryProductId", + "managementAccountId" ], "type": "object", "properties": { - "accessToken": { + "managementAccountId": { "type": "string", - "description": "The Access Token of the service account for replicator access." - } - }, - "description": "Client configuration for Kubernetes" - } - }, - "description": "Replication configuration for Kubernetes (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" - }, - "metering": { - "required": [ - "clientConfig" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true + "description": "The Account ID of the management account configured for the platform instance." }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - } - }, - "clientConfig": { - "type": "object", - "description": "Processing configuration for metering data" - } - }, - "description": "Replication configuration for Kubernetes (optional, but required for metering)" - }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", - "nullable": true - } - }, - "description": "Kubernetes configuration, if applicable." - }, - "gcp": { - "type": "object", - "properties": { - "replication": { - "required": [ - "allowHierarchicalFolderAssignment", - "billingAccountId", - "customerId", - "domain", - "gcpRoleMappings", - "groupNamePattern", - "projectIdPattern", - "projectNamePattern", - "serviceAccountConfig", - "skipUserGroupPermissionCleanup", - "userLookupStrategy" - ], - "type": "object", - "properties": { - "gcpRoleMappings": { - "type": "array", - "description": "Role mappings for GCP with project role references", - "items": { - "required": [ - "gcpRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "gcpRole": { - "type": "string", - "description": "GCP role to assign" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the project role" - } - }, - "description": "Reference to a meshProject role" - } + "accountFactoryProductId": { + "type": "string", + "description": "The Product ID of the AWS Account Factory Product in AWS Service Catalog that should be used for enrollment. Starts with `prod-`." } - } - }, - "userLookupStrategy": { - "type": "string", - "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" - }, - "projectNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. The result must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. When length restrictions are applied, the abbreviation will be in the middle and marked by a single-quote." + }, + "description": "With this optional configuration you can provide general information to enroll the created AWS accounts into Control Tower. Make sure you also enable it on the meshLandingZone!. If you don't, meshStack will skip the enrollment of AWS Accounts into Control Tower." }, - "projectIdPattern": { + "accountAccessRole": { "type": "string", - "description": "All the commonly available replicator string template properties are available. The resulting string must not exceed a total length of 30 characters. Only alphanumeric + hyphen are allowed. We recommend that configuration include at least 3 characters of the random parameter to reduce the chance of naming collisions as the project Ids must be globally unique within GCP." + "description": "The name for the Account Access Role that will be rolled out to all managed accounts. Only a name, not an ARN must be set here, as the ARN must be built dynamically for every managed AWS Account. The replicator service user needs to assume this role in all accounts to manage them." }, "tenantTags": { "required": [ @@ -27457,111 +24563,228 @@ }, "description": "Tenant tags configuration" }, - "domain": { + "automationAccountRole": { "type": "string", - "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." + "description": "ARN of the Automation Account Role. The Automation Account contains all AWS StackSets and Lambda Functions that shall be executed via meshLandingZones. E.g. arn:aws:iam::123456789:role/MeshfedAutomationRole." }, - "serviceAccountConfig": { - "type": "object", + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later. " + }, + "automationAccountExternalId": { + "type": "string", + "description": "ExternalId to enhance security in a multi account setup when assuming the automation account role.", + "nullable": true + }, + "accountAliasPattern": { + "type": "string", + "description": "With a String Pattern you can define how the account alias of the created AWS account will be named. E.g. +++#+++{workspaceIdentifier}-+++#+++{projectIdentifier}.\nAttention: Account Alias must be globally unique in AWS. So consider defining a unique prefix." + }, + "accountEmailPattern": { + "type": "string", + "description": "With a String Pattern you can define how the account email address of the created AWS account will be set. E.g. 'aws++++#+++{workspaceIdentifier}.+++#+++{projectIdentifier}@yourcompany.com'. Please consider that this email address is limited to 64 characters! Also have a look at our docs for more information." + }, + "enforceAccountAlias": { + "type": "boolean", + "description": "Flag to enforce account alias. If set, meshStack will guarantee on every replication that the configured Account Alias is applied. Otherwise it will only set the Account Alias once during tenant creation." + }, + "waitForExternalAvm": { + "type": "boolean", + "description": "Flag to wait for external AVM.Please use this setting with care! It is currently very specific to certain tags being present on the account! In general, we recommend not to activate this waitForExternalAvm functionality! In a meshLandingZone an AVM can be triggered via an AWS StackSet or via a Lambda Function. If meshStack shall wait for the AVM to complete when creating a new platform tenant, this flag must be checked. meshStack will identify completion of the AVM by checking the presence of the following tags on the AWS account: 'ProductName' is set to workspace identifier and 'Stage' is set to project identifier." + }, + "allowHierarchicalOrganizationalUnitAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical organizational unit assignment in AWS. If set to true: Accounts can be moved to child organizational units of the organizational unit defined in the Landing Zone. This is useful if you want to manage the account location with a deeper and more granular hierarchy. If set to false: Accounts will always be moved directly to the organizational unit defined in the Landing Zone.", + "nullable": true + }, + "accessConfig": { + "required": [ + "auth", + "organizationRootAccountRole" + ], + "type": "object", "properties": { - "serviceAccountCredentialsConfig": { + "organizationRootAccountRole": { + "type": "string", + "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." + }, + "auth": { "required": [ - "serviceAccountCredentialsB64" + "type" ], "type": "object", "properties": { - "serviceAccountCredentialsB64": { + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" + }, + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { "type": "string", - "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." } }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" + "description": "Authentication configuration for AWS access" }, - "serviceAccountWorkloadIdentityConfig": { - "required": [ - "audience" - ], + "organizationRootAccountExternalId": { + "type": "string", + "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role. ", + "nullable": true + } + }, + "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys." + }, + "awsSso": { + "required": [ + "arn", + "awsRoleMappings", + "groupNamePattern", + "scimEndpoint", + "signInUrl", + "ssoAccessToken" + ], + "type": "object", + "properties": { + "ssoAccessToken": { "type": "object", "properties": { - "serviceAccountEmail": { + "plaintext": { "type": "string", - "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation.", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", "nullable": true }, - "audience": { + "hash": { "type": "string", - "description": "The audience associated with your workload identity pool provider." + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true } }, - "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" + "description": "The AWS IAM Identity Center SCIM Access Token. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "signInUrl": { + "type": "string", + "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." + }, + "scimEndpoint": { + "type": "string", + "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." + }, + "arn": { + "type": "string", + "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." + }, + "awsRoleMappings": { + "type": "array", + "description": "Roles can be mapped from the meshRole to the AWS role.", + "items": { + "required": [ + "permissionSetArns", + "projectRoleRef" + ], + "type": "object", + "properties": { + "projectRoleRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Must always be set to `meshProjectRole`" + }, + "name": { + "type": "string", + "description": "The identifier of the meshProjectRole, e.g. `admin` or `user` or `reader`" + } + }, + "description": "A reference to an existing meshProjectRole" + }, + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + } + }, + "groupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." } }, - "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "customerId": { - "type": "string", - "description": "A Google Customer ID. It typically starts with a 'C'." - }, - "allowHierarchicalFolderAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." - }, - "billingAccountId": { - "type": "string", - "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "groupNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." + "description": "AWS SSO configuration" } }, - "description": "Replication configuration for GCP (optional, but required for replication)" + "description": "Replication configuration for AWS (optional, but required for replication)" }, "metering": { "required": [ - "bigqueryTable", - "partitionTimeColumn", + "accessConfig", + "filter", "processing", - "serviceAccountConfig" + "reservedInstanceFairChargeback", + "savingsPlanFairChargeback" ], "type": "object", "properties": { - "partitionTimeColumn": { - "type": "string", - "description": "Column name for partitioning time-based data" - }, - "serviceAccountConfig": { - "type": "object", - "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for metering service account" - } - }, - "description": "Service account credentials configuration for metering" - } - }, - "description": "Service account configuration for metering. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "additionalFilter": { - "type": "string", - "description": "Additional SQL filter for billing data (optional)", - "nullable": true - }, - "bigqueryTableForCarbonFootprint": { + "filter": { "type": "string", - "description": "BigQuery table containing carbon footprint data (optional)", - "nullable": true + "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." }, "processing": { "type": "object", @@ -27579,22 +24802,100 @@ }, "description": "Processing configuration for metering data" }, - "carbonFootprintDataCollectionStartMonth": { - "type": "string", - "description": "Start month for carbon footprint data collection (optional)", - "nullable": true + "accessConfig": { + "required": [ + "auth", + "organizationRootAccountRole" + ], + "type": "object", + "properties": { + "organizationRootAccountRole": { + "type": "string", + "description": "ARN of the Management Account Role for metering access." + }, + "auth": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role for metering access via workload identity federation" + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" + }, + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for metering service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for metering service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { + "type": "string", + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Authentication configuration for AWS metering access" + }, + "organizationRootAccountExternalId": { + "type": "string", + "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", + "nullable": true + } + }, + "description": "AWS access configuration for metering" }, - "bigqueryTable": { - "type": "string", - "description": "BigQuery table containing billing data export" + "savingsPlanFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for savings plans" + }, + "reservedInstanceFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for reserved instances" } }, - "description": "Metering configuration for GCP (optional, but required for metering)" + "description": "Metering configuration for AWS (optional, but required for metering)" + }, + "region": { + "type": "string", + "description": "AWS region" } }, - "description": "GCP configuration, if applicable." + "description": "Configuration for AWS" }, - "azurerg": { + "azure": { "required": [ "entraTenant" ], @@ -27602,27 +24903,20 @@ "properties": { "replication": { "required": [ - "resourceGroupNamePattern", + "azureRoleMappings", + "blueprintLocation", + "blueprintServicePrincipal", + "groupNamePattern", "servicePrincipal", "skipUserGroupPermissionCleanup", - "subscription", - "userGroupNamePattern", + "subscriptionNamePattern", "userLookUpStrategy" ], "type": "object", "properties": { - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "userGroupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." - }, "servicePrincipal": { "required": [ - "authType", + "auth", "clientId", "objectId" ], @@ -27630,41 +24924,44 @@ "properties": { "clientId": { "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." }, "objectId": { "type": "string", "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." } }, - "description": "Service principal configuration for Azure" - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + "description": "Service principal configuration for replicator access." }, "tenantTags": { "required": [ @@ -27701,65 +24998,50 @@ }, "description": "Tenant tags configuration" }, - "userLookUpStrategy": { + "blueprintLocation": { "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + "description": "The Azure location where replication creates and updates Blueprint Assignments. Note that it's still possible that the Blueprint creates resources in other locations, this is merely the location where the Blueprint Assignment is managed." }, - "subscription": { + "userLookUpStrategy": { "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." + "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." }, - "resourceGroupNamePattern": { + "administrativeUnitId": { "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." - }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", "nullable": true - } - }, - "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" - } - }, - "description": "Azure Resource Group configuration, if applicable." - }, - "openshift": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "clientConfig", - "enableTemplateInstantiation", - "identityProviderName", - "projectNamePattern" - ], - "type": "object", - "properties": { - "openshiftRoleMappings": { + }, + "azureRoleMappings": { "type": "array", - "description": "Role mappings for GCP with project role references", + "description": "Role mappings for Azure with project role references", "items": { "required": [ - "openshiftRole", + "azureRole", "projectRoleRef" ], "type": "object", "properties": { - "openshiftRole": { - "type": "string", - "description": "OpenShift role to assign" + "azureRole": { + "required": [ + "alias", + "id" + ], + "type": "object", + "properties": { + "alias": { + "type": "string", + "description": "Alias for the Azure role" + }, + "id": { + "type": "string", + "description": "ID of the Azure role" + } + }, + "description": "Azure role" }, "projectRoleRef": { "required": [ @@ -27769,7 +25051,7 @@ "properties": { "name": { "type": "string", - "description": "identifier of the project role" + "description": "Name of the project role" } }, "description": "Reference to a meshProject role" @@ -27777,233 +25059,245 @@ } } }, - "webConsoleUrl": { - "type": "string", - "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", - "nullable": true - }, - "projectNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. OpenShift Project Names must be no longer than 63 characters, must start and end with a lowercase letter or number, and may contain lowercase letters, numbers, and hyphens." - }, - "tenantTags": { + "b2bUserInvitation": { "required": [ - "namespacePrefix", - "tagMappers" + "redirectUrl", + "sendAzureInvitationMail" ], "type": "object", "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { + "redirectUrl": { "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." } }, - "description": "Tenant tags configuration" + "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." }, - "identityProviderName": { + "blueprintServicePrincipal": { "type": "string", - "description": "Identity provider name" - }, - "enableTemplateInstantiation": { - "type": "boolean", - "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." + "description": "Object ID of the Enterprise Application belonging to the Microsoft Application 'Azure Blueprints'. meshStack will grant the necessary permissions on managed Subscriptions to this SPN so that it can create System Assigned Managed Identities (SAMI) for Blueprint execution." }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." - } - }, - "description": "Client configuration for OpenShift" - } - }, - "description": "Replication configuration for OpenShift (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" - }, - "metering": { - "required": [ - "clientConfig", - "processing" - ], - "type": "object", - "properties": { - "processing": { + "provisioning": { "type": "object", "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "Access token for Kubernetes API authentication" + "preProvisioned": { + "required": [ + "unusedSubscriptionNamePrefix" + ], + "type": "object", + "properties": { + "unusedSubscriptionNamePrefix": { + "type": "string", + "description": "The prefix that identifies unused subscriptions. Subscriptions will be renamed during meshStack's project replication, at which point they should no longer carry this prefix." + } + }, + "description": "If your organization does not have access to an Enterprise Enrollment, you can alternatively configure meshcloud to consume subscriptions from a pool of externally-provisioned subscriptions. This is useful for smaller organizations that wish to use 'Pay-as-you-go' subscriptions or if you're organization partners with an Azure Cloud Solution Provider to provide your subscriptions. The meshcloud Azure replication detects externally-provisioned subscriptions based on a configurable prefix in the subscription name. Upon assignment to a meshProject, the subscription is inflated with the right Landing Zone configuration and removed from the subscription pool." + }, + "customerAgreement": { + "required": [ + "billingScope", + "destinationEntraId", + "sourceEntraTenant", + "sourceServicePrincipal" + ], + "type": "object", + "properties": { + "sourceServicePrincipal": { + "required": [ + "auth", + "clientId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure Graph API authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the source service principal for replicator access to a customer agreement. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." + }, + "sourceEntraTenant": { + "type": "string", + "description": "Microsoft Entra ID Tenant UUID or domain name used for creating subscriptions. Set this to the Microsoft Entra ID Tenant owning the MCA Billing Scope. If source and destination Microsoft Entra ID Tenants are the same, you need to use UUID." + }, + "subscriptionCreationErrorCooldownSec": { + "type": "number", + "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", + "nullable": true + }, + "destinationEntraId": { + "type": "string", + "description": "Microsoft Entra ID Tenant UUID where created subscriptions should be moved. Set this to the Microsoft Entra ID Tenant hosting your landing zones." + }, + "billingScope": { + "type": "string", + "description": "ID of the MCA Billing Scope used for creating subscriptions. Must follow this format: `/providers/Microsoft.Billing/billingAccounts/$accountId/billingProfiles/$profileId/invoiceSections/$sectionId`." + } + }, + "description": "meshcloud can automatically provision new subscriptions from a Customer Agreement Account owned by your organization. This is suitable for larger organizations that have such a Customer Agreement with Microsoft, and want to provide a large number of subscriptions in a fully automated fashion." + }, + "subscriptionOwnerObjectIds": { + "type": "array", + "description": "One or more principals Object IDs (e.g. user groups, SPNs) that meshStack will ensure have an 'Owner' role assignment on the managed subscriptions. This can be useful to satisfy Azure's constraint of at least one direct 'Owner' role assignment per Subscription. If you want to use a Service Principal please use the Enterprise Application Object ID.\nYou can not use the replicator object ID here, because meshStack always removes its high privilege access after a Subscription creation.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "enterpriseEnrollment": { + "required": [ + "enrollmentAccountId", + "subscriptionOfferType", + "useLegacySubscriptionEnrollment" + ], + "type": "object", + "properties": { + "subscriptionOfferType": { + "type": "string", + "description": "The Microsoft Subscription offer type to use when creating subscriptions. Only `Production` for standard and `DevTest` for Dev/Test subscriptions are supported for the Non Legacy Subscription Enrollment. For the Legacy Subscription Enrollment also other types can be defined." + }, + "enrollmentAccountId": { + "type": "string", + "description": "ID of the EA Enrollment Account used for the Subscription creation. Should look like this: `/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321`. For more information, review the https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement?tabs=rest-getEnrollments%2Crest-EA#find-accounts-you-have-access-to[Azure docs]." + }, + "subscriptionCreationErrorCooldownSec": { + "type": "number", + "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", + "nullable": true + }, + "useLegacySubscriptionEnrollment": { + "type": "boolean", + "description": "Deprecated: Uses the old Subscription enrollment API in its preview version. This enrollment is less reliable and should not be used for new Azure Platform Integrations." + } + }, + "description": "meshcloud can automatically provision new subscriptions from an Enterprise Enrollment Account owned by your organization. This is suitable for large organizations that have a Microsoft Enterprise Agreement, Microsoft Customer Agreement or a Microsoft Partner Agreement and want to provide a large number of subscriptions in a fully automated fashion." } }, - "description": "Kubernetes client configuration for metering access" + "description": "To provide Azure Subscription for your organization's meshProjects, meshcloud supports using Enterprise Enrollment or allocating from a pool of pre-provisioned subscriptions. One of the subFields `enterpriseEnrollment`, `customerAgreement` or `preProvisioned` must be provided!" + }, + "subscriptionNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." + }, + "groupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names are unique in the managed AAD Tenant." + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to sub management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "nullable": true } }, - "description": "Metering configuration for OpenShift (optional, but required for metering)" + "description": "Replication configuration for Azure (optional, but required for replication)" }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the OpenShift cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", - "nullable": true - } - }, - "description": "Configuration for OpenShift" - }, - "aks": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "replication": { + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + }, + "metering": { "required": [ - "accessToken", - "aksClusterName", - "aksResourceGroup", - "aksSubscriptionId", - "groupNamePattern", - "namespaceNamePattern", - "sendAzureInvitationMail", - "servicePrincipal", - "userLookUpStrategy" + "processing", + "servicePrincipal" ], "type": "object", "properties": { - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "aksSubscriptionId": { - "type": "string", - "description": "Subscription ID for the AKS cluster" - }, "servicePrincipal": { "required": [ - "authType", + "auth", "clientId", - "entraTenant", "objectId" ], "type": "object", "properties": { - "entraTenant": { - "type": "string", - "description": "Domain name or ID of the Entra Tenant that holds the Service Principal." - }, "clientId": { "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for the service principal (required if authType is CREDENTIALS)", - "nullable": true + "description": "Client ID of the service principal for metering" }, - "authType": { - "type": "string", - "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." }, "objectId": { "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + "description": "Object ID of the service principal for metering" } }, - "description": "Service principal configuration for AKS" - }, - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation.", - "nullable": true - }, - "aksResourceGroup": { - "type": "string", - "description": "Resource group for the AKS cluster" - }, - "namespaceNamePattern": { - "type": "string", - "description": "Pattern for naming namespaces in AKS" - }, - "userLookUpStrategy": { - "type": "string", - "description": "Strategy for user lookup in Azure ('userPrincipalName' or 'email')" - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "Flag to send Azure invitation emails. When true, meshStack instructs Azure to send out Invitation mails to invited users." - }, - "aksClusterName": { - "type": "string", - "description": "Name of the AKS cluster" - }, - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "description": "Service principal configuration for metering access" }, - "groupNamePattern": { - "type": "string", - "description": "Pattern for naming groups in AKS" - } - }, - "description": "Replication configuration for AKS (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "Base URL of the AKS cluster" - }, - "metering": { - "required": [ - "clientConfig" - ], - "type": "object", - "properties": { "processing": { "type": "object", "properties": { @@ -28017,746 +25311,14 @@ "description": "Number of days after which raw metering data is deleted", "nullable": true } - } - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for metering access." - } }, "description": "Processing configuration for metering data" } }, - "description": "Replication configuration for AKS (optional, but required for metering)" - }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", - "nullable": true + "description": "Metering configuration for Azure (optional, but required for metering)" } }, - "description": "Azure Kubernetes Service configuration, if applicable." - }, - "aws": { - "required": [ - "region" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "accessConfig", - "accountAccessRole", - "accountAliasPattern", - "accountEmailPattern", - "automationAccountRole", - "enforceAccountAlias", - "selfDowngradeAccessRole", - "skipUserGroupPermissionCleanup", - "waitForExternalAvm" - ], - "type": "object", - "properties": { - "selfDowngradeAccessRole": { - "type": "boolean", - "description": "Flag for self downgrade access role. If set, meshStack will revoke its rights on the managed account that were only needed for initial account creation." - }, - "enrollmentConfiguration": { - "required": [ - "accountFactoryProductId", - "managementAccountId" - ], - "type": "object", - "properties": { - "managementAccountId": { - "type": "string", - "description": "The Account ID of the management account configured for the platform instance." - }, - "accountFactoryProductId": { - "type": "string", - "description": "The Product ID of the AWS Account Factory Product in AWS Service Catalog that should be used for enrollment. Starts with `prod-`." - } - }, - "description": "With this optional configuration you can provide general information to enroll the created AWS accounts into Control Tower. Make sure you also enable it on the meshLandingZone!. If you don't, meshStack will skip the enrollment of AWS Accounts into Control Tower." - }, - "accountAccessRole": { - "type": "string", - "description": "The name for the Account Access Role that will be rolled out to all managed accounts. Only a name, not an ARN must be set here, as the ARN must be built dynamically for every managed AWS Account. The replicator service user needs to assume this role in all accounts to manage them." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "Namespace prefix for tenant tags" - } - }, - "description": "Tenant tags configuration" - }, - "automationAccountRole": { - "type": "string", - "description": "ARN of the Automation Account Role. The Automation Account contains all AWS StackSets and Lambda Functions that shall be executed via meshLandingZones. E.g. arn:aws:iam::123456789:role/MeshfedAutomationRole." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later. " - }, - "automationAccountExternalId": { - "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the automation account role.", - "nullable": true - }, - "accountAliasPattern": { - "type": "string", - "description": "With a String Pattern you can define how the account alias of the created AWS account will be named. E.g. +++#+++{workspaceIdentifier}-+++#+++{projectIdentifier}.\nAttention: Account Alias must be globally unique in AWS. So consider defining a unique prefix." - }, - "accountEmailPattern": { - "type": "string", - "description": "With a String Pattern you can define how the account email address of the created AWS account will be set. E.g. 'aws++++#+++{workspaceIdentifier}.+++#+++{projectIdentifier}@yourcompany.com'. Please consider that this email address is limited to 64 characters! Also have a look at our docs for more information." - }, - "enforceAccountAlias": { - "type": "boolean", - "description": "Flag to enforce account alias. If set, meshStack will guarantee on every replication that the configured Account Alias is applied. Otherwise it will only set the Account Alias once during tenant creation." - }, - "waitForExternalAvm": { - "type": "boolean", - "description": "Flag to wait for external AVM.Please use this setting with care! It is currently very specific to certain tags being present on the account! In general, we recommend not to activate this waitForExternalAvm functionality! In a meshLandingZone an AVM can be triggered via an AWS StackSet or via a Lambda Function. If meshStack shall wait for the AVM to complete when creating a new platform tenant, this flag must be checked. meshStack will identify completion of the AVM by checking the presence of the following tags on the AWS account: 'ProductName' is set to workspace identifier and 'Stage' is set to project identifier." - }, - "allowHierarchicalOrganizationalUnitAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical organizational unit assignment in AWS. If set to true: Accounts can be moved to child organizational units of the organizational unit defined in the Landing Zone. This is useful if you want to manage the account location with a deeper and more granular hierarchy. If set to false: Accounts will always be moved directly to the organizational unit defined in the Landing Zone.", - "nullable": true - }, - "accessConfig": { - "required": [ - "organizationRootAccountRole" - ], - "type": "object", - "properties": { - "organizationRootAccountRole": { - "type": "string", - "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." - }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." - } - }, - "description": "Workload identity configuration (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { - "required": [ - "accessKey", - "secretKey" - ], - "type": "object", - "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for service user" - }, - "accessKey": { - "type": "string", - "description": "AWS access key for service user" - } - }, - "description": "Service user configuration (alternative to workloadIdentityConfig)" - }, - "organizationRootAccountExternalId": { - "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role. ", - "nullable": true - } - }, - "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." - }, - "awsSso": { - "required": [ - "arn", - "awsRoleMappings", - "groupNamePattern", - "scimEndpoint", - "signInUrl", - "ssoAccessToken" - ], - "type": "object", - "properties": { - "ssoAccessToken": { - "type": "string", - "description": "The AWS IAM Identity Center SCIM Access Token that was generated via the Automatic provisioning config in AWS IAM Identity Center." - }, - "signInUrl": { - "type": "string", - "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." - }, - "scimEndpoint": { - "type": "string", - "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." - }, - "arn": { - "type": "string", - "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." - }, - "awsRoleMappings": { - "type": "array", - "description": "Roles can be mapped from the meshRole to the AWS role.", - "items": { - "required": [ - "permissionSetArns", - "projectRoleRef" - ], - "type": "object", - "properties": { - "projectRoleRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "Must always be set to `meshProjectRole`" - }, - "name": { - "type": "string", - "description": "The identifier of the meshProjectRole, e.g. `admin` or `user` or `reader`" - } - }, - "description": "A reference to an existing meshProjectRole" - }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } - } - }, - "groupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." - } - }, - "description": "AWS SSO configuration" - } - }, - "description": "Replication configuration for AWS (optional, but required for replication)" - }, - "metering": { - "required": [ - "accessConfig", - "filter", - "processing", - "reservedInstanceFairChargeback", - "savingsPlanFairChargeback" - ], - "type": "object", - "properties": { - "filter": { - "type": "string", - "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - }, - "accessConfig": { - "required": [ - "organizationRootAccountRole" - ], - "type": "object", - "properties": { - "organizationRootAccountRole": { - "type": "string", - "description": "ARN of the Management Account Role for metering access." - }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role for metering access via workload identity federation" - } - }, - "description": "Workload identity configuration for metering (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { - "required": [ - "accessKey", - "secretKey" - ], - "type": "object", - "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for metering service user" - }, - "accessKey": { - "type": "string", - "description": "AWS access key for metering service user" - } - }, - "description": "Service user configuration for metering (alternative to workloadIdentityConfig)" - }, - "organizationRootAccountExternalId": { - "type": "string", - "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", - "nullable": true - } - }, - "description": "AWS access configuration for metering. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." - }, - "savingsPlanFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for savings plans" - }, - "reservedInstanceFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for reserved instances" - } - }, - "description": "Metering configuration for AWS (optional, but required for metering)" - }, - "region": { - "type": "string", - "description": "AWS region" - } - }, - "description": "AWS configuration, if applicable." - }, - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." - }, - "azure": { - "required": [ - "entraTenant" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "azureRoleMappings", - "blueprintLocation", - "blueprintServicePrincipal", - "groupNamePattern", - "servicePrincipal", - "skipUserGroupPermissionCleanup", - "subscriptionNamePattern", - "userLookUpStrategy" - ], - "type": "object", - "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." - } - }, - "description": "Tenant tags configuration" - }, - "blueprintLocation": { - "type": "string", - "description": "The Azure location where replication creates and updates Blueprint Assignments. Note that it's still possible that the Blueprint creates resources in other locations, this is merely the location where the Blueprint Assignment is managed." - }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "azureRoleMappings": { - "type": "array", - "description": "Role mappings for Azure with project role references", - "items": { - "required": [ - "azureRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "azureRole": { - "required": [ - "alias", - "id" - ], - "type": "object", - "properties": { - "alias": { - "type": "string", - "description": "Alias for the Azure role" - }, - "id": { - "type": "string", - "description": "ID of the Azure role" - } - }, - "description": "Azure role" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." - }, - "blueprintServicePrincipal": { - "type": "string", - "description": "Object ID of the Enterprise Application belonging to the Microsoft Application 'Azure Blueprints'. meshStack will grant the necessary permissions on managed Subscriptions to this SPN so that it can create System Assigned Managed Identities (SAMI) for Blueprint execution." - }, - "provisioning": { - "type": "object", - "properties": { - "preProvisioned": { - "required": [ - "unusedSubscriptionNamePrefix" - ], - "type": "object", - "properties": { - "unusedSubscriptionNamePrefix": { - "type": "string", - "description": "The prefix that identifies unused subscriptions. Subscriptions will be renamed during meshStack's project replication, at which point they should no longer carry this prefix." - } - }, - "description": "If your organization does not have access to an Enterprise Enrollment, you can alternatively configure meshcloud to consume subscriptions from a pool of externally-provisioned subscriptions. This is useful for smaller organizations that wish to use 'Pay-as-you-go' subscriptions or if you're organization partners with an Azure Cloud Solution Provider to provide your subscriptions. The meshcloud Azure replication detects externally-provisioned subscriptions based on a configurable prefix in the subscription name. Upon assignment to a meshProject, the subscription is inflated with the right Landing Zone configuration and removed from the subscription pool." - }, - "customerAgreement": { - "required": [ - "billingScope", - "destinationEntraId", - "sourceEntraTenant", - "sourceServicePrincipal" - ], - "type": "object", - "properties": { - "sourceServicePrincipal": { - "required": [ - "authType", - "clientId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Must be set if and only if `authType` is `CREDENTIALS`. A valid secret for accessing the application. In Azure Portal, this can be configured on the \"App Registration\" under Certificates & secrets. https://docs.meshcloud.io/operations/security-faq/#how-does-meshstack-securely-handle-my-cloud-platform-credentials[How is this information secured?]", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Must be one of `CREDENTIALS` or `WORKLOAD_IDENTITY`. Workload Identity Federation is the one that we recommend as it enables the most secure approach to provide access to your Azure tenant without using long lived credentials. Credential Authentication is an alternative approach where you have to provide a clientSecret manually to meshStack and meshStack stores it encrypted." - } - }, - "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." - }, - "sourceEntraTenant": { - "type": "string", - "description": "Microsoft Entra ID Tenant UUID or domain name used for creating subscriptions. Set this to the Microsoft Entra ID Tenant owning the MCA Billing Scope. If source and destination Microsoft Entra ID Tenants are the same, you need to use UUID." - }, - "subscriptionCreationErrorCooldownSec": { - "type": "number", - "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", - "nullable": true - }, - "destinationEntraId": { - "type": "string", - "description": "Microsoft Entra ID Tenant UUID where created subscriptions should be moved. Set this to the Microsoft Entra ID Tenant hosting your landing zones." - }, - "billingScope": { - "type": "string", - "description": "ID of the MCA Billing Scope used for creating subscriptions. Must follow this format: `/providers/Microsoft.Billing/billingAccounts/$accountId/billingProfiles/$profileId/invoiceSections/$sectionId`." - } - }, - "description": "meshcloud can automatically provision new subscriptions from a Customer Agreement Account owned by your organization. This is suitable for larger organizations that have such a Customer Agreement with Microsoft, and want to provide a large number of subscriptions in a fully automated fashion." - }, - "subscriptionOwnerObjectIds": { - "type": "array", - "description": "One or more principals Object IDs (e.g. user groups, SPNs) that meshStack will ensure have an 'Owner' role assignment on the managed subscriptions. This can be useful to satisfy Azure's constraint of at least one direct 'Owner' role assignment per Subscription. If you want to use a Service Principal please use the Enterprise Application Object ID.\nYou can not use the replicator object ID here, because meshStack always removes its high privilege access after a Subscription creation.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "enterpriseEnrollment": { - "required": [ - "enrollmentAccountId", - "subscriptionOfferType", - "useLegacySubscriptionEnrollment" - ], - "type": "object", - "properties": { - "subscriptionOfferType": { - "type": "string", - "description": "The Microsoft Subscription offer type to use when creating subscriptions. Only `Production` for standard and `DevTest` for Dev/Test subscriptions are supported for the Non Legacy Subscription Enrollment. For the Legacy Subscription Enrollment also other types can be defined." - }, - "enrollmentAccountId": { - "type": "string", - "description": "ID of the EA Enrollment Account used for the Subscription creation. Should look like this: `/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321`. For more information, review the https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement?tabs=rest-getEnrollments%2Crest-EA#find-accounts-you-have-access-to[Azure docs]." - }, - "subscriptionCreationErrorCooldownSec": { - "type": "number", - "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", - "nullable": true - }, - "useLegacySubscriptionEnrollment": { - "type": "boolean", - "description": "Deprecated: Uses the old Subscription enrollment API in its preview version. This enrollment is less reliable and should not be used for new Azure Platform Integrations." - } - }, - "description": "meshcloud can automatically provision new subscriptions from an Enterprise Enrollment Account owned by your organization. This is suitable for large organizations that have a Microsoft Enterprise Agreement, Microsoft Customer Agreement or a Microsoft Partner Agreement and want to provide a large number of subscriptions in a fully automated fashion." - } - }, - "description": "To provide Azure Subscription for your organization's meshProjects, meshcloud supports using Enterprise Enrollment or allocating from a pool of pre-provisioned subscriptions. One of the subFields `enterpriseEnrollment`, `customerAgreement` or `preProvisioned` must be provided!" - }, - "subscriptionNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." - }, - "groupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names are unique in the managed AAD Tenant." - }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to sub management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true - } - }, - "description": "Replication configuration for Azure (optional, but required for replication)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" - }, - "metering": { - "required": [ - "processing", - "servicePrincipal" - ], - "type": "object", - "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "Client ID of the service principal for metering" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for credentials-based authentication", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the metering service principal" - }, - "objectId": { - "type": "string", - "description": "Object ID of the service principal for metering" - } - }, - "description": "Service principal configuration for metering access" - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - } - }, - "description": "Metering configuration for Azure (optional, but required for metering)" - } - }, - "description": "Azure configuration, if applicable." + "description": "Configuration for Azure" } }, "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." @@ -28784,223 +25346,331 @@ } }, "description": "All fields in this section describe the meshPlatform configuration." - }, - "status": { - "type": "object", - "description": "Current status information of the meshPlatform." } } }, - "api-meshobjects-meshbuildingblocks-1155129151": { + "api-meshobjects-meshusers-179515684": { "required": [ "apiVersion", "kind", + "metadata", "spec" ], "type": "object", "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username as 'name' to uniquely identify the meshUser." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshUser." + }, "apiVersion": { "type": "string", - "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." }, "spec": { "required": [ - "buildingBlockDefinitionVersionRef", - "displayName", - "inputs", - "parentBuildingBlocks", - "targetRef" + "email", + "firstName", + "lastName" ], "type": "object", "properties": { - "parentBuildingBlocks": { - "type": "array", - "description": "List of parent Building Blocks, which are required for the Building Block. If none given, an empty list needs to be provided.", - "items": { - "required": [ - "buildingBlockUuid", - "definitionUuid" - ], - "type": "object", - "properties": { - "buildingBlockUuid": { - "type": "string", - "description": "The UUID of the parent Building Block." - }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition of the parent Building Block." - } - } - } + "lastName": { + "type": "string", + "description": "The last name of the meshUser." }, - "targetRef": { - "required": [ - "kind", - "uuid" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshTenant\"" - }, - "uuid": { - "type": "string", - "description": "The uuid of the tenant for this Building Block" - } - }, - "description": "The reference to either a tenant or workspace the Building Block is located on." + "firstName": { + "type": "string", + "description": "The first name of the meshUser." }, - "inputs": { - "type": "array", - "description": "List of inputs, which are set on the Building Block.", - "items": { - "required": [ - "key", - "value", - "valueType" - ], - "type": "object", - "properties": { - "valueType": { - "type": "string", - "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." - }, - "value": { - "type": "string", - "description": "The value, which is set on this input." - }, - "key": { - "type": "string", - "description": "The key of the input as set on the related Building Block Definition." - } - } - } + "euid": { + "type": "string", + "description": "External User ID which is used to lookup the user in the cloud platforms.", + "nullable": true }, - "displayName": { + "email": { "type": "string", - "description": "The display name of the Building Block as it is shown in meshPanel." + "description": "The email of the meshUser." }, - "buildingBlockDefinitionVersionRef": { - "required": [ - "kind", - "uuid" - ], + "tags": { "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshBuildingBlockDefinitionVersion\"" - }, - "uuid": { - "type": "string", - "description": "The uuid of the meshBuildingBlockDefinitionVersion for this Building Block" - } - }, - "description": "The reference to the meshBuildingBlockDefinitionVersion for this Building Block" + "description": "Key/Value pairs of tags set on the meshUser. Keep in mind, that values are an array.", + "nullable": true } }, - "description": "All fields in this section describe the Building Block." + "description": "All fields in this section describe the meshUser." } } }, - "meshProjectPost": { - "title": "meshProjectPost", + "api-login2002944754": { "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" + "client_id", + "client_secret", + "grant_type" ], "type": "object", "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The projectIdentifier as 'name'." - }, - "createdOn": { - "type": "string", - "description": "The meshProject has been created at this date (e.g. `2020-12-22T09:37:43Z`).", - "nullable": true - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspaceIdentifier as 'ownedByWorkspace'." - } - }, - "description": "Always contains the 'name' and 'ownedByWorkspace' to uniquely identify the meshProject." + "grant_type": { + "type": "string", + "description": "The grant type, which must be 'client_credentials'." }, - "apiVersion": { + "client_secret": { "type": "string", - "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." + "description": "The Key Secret associated with your API key. This secret is used in conjunction with the client_id to securely authenticate your application." }, + "client_id": { + "type": "string", + "description": "The Key ID assigned to your API key upon creation. This ID is used to authenticate your application." + } + } + }, + "meshPlatform-List-V1": { + "title": "meshPlatform-List-V1", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { "_links": { "type": "object", - "description": "Available links on a meshProject." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." + "description": "Contains the self link and pagination links (first, last, next, prev)." }, - "spec": { + "_embedded": { "required": [ - "displayName", - "tags" + "meshPlatforms" ], "type": "object", "properties": { - "substitutePaymentMethodIdentifier": { - "type": "string", - "description": "The substitutePaymentMethod of the meshProject", - "nullable": true - }, - "paymentMethodIdentifier": { - "type": "string", - "description": "The meshPaymentMethod of the meshProject.", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the meshProject as it is shown in meshPanel." - }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the meshProject. Keep in mind, that values are an array." + "meshPlatforms": { + "type": "array", + "description": "List of meshPlatforms with their configurations. Each platform object has the same structure as documented in the GET single platform response.", + "items": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec", + "status" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace", + "uuid" + ], + "type": "object", + "properties": { + "deletedOn": { + "type": "string", + "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", + "nullable": true + }, + "name": { + "type": "string", + "description": "The platform identifier as 'name' to identify the meshPlatform." + }, + "uuid": { + "type": "string", + "description": "The UUID of the meshPlatform." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace that owns this meshPlatform." + } + }, + "description": "Contains metadata to uniquely identify the meshPlatform." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." + }, + "spec": { + "required": [ + "availability", + "config", + "displayName", + "locationRef" + ], + "type": "object", + "properties": { + "documentationUrl": { + "type": "string", + "description": "URL for platform documentation.", + "nullable": true + }, + "endpoint": { + "type": "string", + "description": "The web console URL endpoint of the platform.", + "nullable": true + }, + "locationRef": { + "required": [ + "identifier", + "kind" + ], + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "The identifier of the location." + }, + "kind": { + "type": "string", + "description": "The kind of the referenced location, always 'meshLocation'." + } + }, + "description": "Reference to the location where this platform is situated." + }, + "displayName": { + "type": "string", + "description": "The human-readable display name of the meshPlatform." + }, + "supportUrl": { + "type": "string", + "description": "URL for platform support documentation.", + "nullable": true + }, + "description": { + "type": "string", + "description": "description of the meshPlatform.", + "nullable": true + }, + "availability": { + "required": [ + "marketplaceStatus", + "restriction" + ], + "type": "object", + "properties": { + "restriction": { + "type": "string", + "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." + }, + "marketplaceStatus": { + "type": "string", + "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." + }, + "restrictedToWorkspaces": { + "type": "array", + "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Availability configuration for the meshPlatform." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." + } + }, + "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + }, + "contributingWorkspaces": { + "type": "array", + "description": "A list of workspace identifiers that may contribute to this meshPlatform.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "All fields in this section describe the meshPlatform configuration." + }, + "status": { + "type": "object", + "description": "Current status information of the meshPlatform." + } + } + } } }, - "description": "All fields in this section describe the meshProject." + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." } } }, - "api-meshobjects-meshworkspacebindings-userbindings-1470058865": { + "meshWorkspaceUserBinding": { + "title": "meshWorkspaceUserBinding", "required": [ + "_links", "apiVersion", - "kind" + "kind", + "metadata" ], "type": "object", "properties": { "targetRef": { "required": [ + "displayName", "name" ], "type": "object", "properties": { + "displayName": { + "type": "string", + "description": "The name of the workspace the user is assigned to." + }, "name": { "type": "string", - "description": "The identifier of the workspace the user should get assigned to." + "description": "The identifier of the workspace the user is assigned to." } } }, @@ -29012,17 +25682,18 @@ "properties": { "name": { "type": "string", - "description": "Name of this binding which later can be used to refer to it. It must be globally unique." + "description": "The meshWorkspaceUserBinding identifier as 'name' to uniquely identify the meshWorkspaceUserBinding." } - } + }, + "description": "Always contains the 'name' to uniquely identify the meshWorkspaceUserBinding." }, "apiVersion": { "type": "string", - "description": "Version of this object" + "description": "Version of meshWorkspaceUserBinding datatype. Matches the version part provided within the `Accept` request header." }, - "kind": { - "type": "string", - "description": "Type of the returned meshObject" + "_links": { + "type": "object", + "description": "Currently only contains the self link." }, "subject": { "required": [ @@ -29036,6 +25707,10 @@ } } }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceUserBinding' for this endpoint." + }, "roleRef": { "required": [ "name" @@ -29050,7 +25725,7 @@ } } }, - "api-meshobjects-meshprojects-fullProjectIdentifier-1933825965": { + "api-meshobjects-meshplatformtypes-identifier-729667817": { "required": [ "apiVersion", "kind", @@ -29061,160 +25736,430 @@ "properties": { "metadata": { "required": [ - "name", - "ownedByWorkspace" + "name" ], "type": "object", "properties": { "name": { "type": "string", - "description": "The project identifier that must match the project identifier part of the fullProjectIdentifier in the URL path." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace identifier that must match the workspace identifier part of the fullProjectIdentifier in the URL path." + "description": "The identifier that uniquely identifies the meshPlatformType." } }, - "description": "Fixed fields that help to identify the meshProject. The name and ownedByWorkspace must match the fullProjectIdentifier in the URL path." + "description": "Contains the identifiers for the meshPlatformType." }, "apiVersion": { "type": "string", - "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshPlatformType datatype. Matches the version part provided within the `Accept` request header." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatformType' for this endpoint." }, "spec": { "required": [ + "category", "displayName", - "tags" + "icon" ], "type": "object", "properties": { - "substitutePaymentMethodIdentifier": { + "displayName": { "type": "string", - "description": "The substitute payment method of the project.", - "nullable": true + "description": "The display name of the meshPlatformType shown in the UI." }, - "paymentMethodIdentifier": { + "icon": { "type": "string", - "description": "The payment method of the project.", - "nullable": true + "description": "The icon used to display the platform type in the UI. This must be provided as a base64 encoded data image. Size should be kept small to ensure fast loading times and efficient storage." }, - "displayName": { + "defaultEndpoint": { "type": "string", - "description": "The display name of the project as it is shown in meshPanel." + "description": "The default endpoint URL for the platform type. This will be used as a default value when creating platform instances. The default endpoint should be a link to a web portal of the cloud platform for example.", + "nullable": true }, - "tags": { - "type": "object", - "description": "Key/Value pairs of tags set on the project. Keep in mind, that values are an array." + "category": { + "type": "string", + "description": "The platform category. For custom platform types, this is always 'CUSTOM'. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." } }, - "description": "All fields in this section describe the project and can be updated." + "description": "All fields in this section describe the meshPlatformType configuration." + }, + "status": { + "required": [ + "lifecycleState" + ], + "type": "object", + "properties": { + "lifecycleState": { + "type": "string", + "description": "The lifecycle state of the platform type. Can be 'ACTIVE' or 'DEACTIVATED'. Deactivated platform types cannot be used to create new platform instances." + } + }, + "description": "The current status of the meshPlatformType." } } }, - "api-meshobjects-meshplatforms-1075042019": { + "api-meshobjects-meshworkspacebindings-groupbindings-439969197": { "required": [ "apiVersion", - "kind", - "metadata", - "spec" + "kind" ], "type": "object", "properties": { - "metadata": { + "targetRef": { "required": [ - "name", - "ownedByWorkspace" + "name" ], "type": "object", "properties": { - "deletedOn": { - "type": "string", - "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", - "nullable": true - }, "name": { "type": "string", - "description": "The platform identifier as 'name' to identify the meshPlatform." - }, - "ownedByWorkspace": { + "description": "The identifier of the workspace the group should get assigned to." + } + } + }, + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { "type": "string", - "description": "The identifier of the workspace that owns this meshPlatform." + "description": "Name of this binding which later can be used to refer to it. It must be globally unique." } - }, - "description": "Contains metadata to uniquely identify the meshPlatform." + } }, "apiVersion": { "type": "string", - "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of this object" }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." + "description": "Type of the returned meshObject" }, - "spec": { + "subject": { "required": [ - "availability", - "config", - "displayName", - "locationRef", - "quotaDefinitions" + "name" ], "type": "object", "properties": { - "documentationUrl": { + "name": { "type": "string", - "description": "URL for platform documentation.", - "nullable": true - }, - "quotaDefinitions": { - "type": "array", - "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For platforms that don't support it yet, you have to provide an empty array. If empty list is provided, all existing quota definitions are removed.", - "items": { - "required": [ - "autoApprovalThreshold", - "description", - "label", - "maxValue", - "minValue", - "quotaKey" - ], - "type": "object", - "properties": { - "quotaKey": { - "type": "string", - "description": "The key of the quota as it is required by the cloud platform." + "description": "The identifier of the referenced workspace user group." + } + } + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the role for this workspace user group." + } + } + } + } + }, + "api-meshobjects-meshcommunications-1284413466": { + "required": [ + "apiVersion", + "kind", + "spec" + ], + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "description": "Version of Communication datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshCommunication' for this endpoint." + }, + "spec": { + "required": [ + "communicationDefinitionRef", + "targetMeshObjectRef" + ], + "type": "object", + "properties": { + "communicationDefinitionRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshCommunicationDefinition\"" + }, + "uuid": { + "type": "string", + "description": "The UUID of the communication definition associated with this communication." + } + }, + "description": "Reference to the associated communication definition." + }, + "targetMeshObjectRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "The type of mesh object being targeted. Supported values are: `meshWorkspace`, `meshTenant`, and `meshBuildingBlock`." + }, + "name": { + "type": "string", + "description": "An identifier or UUID that uniquely identifies the referenced meshObject. The required format depends on the `kind` of the target:\nFor kind `meshWorkspace`, use the workspace identifier.\nFor kind `meshTenant`, use the tenant UUID.\nFor kind `meshBuildingBlock`, use the building block UUID." + } + }, + "description": "describes which meshObject is targeted." + } + }, + "description": "All fields in this section describe the Communication." + } + } + }, + "meshPaymentMethodV2Put": { + "title": "meshPaymentMethodV2Put", + "type": "object" + }, + "meshUserV2Put": { + "title": "meshUserV2Put", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username as 'name' to uniquely identify the meshUser." + }, + "uuid": { + "type": "string", + "description": "A unique identifier (UUID) for the meshUser.", + "nullable": true + } + }, + "description": "Always contains the 'name' to uniquely identify the meshUser." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshUser." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." + }, + "spec": { + "required": [ + "email", + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "lastName": { + "type": "string", + "description": "The last name of the meshUser." + }, + "firstName": { + "type": "string", + "description": "The first name of the meshUser." + }, + "euid": { + "type": "string", + "description": "External User ID which is used to lookup the user in the cloud platforms.", + "nullable": true + }, + "email": { + "type": "string", + "description": "The email of the meshUser." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshUser. Keep in mind, that values are an array.", + "nullable": true + } + }, + "description": "All fields in this section describe the meshUser." + } + } + }, + "meshWorkspacePut": { + "title": "meshWorkspacePut", + "type": "object" + }, + "meshPaymentMethodListV2": { + "title": "meshPaymentMethodListV2", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshPaymentMethods" + ], + "type": "object", + "properties": { + "meshPaymentMethods": { + "type": "array", + "description": "List of meshPaymentMethods.", + "items": { + "oneOf": [ + { + "type": "object" }, - "minValue": { - "type": "number", - "description": "Minimum allowed value for this quota." + { + "type": "boolean" }, - "unit": { - "type": "string", - "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", - "nullable": true + { + "type": "string" }, - "autoApprovalThreshold": { - "type": "number", - "description": "Threshold below which quota requests are automatically approved." + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshCommunicationDefinitionList": { + "title": "meshCommunicationDefinitionList", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshCommunicationDefinitions" + ], + "type": "object", + "properties": { + "meshCommunicationDefinitions": { + "type": "array", + "description": "Filtered list of definitions.", + "items": { + "oneOf": [ + { + "type": "object" }, - "maxValue": { - "type": "number", - "description": "Maximum allowed value for this quota." + { + "type": "boolean" }, - "description": { - "type": "string", - "description": "Detailed description of what this quota controls." + { + "type": "string" }, - "label": { - "type": "string", - "description": "Human-readable label for the quota." + { + "type": "number" } - } + ] } + } + }, + "description": "The container for the result set." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "api-meshobjects-meshplatforms-1692685178": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "deletedOn": { + "type": "string", + "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", + "nullable": true + }, + "name": { + "type": "string", + "description": "The platform identifier as 'name' to identify the meshPlatform." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace that owns this meshPlatform." + } + }, + "description": "Contains metadata to uniquely identify the meshPlatform." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." + }, + "spec": { + "required": [ + "availability", + "config", + "displayName", + "locationRef" + ], + "type": "object", + "properties": { + "documentationUrl": { + "type": "string", + "description": "URL for platform documentation.", + "nullable": true }, "endpoint": { "type": "string", @@ -29223,18 +26168,18 @@ }, "locationRef": { "required": [ - "kind", - "name" + "identifier", + "kind" ], "type": "object", "properties": { - "kind": { + "identifier": { "type": "string", - "description": "The kind of the referenced location, always 'meshLocation'." + "description": "The identifier of the location." }, - "name": { + "kind": { "type": "string", - "description": "The identifier of the location." + "description": "The kind of the referenced location, always 'meshLocation'." } }, "description": "Reference to the location where this platform is situated." @@ -29255,19 +26200,19 @@ }, "availability": { "required": [ - "publicationState", + "marketplaceStatus", "restriction" ], "type": "object", "properties": { - "publicationState": { - "type": "string", - "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." - }, "restriction": { "type": "string", "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." }, + "marketplaceStatus": { + "type": "string", + "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." + }, "restrictedToWorkspaces": { "type": "array", "description": "If the restriction is set to RESTRICTED, you can specify the workspace identifiers this meshPlatform is restricted to.", @@ -29292,11 +26237,6 @@ }, "description": "Availability configuration for the meshPlatform." }, - "readme": { - "type": "string", - "description": "README about the meshPlatform in markdown format", - "nullable": true - }, "config": { "required": [ "type" @@ -29340,34 +26280,6 @@ "type": "string", "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" }, - "metering": { - "required": [ - "clientConfig" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - } - }, - "clientConfig": { - "type": "object", - "description": "Processing configuration for metering data" - } - }, - "description": "Replication configuration for Kubernetes (optional, but required for metering)" - }, "disableSslValidation": { "type": "boolean", "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", @@ -29376,77 +26288,36 @@ }, "description": "Configuration for Kubernetes" }, - "azurerg": { - "required": [ - "entraTenant" - ], + "gcp": { "type": "object", "properties": { "replication": { "required": [ - "resourceGroupNamePattern", - "servicePrincipal", + "allowHierarchicalFolderAssignment", + "billingAccountId", + "customerId", + "domain", + "groupNamePattern", + "projectIdPattern", + "projectNamePattern", + "roleMappings", + "serviceAccountConfig", "skipUserGroupPermissionCleanup", - "subscription", - "userGroupNamePattern", - "userLookUpStrategy" + "userLookupStrategy" ], "type": "object", "properties": { - "administrativeUnitId": { + "userLookupStrategy": { "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true + "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" }, - "userGroupNamePattern": { + "projectNamePattern": { "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." - }, - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" + "description": "All the commonly available replicator string template properties are available. The result must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. When length restrictions are applied, the abbreviation will be in the middle and marked by a single-quote." }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + "projectIdPattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. The resulting string must not exceed a total length of 30 characters. Only alphanumeric + hyphen are allowed. We recommend that configuration include at least 3 characters of the random parameter to reduce the chance of naming collisions as the project Ids must be globally unique within GCP." }, "tenantTags": { "required": [ @@ -29478,102 +26349,172 @@ }, "namespacePrefix": { "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + "description": "Namespace prefix for tenant tags" } }, "description": "Tenant tags configuration" }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." - }, - "subscription": { + "domain": { "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." + "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "serviceAccountConfig": { + "type": "object", + "properties": { + "serviceAccountCredentialsConfig": { + "required": [ + "serviceAccountCredentialsB64" + ], + "type": "object", + "properties": { + "serviceAccountCredentialsB64": { + "type": "string", + "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." + } + }, + "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" + }, + "serviceAccountWorkloadIdentityConfig": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider." + } + }, + "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" + } + }, + "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." }, - "resourceGroupNamePattern": { + "customerId": { "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." + "description": "A Google Customer ID. It typically starts with a 'C'." }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true + "roleMappings": { + "required": [ + "admin", + "member", + "reader" + ], + "type": "object", + "properties": { + "reader": { + "type": "string", + "description": "Role mapping for reader users" + }, + "member": { + "type": "string", + "description": "Role mapping for member users" + }, + "admin": { + "type": "string", + "description": "Role mapping for admin users" + } + }, + "description": "Role mappings for GCP" + }, + "allowHierarchicalFolderAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + }, + "billingAccountId": { + "type": "string", + "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + }, + "groupNamePattern": { + "type": "string", + "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." } }, - "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + "description": "Replication configuration for GCP (optional, but required for replication)" } }, - "description": "Configuration for Azure Resource Group" + "description": "Configuration for Google Cloud Platform (GCP)" }, - "gcp": { + "azurerg": { + "required": [ + "entraTenant" + ], "type": "object", "properties": { "replication": { "required": [ - "allowHierarchicalFolderAssignment", - "billingAccountId", - "customerId", - "domain", - "gcpRoleMappings", - "groupNamePattern", - "projectIdPattern", - "projectNamePattern", - "serviceAccountConfig", + "resourceGroupNamePattern", + "servicePrincipal", "skipUserGroupPermissionCleanup", - "userLookupStrategy" + "subscription", + "userGroupNamePattern", + "userLookUpStrategy" ], "type": "object", "properties": { - "gcpRoleMappings": { - "type": "array", - "description": "Role mappings for GCP with project role references", - "items": { - "required": [ - "gcpRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "gcpRole": { - "type": "string", - "description": "GCP role to assign" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, - "userLookupStrategy": { + "administrativeUnitId": { "type": "string", - "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" + "description": "Administrative unit ID for group placement", + "nullable": true }, - "projectNamePattern": { + "userGroupNamePattern": { "type": "string", - "description": "All the commonly available replicator string template properties are available. The result must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. When length restrictions are applied, the abbreviation will be in the middle and marked by a single-quote." + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" }, - "projectIdPattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. The resulting string must not exceed a total length of 30 characters. Only alphanumeric + hyphen are allowed. We recommend that configuration include at least 3 characters of the random parameter to reduce the chance of naming collisions as the project Ids must be globally unique within GCP." + "servicePrincipal": { + "required": [ + "authType", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID" + }, + "credentialsAuthClientSecret": { + "type": "string", + "description": "Client secret (required if authType is CREDENTIALS)", + "nullable": true + }, + "authType": { + "type": "string", + "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application" + } + }, + "description": "Service principal configuration for Azure" + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, Azure sends Invitation mails to invited users" + } + }, + "description": "Optional B2B user invitation configuration" }, "tenantTags": { "required": [ @@ -29605,147 +26546,41 @@ }, "namespacePrefix": { "type": "string", - "description": "Namespace prefix for tenant tags" + "description": "Prefix for all labels created by meshStack" } }, "description": "Tenant tags configuration" }, - "domain": { - "type": "string", - "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." - }, - "serviceAccountConfig": { - "type": "object", - "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." - } - }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" - }, - "serviceAccountWorkloadIdentityConfig": { - "required": [ - "audience" - ], - "type": "object", - "properties": { - "serviceAccountEmail": { - "type": "string", - "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation.", - "nullable": true - }, - "audience": { - "type": "string", - "description": "The audience associated with your workload identity pool provider." - } - }, - "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" - } - }, - "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "customerId": { + "userLookUpStrategy": { "type": "string", - "description": "A Google Customer ID. It typically starts with a 'C'." - }, - "allowHierarchicalFolderAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + "description": "User lookup strategy ('userPrincipalName' or 'email')" }, - "billingAccountId": { + "subscription": { "type": "string", - "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + "description": "The Subscription that will contain all the created Resource Groups" }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "groupNamePattern": { - "type": "string", - "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." - } - }, - "description": "Replication configuration for GCP (optional, but required for replication)" - }, - "metering": { - "required": [ - "bigqueryTable", - "partitionTimeColumn", - "processing", - "serviceAccountConfig" - ], - "type": "object", - "properties": { - "partitionTimeColumn": { - "type": "string", - "description": "Column name for partitioning time-based data" - }, - "serviceAccountConfig": { - "type": "object", - "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for metering service account" - } - }, - "description": "Service account credentials configuration for metering" - } - }, - "description": "Service account configuration for metering. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "additionalFilter": { - "type": "string", - "description": "Additional SQL filter for billing data (optional)", - "nullable": true + "description": "Preserve user groups and replicated permission after tenant deletion" }, - "bigqueryTableForCarbonFootprint": { + "resourceGroupNamePattern": { "type": "string", - "description": "BigQuery table containing carbon footprint data (optional)", - "nullable": true - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" }, - "carbonFootprintDataCollectionStartMonth": { - "type": "string", - "description": "Start month for carbon footprint data collection (optional)", + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Enable or disable hierarchical management group assignment", "nullable": true - }, - "bigqueryTable": { - "type": "string", - "description": "BigQuery table containing billing data export" } }, - "description": "Metering configuration for GCP (optional, but required for metering)" + "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" + }, + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Configuration for Google Cloud Platform (GCP)" + "description": "Configuration for Azure Resource Group" }, "openshift": { "required": [ @@ -29762,36 +26597,6 @@ ], "type": "object", "properties": { - "openshiftRoleMappings": { - "type": "array", - "description": "Role mappings for GCP with project role references", - "items": { - "required": [ - "openshiftRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "openshiftRole": { - "type": "string", - "description": "OpenShift role to assign" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "identifier of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, "webConsoleUrl": { "type": "string", "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", @@ -29844,48 +26649,28 @@ "type": "boolean", "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." }, - "clientConfig": { + "roleMappings": { "required": [ - "accessToken" + "admin", + "member", + "reader" ], "type": "object", "properties": { - "accessToken": { + "reader": { "type": "string", - "description": "The Access Token of the service account for replicator access." - } - }, - "description": "Client configuration for OpenShift" - } - }, - "description": "Replication configuration for OpenShift (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" - }, - "metering": { - "required": [ - "clientConfig", - "processing" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true + "description": "Role mapping for reader users" }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true + "member": { + "type": "string", + "description": "Role mapping for member users" + }, + "admin": { + "type": "string", + "description": "Role mapping for admin users" } }, - "description": "Processing configuration for metering data" + "description": "Role mappings for OpenShift" }, "clientConfig": { "required": [ @@ -29895,13 +26680,17 @@ "properties": { "accessToken": { "type": "string", - "description": "Access token for Kubernetes API authentication" + "description": "The Access Token of the service account for replicator access." } }, - "description": "Kubernetes client configuration for metering access" + "description": "Client configuration for OpenShift" } }, - "description": "Metering configuration for OpenShift (optional, but required for metering)" + "description": "Replication configuration for OpenShift (optional, but required for replication)" + }, + "baseUrl": { + "type": "string", + "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" }, "disableSslValidation": { "type": "boolean", @@ -30013,43 +26802,6 @@ "type": "string", "description": "Base URL of the AKS cluster" }, - "metering": { - "required": [ - "clientConfig" - ], - "type": "object", - "properties": { - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - } - }, - "clientConfig": { - "required": [ - "accessToken" - ], - "type": "object", - "properties": { - "accessToken": { - "type": "string", - "description": "The Access Token of the service account for metering access." - } - }, - "description": "Processing configuration for metering data" - } - }, - "description": "Replication configuration for AKS (optional, but required for metering)" - }, "disableSslValidation": { "type": "boolean", "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", @@ -30058,10 +26810,6 @@ }, "description": "Configuration for Azure Kubernetes Service (AKS)" }, - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." - }, "aws": { "required": [ "region" @@ -30149,7 +26897,7 @@ }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later. " + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." }, "automationAccountExternalId": { "type": "string", @@ -30220,7 +26968,7 @@ }, "organizationRootAccountExternalId": { "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role. ", + "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role.", "nullable": true } }, @@ -30229,7 +26977,6 @@ "awsSso": { "required": [ "arn", - "awsRoleMappings", "groupNamePattern", "scimEndpoint", "signInUrl", @@ -30245,6 +26992,78 @@ "type": "string", "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." }, + "roleMappings": { + "type": "object", + "properties": { + "member": { + "required": [ + "awsRoleName", + "permissionSetArns" + ], + "type": "object", + "properties": { + "awsRoleName": { + "type": "string", + "description": "AWS role name for member role mapping" + }, + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for member role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + }, + "admin": { + "required": [ + "awsRoleName", + "permissionSetArns" + ], + "type": "object", + "properties": { + "awsRoleName": { + "type": "string", + "description": "AWS role name for admin role mapping" + }, + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for admin role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + } + }, + "description": "Role mappings for AWS SSO" + }, "scimEndpoint": { "type": "string", "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." @@ -30253,57 +27072,6 @@ "type": "string", "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." }, - "awsRoleMappings": { - "type": "array", - "description": "Roles can be mapped from the meshRole to the AWS role.", - "items": { - "required": [ - "permissionSetArns", - "projectRoleRef" - ], - "type": "object", - "properties": { - "projectRoleRef": { - "required": [ - "kind", - "name" - ], - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "Must always be set to `meshProjectRole`" - }, - "name": { - "type": "string", - "description": "The identifier of the meshProjectRole, e.g. `admin` or `user` or `reader`" - } - }, - "description": "A reference to an existing meshProjectRole" - }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - } - } - }, "groupNamePattern": { "type": "string", "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." @@ -30314,96 +27082,6 @@ }, "description": "Replication configuration for AWS (optional, but required for replication)" }, - "metering": { - "required": [ - "accessConfig", - "filter", - "processing", - "reservedInstanceFairChargeback", - "savingsPlanFairChargeback" - ], - "type": "object", - "properties": { - "filter": { - "type": "string", - "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - }, - "accessConfig": { - "required": [ - "organizationRootAccountRole" - ], - "type": "object", - "properties": { - "organizationRootAccountRole": { - "type": "string", - "description": "ARN of the Management Account Role for metering access." - }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role for metering access via workload identity federation" - } - }, - "description": "Workload identity configuration for metering (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { - "required": [ - "accessKey", - "secretKey" - ], - "type": "object", - "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for metering service user" - }, - "accessKey": { - "type": "string", - "description": "AWS access key for metering service user" - } - }, - "description": "Service user configuration for metering (alternative to workloadIdentityConfig)" - }, - "organizationRootAccountExternalId": { - "type": "string", - "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", - "nullable": true - } - }, - "description": "AWS access configuration for metering. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." - }, - "savingsPlanFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for savings plans" - }, - "reservedInstanceFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for reserved instances" - } - }, - "description": "Metering configuration for AWS (optional, but required for metering)" - }, "region": { "type": "string", "description": "AWS region" @@ -30411,6 +27089,10 @@ }, "description": "Configuration for AWS" }, + "type": { + "type": "string", + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." + }, "azure": { "required": [ "entraTenant" @@ -30419,10 +27101,10 @@ "properties": { "replication": { "required": [ - "azureRoleMappings", "blueprintLocation", "blueprintServicePrincipal", "groupNamePattern", + "roleMappings", "servicePrincipal", "skipUserGroupPermissionCleanup", "subscriptionNamePattern", @@ -30501,6 +27183,10 @@ "type": "string", "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." }, + "roleMappings": { + "type": "object", + "description": "Role mappings for Azure" + }, "skipUserGroupPermissionCleanup": { "type": "boolean", "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." @@ -30510,50 +27196,6 @@ "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", "nullable": true }, - "azureRoleMappings": { - "type": "array", - "description": "Role mappings for Azure with project role references", - "items": { - "required": [ - "azureRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "azureRole": { - "required": [ - "alias", - "id" - ], - "type": "object", - "properties": { - "alias": { - "type": "string", - "description": "Alias for the Azure role" - }, - "id": { - "type": "string", - "description": "ID of the Azure role" - } - }, - "description": "Azure role" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, "b2bUserInvitation": { "required": [ "redirectUrl", @@ -30715,60 +27357,6 @@ "entraTenant": { "type": "string", "description": "Azure Active Directory (Entra ID) tenant" - }, - "metering": { - "required": [ - "processing", - "servicePrincipal" - ], - "type": "object", - "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "Client ID of the service principal for metering" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for credentials-based authentication", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the metering service principal" - }, - "objectId": { - "type": "string", - "description": "Object ID of the service principal for metering" - } - }, - "description": "Service principal configuration for metering access" - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - } - }, - "description": "Metering configuration for Azure (optional, but required for metering)" } }, "description": "Configuration for Azure" @@ -30802,88 +27390,15 @@ } } }, - "meshServiceInstancePost": { - "title": "meshServiceInstancePost", - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "instanceId", - "marketplaceIdentifier", - "ownedByProject", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The project that this Service Instance belongs to." - }, - "marketplaceIdentifier": { - "type": "string", - "description": "The identifier of the marketplace that this Service Instance belongs to." - }, - "instanceId": { - "type": "string", - "description": "The instance id this Service Instance should use." - }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspace that this Service Instance belongs to." - } - }, - "description": "Metadata and more fields to identify the Service Instance." - }, - "apiVersion": { - "type": "string", - "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." - }, - "spec": { - "required": [ - "creator", - "displayName", - "planId", - "serviceId" - ], - "type": "object", - "properties": { - "creator": { - "type": "string", - "description": "The meshUser's `username` that should be passed to the Open Service Broker via the `X-Broker-API-Originating-Identity` header." - }, - "displayName": { - "type": "string", - "description": "The display name of the Service Instance." - }, - "planId": { - "type": "string", - "description": "The id of the plan for this Service Instance" - }, - "serviceId": { - "type": "string", - "description": "The id of the service for the Service Instance" - } - }, - "description": "Specifications for the Service Instance." - } - } - }, - "api-meshobjects-meshplatforms-uuid-1072471072": { + "meshPlatform-Put-V2-gcp": { + "title": "meshPlatform-Put-V2-gcp", "required": [ + "_links", "apiVersion", "kind", "metadata", - "spec" + "spec", + "status" ], "type": "object", "properties": { @@ -30919,6 +27434,10 @@ "type": "string", "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." }, + "_links": { + "type": "object", + "description": "Available links on this meshObject." + }, "kind": { "type": "string", "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." @@ -30940,7 +27459,7 @@ }, "quotaDefinitions": { "type": "array", - "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For platforms that don't support it yet, you have to provide an empty array. If empty list is provided, all existing quota definitions are removed.", + "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For unsupported platform types (those not listed above), quota definitions have to be provided as an empty array. For supported platform types, providing an empty array will remove all existing quota definitions of the given platform.", "items": { "required": [ "autoApprovalThreshold", @@ -31095,8 +27614,20 @@ "type": "object", "properties": { "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, "description": "Client configuration for Kubernetes" @@ -31110,7 +27641,8 @@ }, "metering": { "required": [ - "clientConfig" + "clientConfig", + "processing" ], "type": "object", "properties": { @@ -31127,160 +27659,44 @@ "description": "Number of days after which raw metering data is deleted", "nullable": true } - } - }, - "clientConfig": { - "type": "object", - "description": "Processing configuration for metering data" - } - }, - "description": "Replication configuration for Kubernetes (optional, but required for metering)" - }, - "disableSslValidation": { - "type": "boolean", - "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", - "nullable": true - } - }, - "description": "Configuration for Kubernetes" - }, - "azurerg": { - "required": [ - "entraTenant" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "resourceGroupNamePattern", - "servicePrincipal", - "skipUserGroupPermissionCleanup", - "subscription", - "userGroupNamePattern", - "userLookUpStrategy" - ], - "type": "object", - "properties": { - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "userGroupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." - }, - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + "description": "Processing configuration for metering data" }, - "tenantTags": { + "clientConfig": { "required": [ - "namespacePrefix", - "tagMappers" + "accessToken" ], "type": "object", "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, - "description": "Tenant tags configuration" - }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." - }, - "subscription": { - "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "resourceGroupNamePattern": { - "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." - }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true + "description": "Client config for metering" } }, - "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" + "description": "Replication configuration for Kubernetes (optional, but required for metering)" }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + "disableSslValidation": { + "type": "boolean", + "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", + "nullable": true } }, - "description": "Configuration for Azure Resource Group" + "description": "Kubernetes configuration, if applicable." }, "gcp": { "type": "object", @@ -31295,7 +27711,7 @@ "groupNamePattern", "projectIdPattern", "projectNamePattern", - "serviceAccountConfig", + "serviceAccount", "skipUserGroupPermissionCleanup", "userLookupStrategy" ], @@ -31382,60 +27798,71 @@ "type": "string", "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." }, - "serviceAccountConfig": { + "customerId": { + "type": "string", + "description": "A Google Customer ID. It typically starts with a 'C'." + }, + "allowHierarchicalFolderAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + }, + "billingAccountId": { + "type": "string", + "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], "type": "object", "properties": { - "serviceAccountCredentialsConfig": { + "workloadIdentity": { "required": [ - "serviceAccountCredentialsB64" + "audience", + "serviceAccountEmail" ], "type": "object", "properties": { - "serviceAccountCredentialsB64": { + "serviceAccountEmail": { "type": "string", - "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." + "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider." } }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" + "description": "Service account workload identity configuration (required when type is 'workloadIdentity')" }, - "serviceAccountWorkloadIdentityConfig": { - "required": [ - "audience" - ], + "credential": { "type": "object", "properties": { - "serviceAccountEmail": { + "plaintext": { "type": "string", - "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation.", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", "nullable": true }, - "audience": { + "hash": { "type": "string", - "description": "The audience associated with your workload identity pool provider." + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true } }, - "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" + "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." } }, - "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "customerId": { - "type": "string", - "description": "A Google Customer ID. It typically starts with a 'C'." + "description": "Configuration of the service account used for GCP API access" }, - "allowHierarchicalFolderAssignment": { + "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." }, - "billingAccountId": { - "type": "string", - "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the GCP platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "groupNamePattern": { + "groupNamePattern": { "type": "string", "description": "All the commonly available replicator string template properties are available. Additionally you can also use 'platformGroupAlias' as a placeholder to access the specific project role from the role mappings done in this platform configuration or in the meshLandingZone configuration." } @@ -31447,7 +27874,7 @@ "bigqueryTable", "partitionTimeColumn", "processing", - "serviceAccountConfig" + "serviceAccount" ], "type": "object", "properties": { @@ -31455,25 +27882,6 @@ "type": "string", "description": "Column name for partitioning time-based data" }, - "serviceAccountConfig": { - "type": "object", - "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for metering service account" - } - }, - "description": "Service account credentials configuration for metering" - } - }, - "description": "Service account configuration for metering. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, "additionalFilter": { "type": "string", "description": "Additional SQL filter for billing data (optional)", @@ -31508,12 +27916,219 @@ "bigqueryTable": { "type": "string", "description": "BigQuery table containing billing data export" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account for metering, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider for metering access." + } + }, + "description": "Service account workload identity configuration for metering (required when type is 'workloadIdentity')" + }, + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for metering service account. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Configuration of the service account used for GCP metering API access" } }, "description": "Metering configuration for GCP (optional, but required for metering)" } }, - "description": "Configuration for Google Cloud Platform (GCP)" + "description": "GCP configuration, if applicable." + }, + "azurerg": { + "required": [ + "entraTenant" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "resourceGroupNamePattern", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscription", + "userGroupNamePattern", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "administrativeUnitId": { + "type": "string", + "description": "Administrative unit ID for group placement", + "nullable": true + }, + "userGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" + }, + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } + }, + "description": "Service principal configuration for replicator access." + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, Azure sends Invitation mails to invited users" + } + }, + "description": "Optional B2B user invitation configuration" + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Prefix for all labels created by meshStack" + } + }, + "description": "Tenant tags configuration" + }, + "userLookUpStrategy": { + "type": "string", + "description": "User lookup strategy ('userPrincipalName' or 'email')" + }, + "subscription": { + "type": "string", + "description": "The Subscription that will contain all the created Resource Groups" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Preserve user groups and replicated permission after tenant deletion" + }, + "resourceGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Enable or disable hierarchical management group assignment", + "nullable": true + } + }, + "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" + }, + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + } + }, + "description": "Azure Resource Group configuration, if applicable." }, "openshift": { "required": [ @@ -31619,8 +28234,20 @@ "type": "object", "properties": { "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, "description": "Client configuration for OpenShift" @@ -31662,8 +28289,20 @@ "type": "object", "properties": { "accessToken": { - "type": "string", - "description": "Access token for Kubernetes API authentication" + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Access token for Kubernetes API authentication. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, "description": "Kubernetes client configuration for metering access" @@ -31677,7 +28316,7 @@ "nullable": true } }, - "description": "Configuration for OpenShift" + "description": "Openshift configuration, if applicable." }, "aks": { "required": [ @@ -31710,7 +28349,7 @@ }, "servicePrincipal": { "required": [ - "authType", + "auth", "clientId", "entraTenant", "objectId" @@ -31725,21 +28364,42 @@ "type": "string", "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for the service principal (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of AKS authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." }, "objectId": { "type": "string", "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." } }, - "description": "Service principal configuration for AKS" + "description": "Service principal configuration for replicator EntraID access to manage groups that are used for RBAC in the AKS cluster." }, "redirectUrl": { "type": "string", @@ -31767,8 +28427,20 @@ "description": "Name of the AKS cluster" }, "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the Kubernetes service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." }, "groupNamePattern": { "type": "string", @@ -31809,8 +28481,20 @@ "type": "object", "properties": { "accessToken": { - "type": "string", - "description": "The Access Token of the service account for metering access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, "description": "Processing configuration for metering data" @@ -31826,10 +28510,6 @@ }, "description": "Configuration for Azure Kubernetes Service (AKS)" }, - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." - }, "aws": { "required": [ "region" @@ -31947,6 +28627,7 @@ }, "accessConfig": { "required": [ + "auth", "organizationRootAccountRole" ], "type": "object", @@ -31955,36 +28636,61 @@ "type": "string", "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." - } - }, - "description": "Workload identity configuration (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { + "auth": { "required": [ - "accessKey", - "secretKey" + "type" ], "type": "object", "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for service user" + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" }, - "accessKey": { + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { "type": "string", - "description": "AWS access key for service user" + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." } }, - "description": "Service user configuration (alternative to workloadIdentityConfig)" + "description": "Authentication configuration for AWS access" }, "organizationRootAccountExternalId": { "type": "string", @@ -31992,7 +28698,7 @@ "nullable": true } }, - "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." + "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys." }, "awsSso": { "required": [ @@ -32006,8 +28712,20 @@ "type": "object", "properties": { "ssoAccessToken": { - "type": "string", - "description": "The AWS IAM Identity Center SCIM Access Token that was generated via the Automatic provisioning config in AWS IAM Identity Center." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The AWS IAM Identity Center SCIM Access Token. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." }, "signInUrl": { "type": "string", @@ -32082,631 +28800,4849 @@ }, "description": "Replication configuration for AWS (optional, but required for replication)" }, - "metering": { + "metering": { + "required": [ + "accessConfig", + "filter", + "processing", + "reservedInstanceFairChargeback", + "savingsPlanFairChargeback" + ], + "type": "object", + "properties": { + "filter": { + "type": "string", + "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "accessConfig": { + "required": [ + "auth", + "organizationRootAccountRole" + ], + "type": "object", + "properties": { + "organizationRootAccountRole": { + "type": "string", + "description": "ARN of the Management Account Role for metering access." + }, + "auth": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role for metering access via workload identity federation" + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" + }, + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for metering service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for metering service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { + "type": "string", + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Authentication configuration for AWS metering access" + }, + "organizationRootAccountExternalId": { + "type": "string", + "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", + "nullable": true + } + }, + "description": "AWS access configuration for metering" + }, + "savingsPlanFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for savings plans" + }, + "reservedInstanceFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for reserved instances" + } + }, + "description": "Metering configuration for AWS (optional, but required for metering)" + }, + "region": { + "type": "string", + "description": "AWS region" + } + }, + "description": "AWS configuration, if applicable." + }, + "type": { + "type": "string", + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." + }, + "azure": { + "required": [ + "entraTenant" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "azureRoleMappings", + "blueprintLocation", + "blueprintServicePrincipal", + "groupNamePattern", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscriptionNamePattern", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } + }, + "description": "Service principal configuration for replicator access." + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + } + }, + "description": "Tenant tags configuration" + }, + "blueprintLocation": { + "type": "string", + "description": "The Azure location where replication creates and updates Blueprint Assignments. Note that it's still possible that the Blueprint creates resources in other locations, this is merely the location where the Blueprint Assignment is managed." + }, + "userLookUpStrategy": { + "type": "string", + "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + }, + "administrativeUnitId": { + "type": "string", + "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "nullable": true + }, + "azureRoleMappings": { + "type": "array", + "description": "Role mappings for Azure with project role references", + "items": { + "required": [ + "azureRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "azureRole": { + "required": [ + "alias", + "id" + ], + "type": "object", + "properties": { + "alias": { + "type": "string", + "description": "Alias for the Azure role" + }, + "id": { + "type": "string", + "description": "ID of the Azure role" + } + }, + "description": "Azure role" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." + } + }, + "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." + }, + "blueprintServicePrincipal": { + "type": "string", + "description": "Object ID of the Enterprise Application belonging to the Microsoft Application 'Azure Blueprints'. meshStack will grant the necessary permissions on managed Subscriptions to this SPN so that it can create System Assigned Managed Identities (SAMI) for Blueprint execution." + }, + "provisioning": { + "type": "object", + "properties": { + "preProvisioned": { + "required": [ + "unusedSubscriptionNamePrefix" + ], + "type": "object", + "properties": { + "unusedSubscriptionNamePrefix": { + "type": "string", + "description": "The prefix that identifies unused subscriptions. Subscriptions will be renamed during meshStack's project replication, at which point they should no longer carry this prefix." + } + }, + "description": "If your organization does not have access to an Enterprise Enrollment, you can alternatively configure meshcloud to consume subscriptions from a pool of externally-provisioned subscriptions. This is useful for smaller organizations that wish to use 'Pay-as-you-go' subscriptions or if you're organization partners with an Azure Cloud Solution Provider to provide your subscriptions. The meshcloud Azure replication detects externally-provisioned subscriptions based on a configurable prefix in the subscription name. Upon assignment to a meshProject, the subscription is inflated with the right Landing Zone configuration and removed from the subscription pool." + }, + "customerAgreement": { + "required": [ + "billingScope", + "destinationEntraId", + "sourceEntraTenant", + "sourceServicePrincipal" + ], + "type": "object", + "properties": { + "sourceServicePrincipal": { + "required": [ + "auth", + "clientId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure Graph API authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the source service principal for replicator access to a customer agreement. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." + }, + "sourceEntraTenant": { + "type": "string", + "description": "Microsoft Entra ID Tenant UUID or domain name used for creating subscriptions. Set this to the Microsoft Entra ID Tenant owning the MCA Billing Scope. If source and destination Microsoft Entra ID Tenants are the same, you need to use UUID." + }, + "subscriptionCreationErrorCooldownSec": { + "type": "number", + "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", + "nullable": true + }, + "destinationEntraId": { + "type": "string", + "description": "Microsoft Entra ID Tenant UUID where created subscriptions should be moved. Set this to the Microsoft Entra ID Tenant hosting your landing zones." + }, + "billingScope": { + "type": "string", + "description": "ID of the MCA Billing Scope used for creating subscriptions. Must follow this format: `/providers/Microsoft.Billing/billingAccounts/$accountId/billingProfiles/$profileId/invoiceSections/$sectionId`." + } + }, + "description": "meshcloud can automatically provision new subscriptions from a Customer Agreement Account owned by your organization. This is suitable for larger organizations that have such a Customer Agreement with Microsoft, and want to provide a large number of subscriptions in a fully automated fashion." + }, + "subscriptionOwnerObjectIds": { + "type": "array", + "description": "One or more principals Object IDs (e.g. user groups, SPNs) that meshStack will ensure have an 'Owner' role assignment on the managed subscriptions. This can be useful to satisfy Azure's constraint of at least one direct 'Owner' role assignment per Subscription. If you want to use a Service Principal please use the Enterprise Application Object ID.\nYou can not use the replicator object ID here, because meshStack always removes its high privilege access after a Subscription creation.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "enterpriseEnrollment": { + "required": [ + "enrollmentAccountId", + "subscriptionOfferType", + "useLegacySubscriptionEnrollment" + ], + "type": "object", + "properties": { + "subscriptionOfferType": { + "type": "string", + "description": "The Microsoft Subscription offer type to use when creating subscriptions. Only `Production` for standard and `DevTest` for Dev/Test subscriptions are supported for the Non Legacy Subscription Enrollment. For the Legacy Subscription Enrollment also other types can be defined." + }, + "enrollmentAccountId": { + "type": "string", + "description": "ID of the EA Enrollment Account used for the Subscription creation. Should look like this: `/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321`. For more information, review the https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement?tabs=rest-getEnrollments%2Crest-EA#find-accounts-you-have-access-to[Azure docs]." + }, + "subscriptionCreationErrorCooldownSec": { + "type": "number", + "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", + "nullable": true + }, + "useLegacySubscriptionEnrollment": { + "type": "boolean", + "description": "Deprecated: Uses the old Subscription enrollment API in its preview version. This enrollment is less reliable and should not be used for new Azure Platform Integrations." + } + }, + "description": "meshcloud can automatically provision new subscriptions from an Enterprise Enrollment Account owned by your organization. This is suitable for large organizations that have a Microsoft Enterprise Agreement, Microsoft Customer Agreement or a Microsoft Partner Agreement and want to provide a large number of subscriptions in a fully automated fashion." + } + }, + "description": "To provide Azure Subscription for your organization's meshProjects, meshcloud supports using Enterprise Enrollment or allocating from a pool of pre-provisioned subscriptions. One of the subFields `enterpriseEnrollment`, `customerAgreement` or `preProvisioned` must be provided!" + }, + "subscriptionNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." + }, + "groupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names are unique in the managed AAD Tenant." + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to sub management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", + "nullable": true + } + }, + "description": "Replication configuration for Azure (optional, but required for replication)" + }, + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + }, + "metering": { + "required": [ + "processing", + "servicePrincipal" + ], + "type": "object", + "properties": { + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "Client ID of the service principal for metering" + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "Object ID of the service principal for metering" + } + }, + "description": "Service principal configuration for metering access" + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + } + }, + "description": "Metering configuration for Azure (optional, but required for metering)" + } + }, + "description": "Azure configuration, if applicable." + } + }, + "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + }, + "contributingWorkspaces": { + "type": "array", + "description": "A list of workspace identifiers that may contribute to this meshPlatform.", + "nullable": true, + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "All fields in this section describe the meshPlatform configuration." + }, + "status": { + "type": "object", + "description": "Current status information of the meshPlatform." + } + } + }, + "meshUserV2Post": { + "title": "meshUserV2Post", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username as 'name' to uniquely identify the meshUser." + }, + "uuid": { + "type": "string", + "description": "A unique identifier (UUID) for the meshUser.", + "nullable": true + } + }, + "description": "Always contains the 'name' to uniquely identify the meshUser." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshUser." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." + }, + "spec": { + "required": [ + "email", + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "lastName": { + "type": "string", + "description": "The last name of the meshUser." + }, + "firstName": { + "type": "string", + "description": "The first name of the meshUser." + }, + "euid": { + "type": "string", + "description": "External User ID which is used to lookup the user in the cloud platforms.", + "nullable": true + }, + "email": { + "type": "string", + "description": "The email of the meshUser." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshUser. Keep in mind, that values are an array.", + "nullable": true + } + }, + "description": "All fields in this section describe the meshUser." + } + } + }, + "meshPlatformTypeListV1": { + "title": "meshPlatformTypeListV1", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshPlatformTypes" + ], + "type": "object", + "properties": { + "meshPlatformTypes": { + "type": "array", + "description": "List of meshPlatformTypes.", + "items": { + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier that uniquely identifies the meshPlatformType." + }, + "createdOn": { + "type": "string", + "description": "Timestamp when the meshPlatformType was created.", + "nullable": true + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the meshPlatformType across all platform types.", + "nullable": true + } + }, + "description": "Contains the identifiers for the meshPlatformType." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshPlatformType datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshPlatformType." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatformType' for this endpoint." + }, + "spec": { + "required": [ + "category", + "displayName", + "icon" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the meshPlatformType shown in the UI." + }, + "icon": { + "type": "string", + "description": "The icon used to display the platform type in the UI. This must be provided as a base64 encoded data image. Size should be kept small to ensure fast loading times and efficient storage." + }, + "defaultEndpoint": { + "type": "string", + "description": "The default endpoint URL for the platform type. This will be used as a default value when creating platform instances. The default endpoint should be a link to a web portal of the cloud platform for example.", + "nullable": true + }, + "category": { + "type": "string", + "description": "The platform category. For custom platform types, this is always 'CUSTOM'. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." + } + }, + "description": "All fields in this section describe the meshPlatformType configuration." + }, + "status": { + "required": [ + "lifecycleState" + ], + "type": "object", + "properties": { + "lifecycleState": { + "type": "string", + "description": "The lifecycle state of the platform type. Can be 'ACTIVE' or 'DEACTIVATED'. Deactivated platform types cannot be used to create new platform instances." + } + }, + "description": "The current status of the meshPlatformType." + } + } + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "api-meshobjects-meshlandingzones-identifier1747291786": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "tags" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier as 'name' to uniquely identify the meshLandingZone." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshLandingZone." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshLandingZone." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshLandingZone datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." + }, + "spec": { + "required": [ + "automateDeletionApproval", + "automateDeletionReplication", + "displayName", + "platformRef", + "quotas" + ], + "type": "object", + "properties": { + "platformProperties": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "kubernetes": { + "required": [ + "kubernetesRoleMappings" + ], + "type": "object", + "properties": { + "kubernetesRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + }, + "azurerg": { + "required": [ + "azureRgLocation", + "azureRgRoleMappings" + ], + "type": "object", + "properties": { + "azureRgRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cloud specific access role. If empty, the default that is configured on platform level will be used.", + "items": { + "required": [ + "azureGroupSuffix", + "azureRoleDefinitionIds" + ], + "type": "object", + "properties": { + "azureRoleDefinitionIds": { + "type": "array", + "description": "Role Definitions with the given IDs will be attached to this Azure Role", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "azureGroupSuffix": { + "type": "string", + "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." + } + } + } + }, + "azureFunction": { + "required": [ + "azureFunctionUrl" + ], + "type": "object", + "properties": { + "azureFunctionScope": { + "type": "string", + "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", + "nullable": true + }, + "azureFunctionUrl": { + "type": "string", + "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" + } + }, + "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." + }, + "azureRgLocation": { + "type": "string", + "description": "The newly created Resource Group for the meshProjects will get assigned to this location. It must be all lower case and without spaces (e.g. eastus2 for East US 2). In order to list the available locations you can use `az account list-locations --query \"[*].name\" --out tsv | sort`" + } + } + }, + "gcp": { + "required": [ + "gcpFolderId", + "gcpRoleMappings" + ], + "type": "object", + "properties": { + "gcpFolderId": { + "type": "string", + "description": "Google Cloud Projects will be added to this Google Cloud Folder. This allows applying Organization Policies to all projects managed under this Landing Zone." + }, + "gcpRoleMappings": { + "type": "array", + "description": "You can use both built-in roles like 'roles/editor' or custom roles like 'organizations/123123123123/roles/meshstack.project_developer'. For more information see https://docs.meshcloud.io/meshstack.gcp.landing-zones/#meshrole-to-platform-role-mapping[the Landing Zone documentation]. Multiple GCP Roles can be assigned to one meshRole. If empty, the default that is configured on platform level will be used.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "gcpTemplateUrl": { + "type": "string", + "description": "URL to a GCP bucket (starts with 'gs://') with a template config. The template is deployed in the project during the replication process. Only YAML files are supported with a file size limit of 1 MB.", + "nullable": true + }, + "gcpCloudFunctionUrl": { + "type": "string", + "description": "If a GCP Cloud Function URL is provided it is getting called at the end of the replication process.", + "nullable": true + } + } + }, + "openshift": { + "type": "object", + "properties": { + "openShiftTemplate": { + "type": "string", + "description": "template definition YML to setup a template for projects created in Open Shift", + "nullable": true + } + } + }, + "aks": { + "required": [ + "kubernetesRoleMappings" + ], + "type": "object", + "properties": { + "kubernetesRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + }, + "type": { + "type": "string", + "description": "The platform type. Possible values are: 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift'." + }, + "aws": { + "required": [ + "awsEnrollAccount", + "awsRoleMappings", + "awsTargetOrgUnitId" + ], + "type": "object", + "properties": { + "awsTargetOrgUnitId": { + "type": "string", + "description": "The created AWS account for this Landing Zone will be put under the given Organizational Unit. You can also input a Root ID (starting with 'r-') then the account will be put directly under this root without assigning it to an OU (this is not recommended)." + }, + "awsLambdaArn": { + "type": "string", + "description": "If this Lambda ARN is given, it is invoked after each project replication. You can use it to trigger a custom Account Vending Machine to perform several additional provisioning steps.", + "nullable": true + }, + "awsRoleMappings": { + "type": "array", + "description": "Roles can be mapped from the meshRole to the AWS Role. The AWS role will be part of the role or group name within AWS. If empty, the default that is configured on platform level will be used.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "awsEnrollAccount": { + "type": "boolean", + "description": "If true, accounts will be enrolled to AWS control tower. In case an enrollment configuration is provided for the AWS platform AND this value is set to true, created AWS accounts will automatically be enrolled with AWS Control Tower. Automatic account enrollment does also require the Target Organizational Unit to already be enrolled with AWS Control Tower and the corresponding meshfed-service role needs to be in the \"IAM Principal\" list for the Portfolio access of the Account Factory Product ID you defined in platform settings. Click https://docs.meshcloud.io/integrations/aws/how-to-integrate/#8-integrate-aws-control-tower[here] to learn more about the Control Tower setup." + } + } + }, + "azure": { + "required": [ + "azureManagementGroupId", + "azureRoleMappings" + ], + "type": "object", + "properties": { + "azureRoleMappings": { + "type": "array", + "description": "An array of mappings between the meshRole and the Azure specific access role. If empty, default role mappings defined on meshPlatform level are used. For more information see https://docs.meshcloud.io/meshstack.azure.landing-zones#meshrole-to-platform-role-mapping[the Landing Zone documentation]. If empty, the default that is configured on platform level will be used.", + "items": { + "required": [ + "azureGroupSuffix", + "azureRoleDefinitions" + ], + "type": "object", + "properties": { + "azureRoleDefinitions": { + "type": "array", + "description": "Role Definitions with the given IDs will be attached to this Azure Role", + "items": { + "type": "object", + "properties": { + "abacCondition": { + "type": "string", + "description": "an ABAC condition for the role assignment in form of a string", + "nullable": true + } + } + } + }, + "azureGroupSuffix": { + "type": "string", + "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." + } + } + } + }, + "azureFunction": { + "required": [ + "azureFunctionUrl" + ], + "type": "object", + "properties": { + "azureFunctionScope": { + "type": "string", + "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", + "nullable": true + }, + "azureFunctionUrl": { + "type": "string", + "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" + } + }, + "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." + }, + "azureManagementGroupId": { + "type": "string", + "description": "Subscriptions with this Landing Zone will be added to this Management Group. Please make sure to use the Management Group ID and not the group name!" + } + } + } + }, + "description": "Custom properties for the platform of the landing zone. The values depend on the platform type. " + }, + "quotas": { + "type": "array", + "description": "List of default quotas applied via this landing zone. Quotas define resource limits that will be applied to tenants using this landing zone. Tenants can afterwards request different quotas if needed. The available quota keys depend on the platform type and its quota definitions. For platforms that do not support quotas, this will be an empty array.", + "items": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "The quota value for this landing zone. Must be within the min/max range defined in the platform's quota definition." + }, + "key": { + "type": "string", + "description": "The quota key as defined in the platform's quota definitions. Must match a quota definition key from the platform." + } + } + } + }, + "automateDeletionApproval": { + "type": "boolean", + "description": "Whether deletion approval is automated for this landing zone." + }, + "displayName": { + "type": "string", + "description": "The human-readable display name of the meshLandingZone." + }, + "description": { + "type": "string", + "description": "The description of the meshLandingZone.", + "nullable": true + }, + "automateDeletionReplication": { + "type": "boolean", + "description": "Whether deletion replication is automated for this landing zone." + }, + "platformRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshPlatform\"" + }, + "uuid": { + "type": "string", + "description": "The UUID of the platform instance." + } + }, + "description": "Reference to the platform instance this landing zone belongs to." + }, + "infoLink": { + "type": "string", + "description": "An optional link to describe more details about the landing zone", + "nullable": true + } + }, + "description": "All fields in this section describe the meshLandingZone." + } + } + }, + "meshProjectRoleV1Post": { + "title": "meshProjectRoleV1Post", + "type": "object" + }, + "meshProjectGroupBindingListV3": { + "title": "meshProjectGroupBindingListV3", + "required": [ + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshProjectGroupBindings" + ], + "type": "object", + "properties": { + "meshProjectGroupBindings": { + "type": "array", + "description": "List of meshProjectGroupBindings.", + "items": { + "type": "object", + "properties": { + "targetRef": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier of the project the group is assigned to." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace which contains the project." + } + } + }, + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier of this user group." + } + } + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this group." + } + } + } + } + } + } + } + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshBuildingBlock": { + "title": "meshBuildingBlock", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec", + "status" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "createdOn", + "definitionUuid", + "definitionVersion", + "forcePurge", + "tenantIdentifier", + "uuid" + ], + "type": "object", + "properties": { + "markedForDeletionOn": { + "type": "string", + "description": "If the Building Block has been marked for deletion, the date when a user requested the deletion is provided via this field. e.g. `2020-12-22T09:37:43Z`", + "nullable": true + }, + "forcePurge": { + "type": "boolean", + "description": "Set to true, if an operator explicitly requested this Building Block to be purged." + }, + "definitionVersion": { + "type": "number", + "description": "The version number of the Building Block Definition this Building Block is based on." + }, + "markedForDeletionBy": { + "type": "string", + "description": "If the Building Block has already been deleted, the username of the user who triggered the deletion is provided here.", + "nullable": true + }, + "createdOn": { + "type": "string", + "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." + }, + "uuid": { + "type": "string", + "description": "The UUID to uniquely identify the Building Block." + }, + "definitionUuid": { + "type": "string", + "description": "The UUID of the Building Block Definition this Building Block is based on." + }, + "tenantIdentifier": { + "type": "string", + "description": "The full identifier of the tenant, this Building Block is created in." + } + }, + "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." + }, + "apiVersion": { + "type": "string", + "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a Building Block." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { + "required": [ + "displayName", + "inputs", + "parentBuildingBlocks" + ], + "type": "object", + "properties": { + "parentBuildingBlocks": { + "type": "array", + "description": "List of parent building blocks, which are set on the Building Block.", + "items": { + "required": [ + "buildingBlockUuid", + "definitionUuid" + ], + "type": "object", + "properties": { + "buildingBlockUuid": { + "type": "string", + "description": "The UUID of the parent Building Block." + }, + "definitionUuid": { + "type": "string", + "description": "The UUID of the Building Block Definition of the parent Building Block." + } + } + } + }, + "inputs": { + "type": "array", + "description": "List of inputs, which are set on the Building Block.", + "items": { + "required": [ + "key", + "value", + "valueType" + ], + "type": "object", + "properties": { + "valueType": { + "type": "string", + "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." + }, + "value": { + "type": "string", + "description": "The value, which is set on this input." + }, + "key": { + "type": "string", + "description": "The key of the input as set on the related Building Block Definition." + } + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the Building Block as it is shown in meshPanel." + } + }, + "description": "All fields in this section describe the Building Block." + }, + "status": { + "required": [ + "outputs", + "status" + ], + "type": "object", + "properties": { + "outputs": { + "type": "array", + "description": "List of outputs, which are set on the Building Block.", + "items": { + "required": [ + "key", + "value", + "valueType" + ], + "type": "object", + "properties": { + "valueType": { + "type": "string", + "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." + }, + "value": { + "type": "string", + "description": "The value, which is set on this output." + }, + "key": { + "type": "string", + "description": "The key of the output as set on the related Building Block Definition." + } + } + } + }, + "status": { + "type": "string", + "description": "The status of the Building Block. One of WAITING_FOR_DEPENDENT_INPUT, WAITING_FOR_OPERATOR_INPUT, WAITING_FOR_USER_INPUT, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ABORTED." + } + }, + "description": "All fields in this section describe the current status of the Building Block." + } + } + }, + "meshTenantListV3": { + "title": "meshTenantListV3", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshTenants" + ], + "type": "object", + "properties": { + "meshTenants": { + "type": "array", + "description": "List of meshTenant.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "api-meshobjects-meshcommunicationdefinitions-uuid1963883446": { + "required": [ + "apiVersion", + "kind" + ], + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "description": "API version of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of mesh object, always 'MeshCommunicationDefinition'." + }, + "spec": { + "type": "object", + "properties": { + "communication": { + "required": [ + "dueDate", + "message", + "title", + "type" + ], + "type": "object", + "properties": { + "skipEmailNotifications": { + "type": "boolean", + "description": "Whether to skip sending email notifications for this communication. Defaults to false.", + "nullable": true + }, + "dueDate": { + "type": "string", + "description": "The due date in ISO 8601 format." + }, + "type": { + "type": "string", + "description": "The type of communication: ACTION_REQUIRED or NOTIFICATION." + }, + "message": { + "type": "string", + "description": "The message content of the communication." + }, + "title": { + "type": "string", + "description": "The title of the communication definition." + } + } + } + } + } + } + }, + "meshCommunicationDefinitionPost": { + "title": "meshCommunicationDefinitionPost", + "type": "object", + "properties": { + "status": { + "required": [ + "communicationsOpen", + "communicationsResolved", + "communicationsTotal" + ], + "type": "object", + "properties": { + "communicationsOpen": { + "type": "number", + "description": "the amount of open (unresolved) communications. This field is only present for communication definitions of type ACTION_REQUIRED, because other types of communications are not meant to be resolved." + }, + "communicationsResolved": { + "type": "number", + "description": "the amount of resolved communications. This field is only present for communication definitions of type ACTION_REQUIRED, because other types of communications are not meant to be resolved." + }, + "communicationsTotal": { + "type": "number", + "description": "the total amount of communications associated to this definition." + } + } + } + } + }, + "api-meshobjects-meshintegrations-uuid-1771799843": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the integration across all integrations.", + "nullable": true + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace identifier that owns this integration." + } + }, + "description": "Contains identifiers and ownership information for the integration." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + }, + "spec": { + "required": [ + "config", + "displayName" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the integration." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "github": { + "required": [ + "appId", + "appPrivateKey", + "baseUrl", + "owner", + "runnerRef" + ], + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The GitHub organization or user that owns the repositories." + }, + "baseUrl": { + "type": "string", + "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." + }, + "appPrivateKey": { + "type": "string", + "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." + }, + "appId": { + "type": "string", + "description": "The GitHub App ID for authentication." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitHub-specific integration configuration." + }, + "azuredevops": { + "required": [ + "baseUrl", + "organization", + "personalAccessToken", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." + }, + "organization": { + "type": "string", + "description": "The Azure DevOps organization name." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + }, + "personalAccessToken": { + "type": "string", + "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + } + }, + "description": "Azure DevOps-specific integration configuration." + }, + "gitlab": { + "required": [ + "baseUrl", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitLab-specific integration configuration." + }, + "type": { + "type": "string", + "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab', 'metering', 'replicator'." + } + }, + "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab', 'metering', 'replicator') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." + } + }, + "description": "All fields in this section describe the integration configuration." + } + } + }, + "meshProjectGroupBindingV3": { + "title": "meshProjectGroupBindingV3", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata" + ], + "type": "object", + "properties": { + "targetRef": { + "required": [ + "displayName", + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the project the group is assigned to." + }, + "name": { + "type": "string", + "description": "The identifier of the project the group is assigned to." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace which contains the project." + } + } + }, + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The meshProjectGroupBinding identifier as 'name' to uniquely identify the meshProjectGroupBinding." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshProjectGroupBinding." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshProjectGroupBinding datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Currently only contains the self link." + }, + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier of this user group." + } + } + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProjectGroupBinding' for this endpoint." + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this group." + } + } + } + } + }, + "meshIntegration-Get-gitlab": { + "title": "meshIntegration-Get-gitlab", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "createdOn": { + "type": "string", + "description": "Timestamp when the integration was created. This field is automatically set by the system and cannot be modified.", + "nullable": true + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the integration across all integrations.", + "nullable": true + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace identifier that owns this integration." + } + }, + "description": "Contains identifiers and ownership information for the integration." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshIntegration." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + }, + "spec": { + "required": [ + "config", + "displayName" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the integration." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "github": { + "required": [ + "appId", + "appPrivateKey", + "baseUrl", + "owner", + "runnerRef" + ], + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The GitHub organization or user that owns the repositories." + }, + "baseUrl": { + "type": "string", + "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." + }, + "appPrivateKey": { + "type": "string", + "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." + }, + "appId": { + "type": "string", + "description": "The GitHub App ID for authentication." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitHub-specific integration configuration." + }, + "azuredevops": { + "required": [ + "baseUrl", + "organization", + "personalAccessToken", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." + }, + "organization": { + "type": "string", + "description": "The Azure DevOps organization name." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + }, + "personalAccessToken": { + "type": "string", + "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + } + }, + "description": "Azure DevOps-specific integration configuration." + }, + "gitlab": { + "required": [ + "baseUrl", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitLab-specific integration configuration." + }, + "type": { + "type": "string", + "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab', 'metering', 'replicator'." + } + }, + "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab', 'metering', 'replicator') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." + } + }, + "description": "All fields in this section describe the integration configuration." + }, + "status": { + "required": [ + "isBuiltIn" + ], + "type": "object", + "properties": { + "workloadIdentityFederation": { + "required": [ + "issuer", + "subject" + ], + "type": "object", + "properties": { + "gcp": { + "required": [ + "audience" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "GCP Workload Identity Pool audience for token exchange." + } + }, + "description": "Google Cloud Platform specific WIF configuration." + }, + "subject": { + "type": "string", + "description": "OIDC subject claim for Workload Identity Federation. Identifies the workload service account." + }, + "aws": { + "required": [ + "audience", + "thumbprint" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "AWS STS audience for AssumeRoleWithWebIdentity." + }, + "thumbprint": { + "type": "string", + "description": "AWS OIDC provider thumbprint for trust verification." + } + }, + "description": "Amazon Web Services specific WIF configuration." + }, + "issuer": { + "type": "string", + "description": "OIDC issuer URL for Workload Identity Federation." + }, + "azure": { + "required": [ + "audience" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "Azure AD audience for workload identity federation." + } + }, + "description": "Microsoft Azure specific WIF configuration." + } + }, + "description": "Workload Identity Federation (WIF) configuration for this integration. Only present for built-in integrations. Provides OIDC issuer, subject, and cloud provider-specific configuration needed to set up trust relationships for workload identity." + }, + "isBuiltIn": { + "type": "boolean", + "description": "Indicates whether this integration is a built-in system integration." + } + }, + "description": "Status information for integrations. Always includes the isBuiltIn field in responses. Workload Identity Federation (WIF) information is only present for built-in integrations. This field is read-only and ignored in request bodies." + } + } + }, + "meshPaymentMethodV2": { + "title": "meshPaymentMethodV2", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The paymentMethodIdentifier as 'name'." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspaceIdentifier as 'ownedByWorkspace'." + } + }, + "description": "Always contains the 'name' and (optional) 'ownedByWorkspace' to uniquely identify the meshPaymentMethod." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshPaymentMethod datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshPaymentMethod." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPaymentMethod' for this endpoint." + }, + "spec": { + "required": [ + "displayName" + ], + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "The amount of the meshPaymentMethod.", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the meshPaymentMethod as it is shown in meshPanel." + }, + "expirationDate": { + "type": "string", + "description": "The expiration date (yyyy-MM-dd) of the meshPaymentMethod. The date is considered as UTC.", + "nullable": true + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshPaymentMethod. Keep in mind, that values are an array.", + "nullable": true + } + }, + "description": "All fields in this section describe the meshPaymentMethod." + } + } + }, + "api-meshobjects-meshserviceinstances-serviceInstanceId-343819711": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "instanceId", + "marketplaceIdentifier", + "ownedByProject", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "ownedByProject": { + "type": "string", + "description": "The project that this Service Instance belongs to." + }, + "marketplaceIdentifier": { + "type": "string", + "description": "The identifier of the marketplace that this Service Instance belongs to." + }, + "instanceId": { + "type": "string", + "description": "The instance id this Service Instance should use." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace that this Service Instance belongs to." + } + }, + "description": "Metadata and more fields to identify the Service Instance." + }, + "apiVersion": { + "type": "string", + "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { + "required": [ + "creator", + "displayName", + "planId", + "serviceId" + ], + "type": "object", + "properties": { + "creator": { + "type": "string", + "description": "The creator's username that creates this Service Instance" + }, + "displayName": { + "type": "string", + "description": "The display name of the Service Instance." + }, + "planId": { + "type": "string", + "description": "The id of the plan for this Service Instance" + }, + "serviceId": { + "type": "string", + "description": "The id of the service for the Service Instance" + } + }, + "description": "Specifications for the Service Instance." + } + } + }, + "meshTagDefinitionPost": { + "title": "meshTagDefinitionPost", + "type": "object" + }, + "meshProjectUserBindingListV3": { + "title": "meshProjectUserBindingListV3", + "required": [ + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshProjectUserBindings" + ], + "type": "object", + "properties": { + "meshProjectUserBindings": { + "type": "array", + "description": "List of meshProjectUserBindings.", + "items": { + "type": "object", + "properties": { + "targetRef": { + "required": [ + "displayName", + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the project the user is assigned to." + }, + "name": { + "type": "string", + "description": "The identifier of the project the user is assigned to." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace which contains the project." + } + } + }, + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username of the referenced user." + } + } + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this user." + } + } + } + } + } + } + } + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshCommunicationList": { + "title": "meshCommunicationList", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshCommunications" + ], + "type": "object", + "properties": { + "meshCommunications": { + "type": "array", + "description": "List of meshCommunications.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshBuildingBlockDefinitionListV1": { + "title": "meshBuildingBlockDefinitionListV1", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Contains the self link and pagination links (first, last, next, prev). Also includes a link to the related tenant." + }, + "_embedded": { + "required": [ + "meshBuildingBlockDefinitions" + ], + "type": "object", + "properties": { + "meshBuildingBlockDefinitions": { + "type": "array", + "description": "List of meshBuildingBlockDefinitions.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "meshWorkspaceList": { + "title": "meshWorkspaceList", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshWorkspaces" + ], + "type": "object", + "properties": { + "meshWorkspaces": { + "type": "array", + "description": "List of meshWorkspaces.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "api-metadata-openstackProjectMetadata-1305671199": { + "required": [ + "project-id" + ], + "type": "object", + "properties": { + "project-id": { + "type": "string", + "description": "The ID of the project metadata information shall be retrieved for." + } + } + }, + "openStackProjectMetadata": { + "title": "openStackProjectMetadata", + "required": [ + "customer-display-name", + "customer-identifier", + "project-display-name", + "project-identifier", + "tags" + ], + "type": "object", + "properties": { + "customer-display-name": { + "type": "string", + "description": "Human readable customer name." + }, + "project-identifier": { + "type": "string", + "description": "Immutable unique identifier of the project." + }, + "customer-identifier": { + "type": "string", + "description": "Immutable unique identifier of the customer" + }, + "project-display-name": { + "type": "string", + "description": "Human readable project name." + }, + "tags": { + "required": [ + "costCenter", + "customNumber" + ], + "type": "object", + "properties": { + "costCenter": { + "type": "array", + "description": "A cost center number could be a custom tag.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "customNumber": { + "type": "array", + "description": "And any further attribute can be provided as a tag.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + }, + "description": "Custom tags specified on the project." + } + } + }, + "api-meshobjects-meshcommunicationdefinitions-1419667539": { + "required": [ + "apiVersion", + "kind" + ], + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "description": "API version of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of mesh object, always 'meshCommunicationDefinition'." + }, + "spec": { + "type": "object", + "properties": { + "communication": { + "required": [ + "dueDate", + "message", + "title", + "type" + ], + "type": "object", + "properties": { + "skipEmailNotifications": { + "type": "boolean", + "description": "Whether to skip sending email notifications for this communication. Defaults to false.", + "nullable": true + }, + "dueDate": { + "type": "string", + "description": "Due date in ISO 8601 format." + }, + "type": { + "type": "string", + "description": "Type of communication: ACTION_REQUIRED or NOTIFICATION." + }, + "message": { + "type": "string", + "description": "Content of the message." + }, + "title": { + "type": "string", + "description": "Title of the communication." + } + } + } + } + } + } + }, + "meshCommunicationDefinition": { + "title": "meshCommunicationDefinition", + "required": [ + "_links", + "apiVersion", + "kind" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Unique identifier." + } + } + }, + "apiVersion": { + "type": "string", + "description": "API version." + }, + "_links": { + "type": "object", + "description": "Currently only contains the self link." + }, + "kind": { + "type": "string", + "description": "Resource kind, always 'meshCommunicationDefinition'." + }, + "spec": { + "type": "object", + "properties": { + "communication": { + "required": [ + "dueDate", + "message", + "title", + "type" + ], + "type": "object", + "properties": { + "skipEmailNotifications": { + "type": "boolean", + "description": "Whether to skip sending email notifications for this communication. Defaults to false.", + "nullable": true + }, + "dueDate": { + "type": "string", + "description": "Due date (ISO format)." + }, + "type": { + "type": "string", + "description": "Type of communication (e.g. ACTION_REQUIRED)." + }, + "message": { + "type": "string", + "description": "Message content." + }, + "title": { + "type": "string", + "description": "Title of the communication." + } + } + } + } + }, + "status": { + "required": [ + "communicationsOpen", + "communicationsResolved", + "communicationsTotal" + ], + "type": "object", + "properties": { + "communicationsOpen": { + "type": "number", + "description": "the amount of open (unresolved) communications. This field is only present for communication definitions of type ACTION_REQUIRED, because other types of communications are not meant to be resolved." + }, + "communicationsResolved": { + "type": "number", + "description": "the amount of resolved communications. This field is only present for communication definitions of type ACTION_REQUIRED, because other types of communications are not meant to be resolved." + }, + "communicationsTotal": { + "type": "number", + "description": "the total amount of communications associated to this definition." + } + } + } + } + }, + "meshWorkspaceGroupBinding": { + "title": "meshWorkspaceGroupBinding", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata" + ], + "type": "object", + "properties": { + "targetRef": { + "required": [ + "displayName", + "name" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the workspace the group is assigned to." + }, + "name": { + "type": "string", + "description": "The identifier of the workspace the group is assigned to." + } + } + }, + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The meshWorkspaceGroupBinding identifier as 'name' to uniquely identify the meshWorkspaceGroupBinding." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshWorkspaceGroupBinding." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshWorkspaceGroupBinding datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Currently only contains the self link." + }, + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier of this workspace user group." + } + } + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceGroupBinding' for this endpoint." + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this group." + } + } + } + } + }, + "meshProjectV2": { + "title": "meshProjectV2", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "deletedOn": { + "type": "string", + "description": "If the meshProject has been submitted for deletion by a Workspace Manager, the date, the date is represented here (e.g. `2020-12-22T09:37:43Z)`. Otherwise this field is missing.", + "nullable": true + }, + "name": { + "type": "string", + "description": "The projectIdentifier as 'name'." + }, + "createdOn": { + "type": "string", + "description": "The meshProject has been created at this date (e.g. `2020-12-22T09:37:43Z`).", + "nullable": true + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspaceIdentifier as 'ownedByWorkspace'." + } + }, + "description": "Always contains the 'name' and 'ownedByWorkspace' to uniquely identify the meshProject." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshProject." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." + }, + "spec": { + "required": [ + "displayName", + "tags" + ], + "type": "object", + "properties": { + "substitutePaymentMethodIdentifier": { + "type": "string", + "description": "The substitutePaymentMethod of the meshProject", + "nullable": true + }, + "paymentMethodIdentifier": { + "type": "string", + "description": "The meshPaymentMethod of the meshProject.", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the meshProject as it is shown in meshPanel." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshProject. Keep in mind, that values are an array." + } + }, + "description": "All fields in this section describe the meshProject." + } + } + }, + "api-meshobjects-meshserviceinstances2008903272": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "instanceId", + "marketplaceIdentifier", + "ownedByProject", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "ownedByProject": { + "type": "string", + "description": "The project that this Service Instance belongs to." + }, + "marketplaceIdentifier": { + "type": "string", + "description": "The identifier of the marketplace that this Service Instance belongs to." + }, + "instanceId": { + "type": "string", + "description": "The instance id this Service Instance should use." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace that this Service Instance belongs to." + } + }, + "description": "Metadata and more fields to identify the Service Instance." + }, + "apiVersion": { + "type": "string", + "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { + "required": [ + "creator", + "displayName", + "planId", + "serviceId" + ], + "type": "object", + "properties": { + "creator": { + "type": "string", + "description": "The meshUser's `username` that should be passed to the Open Service Broker via the `X-Broker-API-Originating-Identity` header." + }, + "displayName": { + "type": "string", + "description": "The display name of the Service Instance." + }, + "planId": { + "type": "string", + "description": "The id of the plan for this Service Instance" + }, + "serviceId": { + "type": "string", + "description": "The id of the service for the Service Instance" + } + }, + "description": "Specifications for the Service Instance." + } + } + }, + "api-meshobjects-meshbuildingblockdefinitions-uuid-1197355657": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "ownedByWorkspace", + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The uuid of the Building Blocks Definition." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the Building Blocks Definition belongs to." + } + }, + "description": "Always contains the 'uuid' to uniquely identify the Building Block Definition. It also contains additional meta information like the Building Block Definition creation date." + }, + "apiVersion": { + "type": "string", + "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." + }, + "spec": { + "required": [ + "description", + "displayName", + "notificationSubscriberUsernames", + "supportedPlatforms", + "targetType", + "useInLandingZonesOnly" + ], + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "The symbol of the Building Block Definition as it is shown in meshPanel. (optional)", + "nullable": true + }, + "documentationUrl": { + "type": "string", + "description": "The URL pointing to documentation of the Building Block Definition. (optional)", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the Building Block Definition as it is shown in meshPanel." + }, + "supportUrl": { + "type": "string", + "description": "The URL pointing to support of the Building Block Definition. (optional)", + "nullable": true + }, + "description": { + "type": "string", + "description": "The description of the Building Block Definition as it is shown in meshPanel." + }, + "targetType": { + "type": "string", + "description": "The type of Building Block Definition. (One of [TENANT_LEVEL, WORKSPACE_LEVEL])" + }, + "runTransparency": { + "type": "boolean", + "description": "Specifies the Building Block Definition run control. When set to true, both platform teams and workspace users can view detailed run logs and re-run building blocks. When set to false (default), only platform teams have this access. (Optional)", + "nullable": true + }, + "supportedPlatforms": { + "type": "array", + "description": "List of the platforms this Building Block Definition supports", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "notificationSubscriberUsernames": { + "type": "array", + "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "useInLandingZonesOnly": { + "type": "boolean", + "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." + } + }, + "description": "All fields in this section describe the Building Block Definition." + } + } + }, + "meshLocation-Post": { + "title": "meshLocation-Post", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier that uniquely identifies the meshLocation." + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the meshLocation. This is a common attribute for all meshObjects, but in case of a meshLocation it is not used for referencing the location. Instead the name (identifier) is used.", + "nullable": true + } + }, + "description": "Contains the identifiers for the meshLocation." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshLocation datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshLocation." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLocation' for this endpoint." + }, + "spec": { + "required": [ + "displayName" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the meshLocation shown in the UI." + }, + "description": { + "type": "string", + "description": "An optional description of the meshLocation.", + "nullable": true + } + }, + "description": "All fields in this section describe the meshLocation configuration." + }, + "status": { + "required": [ + "isPublic" + ], + "type": "object", + "properties": { + "isPublic": { + "type": "boolean", + "description": "Indicates whether the location has any public platform instances associated with it." + } + }, + "description": "The current status of the meshLocation." + } + } + }, + "meshPlatformTypeV1Put": { + "title": "meshPlatformTypeV1Put", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier that uniquely identifies the meshPlatformType." + }, + "createdOn": { + "type": "string", + "description": "Timestamp when the meshPlatformType was created.", + "nullable": true + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the meshPlatformType across all platform types.", + "nullable": true + } + }, + "description": "Contains the identifiers for the meshPlatformType." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshPlatformType datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshPlatformType." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatformType' for this endpoint." + }, + "spec": { + "required": [ + "category", + "displayName", + "icon" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the meshPlatformType shown in the UI." + }, + "icon": { + "type": "string", + "description": "The icon used to display the platform type in the UI. This must be provided as a base64 encoded data image. Size should be kept small to ensure fast loading times and efficient storage." + }, + "defaultEndpoint": { + "type": "string", + "description": "The default endpoint URL for the platform type. This will be used as a default value when creating platform instances. The default endpoint should be a link to a web portal of the cloud platform for example.", + "nullable": true + }, + "category": { + "type": "string", + "description": "The platform category. For custom platform types, this is always 'CUSTOM'. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." + } + }, + "description": "All fields in this section describe the meshPlatformType configuration." + }, + "status": { + "required": [ + "lifecycleState" + ], + "type": "object", + "properties": { + "lifecycleState": { + "type": "string", + "description": "The lifecycle state of the platform type. Can be 'ACTIVE' or 'DEACTIVATED'. Deactivated platform types cannot be used to create new platform instances." + } + }, + "description": "The current status of the meshPlatformType." + } + } + }, + "api-meshobjects-meshpaymentmethods-identifier486549215": { + "type": "object" + }, + "meshBuildingBlockPostV2": { + "title": "meshBuildingBlockPostV2", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec", + "status" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "createdOn", + "ownedByWorkspace", + "uuid" + ], + "type": "object", + "properties": { + "markedForDeletionOn": { + "type": "string", + "description": "If the Building Block has been marked for deletion, the date when a user requested the deletion is provided via this field. e.g. `2020-12-22T09:37:43Z`", + "nullable": true + }, + "markedForDeletionBy": { + "type": "string", + "description": "If the Building Block has already been deleted, the username of the user who triggered the deletion is provided here.", + "nullable": true + }, + "createdOn": { + "type": "string", + "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." + }, + "uuid": { + "type": "string", + "description": "The UUID to uniquely identify the Building Block." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the Building Blocks belongs to." + } + }, + "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." + }, + "apiVersion": { + "type": "string", + "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a Building Block." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { + "required": [ + "buildingBlockDefinitionVersionRef", + "displayName", + "inputs", + "parentBuildingBlocks", + "targetRef" + ], + "type": "object", + "properties": { + "parentBuildingBlocks": { + "type": "array", + "description": "List of inputs, which are set on the Building Block.", + "items": { + "required": [ + "buildingBlockUuid", + "definitionUuid" + ], + "type": "object", + "properties": { + "buildingBlockUuid": { + "type": "string", + "description": "The UUID of the parent Building Block." + }, + "definitionUuid": { + "type": "string", + "description": "The UUID of the Building Block Definition of the parent Building Block." + } + } + } + }, + "targetRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshTenant\"" + }, + "uuid": { + "type": "string", + "description": "The uuid of the tenant for this Building Block" + } + }, + "description": "The reference to either a tenant or workspace the Building Block is located on." + }, + "inputs": { + "type": "array", + "description": "List of inputs, which are set on the Building Block.", + "items": { + "required": [ + "key", + "value", + "valueType" + ], + "type": "object", + "properties": { + "valueType": { + "type": "string", + "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." + }, + "value": { + "type": "string", + "description": "The value, which is set on this input." + }, + "key": { + "type": "string", + "description": "The key of the input as set on the related Building Block Definition." + } + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the Building Block as it is shown in meshPanel." + }, + "buildingBlockDefinitionVersionRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockDefinitionVersion\"" + }, + "uuid": { + "type": "string", + "description": "The uuid of the meshBuildingBlockDefinitionVersion for this Building Block" + } + }, + "description": "The reference to the meshBuildingBlockDefinitionVersion for this Building Block" + } + }, + "description": "All fields in this section describe the Building Block." + }, + "status": { + "required": [ + "forcePurge", + "outputs", + "status" + ], + "type": "object", + "properties": { + "outputs": { + "type": "array", + "description": "List of outputs, which are set on the Building Block. Empty, just after creation.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "forcePurge": { + "type": "boolean", + "description": "Indicates whether this building block was marked to be purged." + }, + "status": { + "type": "string", + "description": "The status of the Building Block. One of WAITING_FOR_DEPENDENT_INPUT, WAITING_FOR_OPERATOR_INPUT, WAITING_FOR_USER_INPUT, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ABORTED." + } + }, + "description": "All fields in this section describe the current status of the Building Block." + } + } + }, + "meshBuildingBlockDefinitionPostV1": { + "title": "meshBuildingBlockDefinitionPostV1", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec", + "status" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "createdOn", + "ownedByWorkspace", + "tags", + "uuid" + ], + "type": "object", + "properties": { + "createdOn": { + "type": "string", + "description": "The Building Block Definition has been created at this date (e.g. `2020-12-22T09:37:43Z`)." + }, + "uuid": { + "type": "string", + "description": "The UUID to uniquely identify the Building Block Definition." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the Building Block Definition. Keep in mind, that values are an array." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the Building Blocks Definition belongs to." + } + }, + "description": "Always contains the 'uuid' to uniquely identify the Building Block Definition. It also contains additional meta information like the Building Block Definition creation date." + }, + "apiVersion": { + "type": "string", + "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a Building Block Definition." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." + }, + "spec": { + "required": [ + "description", + "displayName", + "documentationUrl", + "notificationSubscriberUsernames", + "runTransparency", + "supportUrl", + "supportedPlatforms", + "symbol", + "targetType", + "useInLandingZonesOnly" + ], + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "The symbol of the Building Block Definition as it is shown in meshPanel." + }, + "documentationUrl": { + "type": "string", + "description": "The URL pointing to documentation of the Building Block Definition. (optional)" + }, + "displayName": { + "type": "string", + "description": "The display name of the Building Block Definition as it is shown in meshPanel." + }, + "supportUrl": { + "type": "string", + "description": "The URL pointing to support of the Building Block Definition. (optional)" + }, + "description": { + "type": "string", + "description": "The description of the Building Block Definition as it is shown in meshPanel." + }, + "targetType": { + "type": "string", + "description": "The type of Building Block Definition. (One of [TENANT_LEVEL, WORKSPACE_LEVEL])" + }, + "runTransparency": { + "type": "boolean", + "description": "Specifies the Building Block Definition run control. When set to true, both platform teams and workspace users can view detailed run logs and re-run building blocks. When set to false (default), only platform teams have this access." + }, + "supportedPlatforms": { + "type": "array", + "description": "List of the platforms this Building Block Definition supports", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "notificationSubscriberUsernames": { + "type": "array", + "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "useInLandingZonesOnly": { + "type": "boolean", + "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." + } + }, + "description": "All fields in this section describe the Building Block Definition." + }, + "status": { + "required": [ + "latestReleasedVersion", + "latestVersion", + "versions" + ], + "type": "object", + "properties": { + "versions": { + "type": "array", + "description": "List of meshBuildingBlockDefinitionVersions, which exist for the Building Block Definition.", + "items": { + "required": [ + "state", + "versionNumber", + "versionUuid" + ], + "type": "object", + "properties": { + "versionUuid": { + "type": "string", + "description": "The uuid of the listed version" + }, + "state": { + "type": "string", + "description": "The state of the listed version. (One of [DRAFT, RELEASED])" + }, + "versionNumber": { + "type": "number", + "description": "The number of the listed version." + } + } + } + }, + "latestReleasedVersion": { + "type": "number", + "description": "The number of the latest version based on this Building Block Definition not including a possible draft version." + }, + "latestVersion": { + "type": "number", + "description": "The number of the latest version based on this Building Block Definition including a possible draft version." + } + }, + "description": "All fields in this section describe the current status of the Building Block Definition." + } + } + }, + "meshServiceInstanceGet": { + "title": "meshServiceInstanceGet", + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "instanceId", + "marketplaceIdentifier", + "ownedByProject", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "ownedByProject": { + "type": "string", + "description": "The project that this Service Instance belongs to." + }, + "marketplaceIdentifier": { + "type": "string", + "description": "The identifier of the marketplace that this Service Instance belongs to." + }, + "instanceId": { + "type": "string", + "description": "The instance id this Service Instance should use." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace that this Service Instance belongs to." + } + }, + "description": "Metadata and more fields to identify the Service Instance." + }, + "apiVersion": { + "type": "string", + "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { + "required": [ + "creator", + "displayName", + "planId", + "serviceId" + ], + "type": "object", + "properties": { + "creator": { + "type": "string", + "description": "The meshUser `username` recorded as the creator of this Service Instance." + }, + "displayName": { + "type": "string", + "description": "The display name of the Service Instance." + }, + "planId": { + "type": "string", + "description": "The id of the plan for this Service Instance" + }, + "serviceId": { + "type": "string", + "description": "The id of the service for the Service Instance" + } + }, + "description": "Specifications for the Service Instance." + } + } + }, + "meshProjectRoleV1": { + "title": "meshProjectRoleV1", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "tags" + ], + "type": "object", + "properties": { + "deletedAt": { + "type": "string", + "description": "Timestamp when the meshProjectRole was marked for deletion. Only present if the role is deleted.", + "nullable": true + }, + "name": { + "type": "string", + "description": "The name to uniquely identify the meshProjectRole." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshProjectRole. Keep in mind, that values are an array." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshProjectRole." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshProjectRole datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "currently only provides a self link." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProjectRole' for this endpoint." + }, + "spec": { + "required": [ + "name", + "rank" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The display name of the meshProjectRole." + }, + "rank": { + "type": "number", + "description": "The rank of the role. Higher values represent greater privileges. Ranks are used to order project roles, with higher-privilege roles appearing above lower-privilege ones." + }, + "description": { + "type": "string", + "description": "A detailed description of the meshProjectRole and its permissions.", + "nullable": true + } + }, + "description": "All fields in this section describe the meshProjectRole." + } + } + }, + "api-meshobjects-meshbuildingblocks-1155129151": { + "required": [ + "apiVersion", + "kind", + "spec" + ], + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { + "required": [ + "buildingBlockDefinitionVersionRef", + "displayName", + "inputs", + "parentBuildingBlocks", + "targetRef" + ], + "type": "object", + "properties": { + "parentBuildingBlocks": { + "type": "array", + "description": "List of parent Building Blocks, which are required for the Building Block. If none given, an empty list needs to be provided.", + "items": { + "required": [ + "buildingBlockUuid", + "definitionUuid" + ], + "type": "object", + "properties": { + "buildingBlockUuid": { + "type": "string", + "description": "The UUID of the parent Building Block." + }, + "definitionUuid": { + "type": "string", + "description": "The UUID of the Building Block Definition of the parent Building Block." + } + } + } + }, + "targetRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshTenant\"" + }, + "uuid": { + "type": "string", + "description": "The uuid of the tenant for this Building Block" + } + }, + "description": "The reference to either a tenant or workspace the Building Block is located on." + }, + "inputs": { + "type": "array", + "description": "List of inputs, which are set on the Building Block.", + "items": { + "required": [ + "key", + "value", + "valueType" + ], + "type": "object", + "properties": { + "valueType": { + "type": "string", + "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." + }, + "value": { + "type": "string", + "description": "The value, which is set on this input." + }, + "key": { + "type": "string", + "description": "The key of the input as set on the related Building Block Definition." + } + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the Building Block as it is shown in meshPanel." + }, + "buildingBlockDefinitionVersionRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockDefinitionVersion\"" + }, + "uuid": { + "type": "string", + "description": "The uuid of the meshBuildingBlockDefinitionVersion for this Building Block" + } + }, + "description": "The reference to the meshBuildingBlockDefinitionVersion for this Building Block" + } + }, + "description": "All fields in this section describe the Building Block." + } + } + }, + "meshProjectPost": { + "title": "meshProjectPost", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The projectIdentifier as 'name'." + }, + "createdOn": { + "type": "string", + "description": "The meshProject has been created at this date (e.g. `2020-12-22T09:37:43Z`).", + "nullable": true + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspaceIdentifier as 'ownedByWorkspace'." + } + }, + "description": "Always contains the 'name' and 'ownedByWorkspace' to uniquely identify the meshProject." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshProject." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." + }, + "spec": { + "required": [ + "displayName", + "tags" + ], + "type": "object", + "properties": { + "substitutePaymentMethodIdentifier": { + "type": "string", + "description": "The substitutePaymentMethod of the meshProject", + "nullable": true + }, + "paymentMethodIdentifier": { + "type": "string", + "description": "The meshPaymentMethod of the meshProject.", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the meshProject as it is shown in meshPanel." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshProject. Keep in mind, that values are an array." + } + }, + "description": "All fields in this section describe the meshProject." + } + } + }, + "api-meshobjects-meshworkspacebindings-userbindings-1470058865": { + "required": [ + "apiVersion", + "kind" + ], + "type": "object", + "properties": { + "targetRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier of the workspace the user should get assigned to." + } + } + }, + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of this binding which later can be used to refer to it. It must be globally unique." + } + } + }, + "apiVersion": { + "type": "string", + "description": "Version of this object" + }, + "kind": { + "type": "string", + "description": "Type of the returned meshObject" + }, + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username of the referenced user." + } + } + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this user." + } + } + } + } + }, + "api-meshobjects-meshprojects-fullProjectIdentifier-1933825965": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The project identifier that must match the project identifier part of the fullProjectIdentifier in the URL path." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace identifier that must match the workspace identifier part of the fullProjectIdentifier in the URL path." + } + }, + "description": "Fixed fields that help to identify the meshProject. The name and ownedByWorkspace must match the fullProjectIdentifier in the URL path." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshProject datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." + }, + "spec": { + "required": [ + "displayName", + "tags" + ], + "type": "object", + "properties": { + "substitutePaymentMethodIdentifier": { + "type": "string", + "description": "The substitute payment method of the project.", + "nullable": true + }, + "paymentMethodIdentifier": { + "type": "string", + "description": "The payment method of the project.", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the project as it is shown in meshPanel." + }, + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the project. Keep in mind, that values are an array." + } + }, + "description": "All fields in this section describe the project and can be updated." + } + } + }, + "meshServiceInstancePost": { + "title": "meshServiceInstancePost", + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "instanceId", + "marketplaceIdentifier", + "ownedByProject", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "ownedByProject": { + "type": "string", + "description": "The project that this Service Instance belongs to." + }, + "marketplaceIdentifier": { + "type": "string", + "description": "The identifier of the marketplace that this Service Instance belongs to." + }, + "instanceId": { + "type": "string", + "description": "The instance id this Service Instance should use." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace that this Service Instance belongs to." + } + }, + "description": "Metadata and more fields to identify the Service Instance." + }, + "apiVersion": { + "type": "string", + "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { + "required": [ + "creator", + "displayName", + "planId", + "serviceId" + ], + "type": "object", + "properties": { + "creator": { + "type": "string", + "description": "The meshUser's `username` that should be passed to the Open Service Broker via the `X-Broker-API-Originating-Identity` header." + }, + "displayName": { + "type": "string", + "description": "The display name of the Service Instance." + }, + "planId": { + "type": "string", + "description": "The id of the plan for this Service Instance" + }, + "serviceId": { + "type": "string", + "description": "The id of the service for the Service Instance" + } + }, + "description": "Specifications for the Service Instance." + } + } + }, + "meshIntegration-Post-azure_devops": { + "title": "meshIntegration-Post-azure_devops", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "createdOn": { + "type": "string", + "description": "Timestamp when the integration was created. This field is automatically set by the system and cannot be modified.", + "nullable": true + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies the integration across all integrations.", + "nullable": true + }, + "ownedByWorkspace": { + "type": "string", + "description": "The workspace identifier that owns this integration." + } + }, + "description": "Contains identifiers and ownership information for the integration." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a meshIntegration." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + }, + "spec": { + "required": [ + "config", + "displayName" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the integration." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "github": { + "required": [ + "appId", + "appPrivateKey", + "baseUrl", + "owner", + "runnerRef" + ], + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The GitHub organization or user that owns the repositories." + }, + "baseUrl": { + "type": "string", + "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." + }, + "appPrivateKey": { + "type": "string", + "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." + }, + "appId": { + "type": "string", + "description": "The GitHub App ID for authentication." + }, + "runnerRef": { "required": [ - "accessConfig", - "filter", - "processing", - "reservedInstanceFairChargeback", - "savingsPlanFairChargeback" + "kind", + "uuid" ], "type": "object", "properties": { - "filter": { + "kind": { "type": "string", - "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." - }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" - }, - "accessConfig": { - "required": [ - "organizationRootAccountRole" - ], - "type": "object", - "properties": { - "organizationRootAccountRole": { - "type": "string", - "description": "ARN of the Management Account Role for metering access." - }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role for metering access via workload identity federation" - } - }, - "description": "Workload identity configuration for metering (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { - "required": [ - "accessKey", - "secretKey" - ], - "type": "object", - "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for metering service user" - }, - "accessKey": { - "type": "string", - "description": "AWS access key for metering service user" - } - }, - "description": "Service user configuration for metering (alternative to workloadIdentityConfig)" - }, - "organizationRootAccountExternalId": { - "type": "string", - "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", - "nullable": true - } - }, - "description": "AWS access configuration for metering. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." - }, - "savingsPlanFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for savings plans" + "description": "This is a fixed value \"meshBuildingBlockRunner\"." }, - "reservedInstanceFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for reserved instances" + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." } }, - "description": "Metering configuration for AWS (optional, but required for metering)" - }, - "region": { - "type": "string", - "description": "AWS region" + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." } }, - "description": "Configuration for AWS" + "description": "GitHub-specific integration configuration." }, - "azure": { + "azuredevops": { "required": [ - "entraTenant" + "baseUrl", + "organization", + "personalAccessToken", + "runnerRef" ], "type": "object", "properties": { - "replication": { + "baseUrl": { + "type": "string", + "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." + }, + "organization": { + "type": "string", + "description": "The Azure DevOps organization name." + }, + "runnerRef": { "required": [ - "azureRoleMappings", - "blueprintLocation", - "blueprintServicePrincipal", - "groupNamePattern", - "servicePrincipal", - "skipUserGroupPermissionCleanup", - "subscriptionNamePattern", - "userLookUpStrategy" + "kind", + "uuid" ], "type": "object", "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." - } - }, - "description": "Tenant tags configuration" - }, - "blueprintLocation": { - "type": "string", - "description": "The Azure location where replication creates and updates Blueprint Assignments. Note that it's still possible that the Blueprint creates resources in other locations, this is merely the location where the Blueprint Assignment is managed." - }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." - }, - "administrativeUnitId": { - "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", - "nullable": true - }, - "azureRoleMappings": { - "type": "array", - "description": "Role mappings for Azure with project role references", - "items": { - "required": [ - "azureRole", - "projectRoleRef" - ], - "type": "object", - "properties": { - "azureRole": { - "required": [ - "alias", - "id" - ], - "type": "object", - "properties": { - "alias": { - "type": "string", - "description": "Alias for the Azure role" - }, - "id": { - "type": "string", - "description": "ID of the Azure role" - } - }, - "description": "Azure role" - }, - "projectRoleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the project role" - } - }, - "description": "Reference to a meshProject role" - } - } - } - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." - }, - "blueprintServicePrincipal": { - "type": "string", - "description": "Object ID of the Enterprise Application belonging to the Microsoft Application 'Azure Blueprints'. meshStack will grant the necessary permissions on managed Subscriptions to this SPN so that it can create System Assigned Managed Identities (SAMI) for Blueprint execution." - }, - "provisioning": { - "type": "object", - "properties": { - "preProvisioned": { - "required": [ - "unusedSubscriptionNamePrefix" - ], - "type": "object", - "properties": { - "unusedSubscriptionNamePrefix": { - "type": "string", - "description": "The prefix that identifies unused subscriptions. Subscriptions will be renamed during meshStack's project replication, at which point they should no longer carry this prefix." - } - }, - "description": "If your organization does not have access to an Enterprise Enrollment, you can alternatively configure meshcloud to consume subscriptions from a pool of externally-provisioned subscriptions. This is useful for smaller organizations that wish to use 'Pay-as-you-go' subscriptions or if you're organization partners with an Azure Cloud Solution Provider to provide your subscriptions. The meshcloud Azure replication detects externally-provisioned subscriptions based on a configurable prefix in the subscription name. Upon assignment to a meshProject, the subscription is inflated with the right Landing Zone configuration and removed from the subscription pool." - }, - "customerAgreement": { - "required": [ - "billingScope", - "destinationEntraId", - "sourceEntraTenant", - "sourceServicePrincipal" - ], - "type": "object", - "properties": { - "sourceServicePrincipal": { - "required": [ - "authType", - "clientId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Must be set if and only if `authType` is `CREDENTIALS`. A valid secret for accessing the application. In Azure Portal, this can be configured on the \"App Registration\" under Certificates & secrets. https://docs.meshcloud.io/operations/security-faq/#how-does-meshstack-securely-handle-my-cloud-platform-credentials[How is this information secured?]", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Must be one of `CREDENTIALS` or `WORKLOAD_IDENTITY`. Workload Identity Federation is the one that we recommend as it enables the most secure approach to provide access to your Azure tenant without using long lived credentials. Credential Authentication is an alternative approach where you have to provide a clientSecret manually to meshStack and meshStack stores it encrypted." - } - }, - "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." - }, - "sourceEntraTenant": { - "type": "string", - "description": "Microsoft Entra ID Tenant UUID or domain name used for creating subscriptions. Set this to the Microsoft Entra ID Tenant owning the MCA Billing Scope. If source and destination Microsoft Entra ID Tenants are the same, you need to use UUID." - }, - "subscriptionCreationErrorCooldownSec": { - "type": "number", - "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", - "nullable": true - }, - "destinationEntraId": { - "type": "string", - "description": "Microsoft Entra ID Tenant UUID where created subscriptions should be moved. Set this to the Microsoft Entra ID Tenant hosting your landing zones." - }, - "billingScope": { - "type": "string", - "description": "ID of the MCA Billing Scope used for creating subscriptions. Must follow this format: `/providers/Microsoft.Billing/billingAccounts/$accountId/billingProfiles/$profileId/invoiceSections/$sectionId`." - } - }, - "description": "meshcloud can automatically provision new subscriptions from a Customer Agreement Account owned by your organization. This is suitable for larger organizations that have such a Customer Agreement with Microsoft, and want to provide a large number of subscriptions in a fully automated fashion." - }, - "subscriptionOwnerObjectIds": { - "type": "array", - "description": "One or more principals Object IDs (e.g. user groups, SPNs) that meshStack will ensure have an 'Owner' role assignment on the managed subscriptions. This can be useful to satisfy Azure's constraint of at least one direct 'Owner' role assignment per Subscription. If you want to use a Service Principal please use the Enterprise Application Object ID.\nYou can not use the replicator object ID here, because meshStack always removes its high privilege access after a Subscription creation.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "enterpriseEnrollment": { - "required": [ - "enrollmentAccountId", - "subscriptionOfferType", - "useLegacySubscriptionEnrollment" - ], - "type": "object", - "properties": { - "subscriptionOfferType": { - "type": "string", - "description": "The Microsoft Subscription offer type to use when creating subscriptions. Only `Production` for standard and `DevTest` for Dev/Test subscriptions are supported for the Non Legacy Subscription Enrollment. For the Legacy Subscription Enrollment also other types can be defined." - }, - "enrollmentAccountId": { - "type": "string", - "description": "ID of the EA Enrollment Account used for the Subscription creation. Should look like this: `/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321`. For more information, review the https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement?tabs=rest-getEnrollments%2Crest-EA#find-accounts-you-have-access-to[Azure docs]." - }, - "subscriptionCreationErrorCooldownSec": { - "type": "number", - "description": "This value must be defined in seconds. It is a safety mechanism to avoid duplicate Subscription creation in case of an error on Azure's MCA API. This delay should be a bit higher than it usually takes to create subscriptions. For big installations this is somewhere between 5-15 minutes. The default of 900s should be fine for most installations.", - "nullable": true - }, - "useLegacySubscriptionEnrollment": { - "type": "boolean", - "description": "Deprecated: Uses the old Subscription enrollment API in its preview version. This enrollment is less reliable and should not be used for new Azure Platform Integrations." - } - }, - "description": "meshcloud can automatically provision new subscriptions from an Enterprise Enrollment Account owned by your organization. This is suitable for large organizations that have a Microsoft Enterprise Agreement, Microsoft Customer Agreement or a Microsoft Partner Agreement and want to provide a large number of subscriptions in a fully automated fashion." - } - }, - "description": "To provide Azure Subscription for your organization's meshProjects, meshcloud supports using Enterprise Enrollment or allocating from a pool of pre-provisioned subscriptions. One of the subFields `enterpriseEnrollment`, `customerAgreement` or `preProvisioned` must be provided!" - }, - "subscriptionNamePattern": { + "kind": { "type": "string", - "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." + "description": "This is a fixed value \"meshBuildingBlockRunner\"." }, - "groupNamePattern": { + "uuid": { "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names are unique in the managed AAD Tenant." - }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to sub management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." } }, - "description": "Replication configuration for Azure (optional, but required for replication)" + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." }, - "entraTenant": { + "personalAccessToken": { "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + } + }, + "description": "Azure DevOps-specific integration configuration." + }, + "gitlab": { + "required": [ + "baseUrl", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." }, - "metering": { + "runnerRef": { "required": [ - "processing", - "servicePrincipal" + "kind", + "uuid" ], "type": "object", "properties": { - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "Client ID of the service principal for metering" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for credentials-based authentication", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the metering service principal" - }, - "objectId": { - "type": "string", - "description": "Object ID of the service principal for metering" - } - }, - "description": "Service principal configuration for metering access" + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." }, - "processing": { - "type": "object", - "properties": { - "compactTimelinesAfterDays": { - "type": "number", - "description": "Number of days after which timeline data is compacted", - "nullable": true - }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true - } - }, - "description": "Processing configuration for metering data" + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." } }, - "description": "Metering configuration for Azure (optional, but required for metering)" + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitLab-specific integration configuration." + }, + "type": { + "type": "string", + "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab', 'metering', 'replicator'." + } + }, + "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab', 'metering', 'replicator') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." + } + }, + "description": "All fields in this section describe the integration configuration." + }, + "status": { + "required": [ + "isBuiltIn" + ], + "type": "object", + "properties": { + "workloadIdentityFederation": { + "required": [ + "issuer", + "subject" + ], + "type": "object", + "properties": { + "gcp": { + "required": [ + "audience" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "GCP Workload Identity Pool audience for token exchange." } }, - "description": "Configuration for Azure" + "description": "Google Cloud Platform specific WIF configuration." + }, + "subject": { + "type": "string", + "description": "OIDC subject claim for Workload Identity Federation. Identifies the workload service account." + }, + "aws": { + "required": [ + "audience", + "thumbprint" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "AWS STS audience for AssumeRoleWithWebIdentity." + }, + "thumbprint": { + "type": "string", + "description": "AWS OIDC provider thumbprint for trust verification." + } + }, + "description": "Amazon Web Services specific WIF configuration." + }, + "issuer": { + "type": "string", + "description": "OIDC issuer URL for Workload Identity Federation." + }, + "azure": { + "required": [ + "audience" + ], + "type": "object", + "properties": { + "audience": { + "type": "string", + "description": "Azure AD audience for workload identity federation." + } + }, + "description": "Microsoft Azure specific WIF configuration." } }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + "description": "Workload Identity Federation (WIF) configuration for this integration. Only present for built-in integrations. Provides OIDC issuer, subject, and cloud provider-specific configuration needed to set up trust relationships for workload identity." }, - "contributingWorkspaces": { - "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } + "isBuiltIn": { + "type": "boolean", + "description": "Indicates whether this integration is a built-in system integration." } }, - "description": "All fields in this section describe the meshPlatform configuration." + "description": "Status information for integrations. Always includes the isBuiltIn field in responses. Workload Identity Federation (WIF) information is only present for built-in integrations. This field is read-only and ignored in request bodies." } } }, - "meshBuildingBlockV2": { - "title": "meshBuildingBlockV2", + "meshLandingZone-Post-azurerg": { + "title": "meshLandingZone-Post-azurerg", "required": [ "_links", "apiVersion", "kind", "metadata", - "spec", - "status" + "spec" ], "type": "object", "properties": { "metadata": { "required": [ - "createdOn", - "ownedByWorkspace", - "uuid" + "name", + "tags" ], "type": "object", "properties": { - "markedForDeletionOn": { - "type": "string", - "description": "If the Building Block has been marked for deletion, the date when a user requested the deletion is provided via this field. e.g. `2020-12-22T09:37:43Z`", - "nullable": true - }, - "markedForDeletionBy": { - "type": "string", - "description": "If the Building Block has already been deleted, the username of the user who triggered the deletion is provided here.", - "nullable": true - }, - "createdOn": { - "type": "string", - "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." - }, - "uuid": { + "name": { "type": "string", - "description": "The UUID to uniquely identify the Building Block." + "description": "The identifier as 'name' to uniquely identify the meshLandingZone." }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the meshWorkspace the Building Blocks belongs to." + "tags": { + "type": "object", + "description": "Key/Value pairs of tags set on the meshLandingZone." } }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." + "description": "Always contains the 'name' to uniquely identify the meshLandingZone." }, "apiVersion": { "type": "string", - "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshLandingZone datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", - "description": "Available links on a Building Block." + "description": "Available links on this meshObject." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." }, "spec": { "required": [ - "buildingBlockDefinitionVersionRef", + "automateDeletionApproval", + "automateDeletionReplication", "displayName", - "inputs", - "parentBuildingBlocks", - "targetRef" + "platformRef", + "quotas" ], "type": "object", "properties": { - "parentBuildingBlocks": { - "type": "array", - "description": "List of parent Building Blocks, which are set on the Building Block.", - "items": { - "required": [ - "buildingBlockUuid", - "definitionUuid" - ], - "type": "object", - "properties": { - "buildingBlockUuid": { - "type": "string", - "description": "The UUID of the parent Building Block." - }, - "definitionUuid": { - "type": "string", - "description": "The UUID of the Building Block Definition of the parent Building Block." - } - } - } - }, - "targetRef": { + "platformProperties": { "required": [ - "kind", - "uuid" + "type" ], "type": "object", "properties": { - "kind": { - "type": "string", - "description": "This is a fixed value \"meshTenant\"" + "kubernetes": { + "required": [ + "kubernetesRoleMappings" + ], + "type": "object", + "properties": { + "kubernetesRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } }, - "uuid": { + "gcp": { + "required": [ + "gcpFolderId", + "gcpRoleMappings" + ], + "type": "object", + "properties": { + "gcpFolderId": { + "type": "string", + "description": "Google Cloud Projects will be added to this Google Cloud Folder. This allows applying Organization Policies to all projects managed under this Landing Zone." + }, + "gcpRoleMappings": { + "type": "array", + "description": "You can use both built-in roles like 'roles/editor' or custom roles like 'organizations/123123123123/roles/meshstack.project_developer'. For more information see https://docs.meshcloud.io/meshstack.gcp.landing-zones/#meshrole-to-platform-role-mapping[the Landing Zone documentation]. Multiple GCP Roles can be assigned to one meshRole. If empty, the default that is configured on platform level will be used.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "gcpTemplateUrl": { + "type": "string", + "description": "URL to a GCP bucket (starts with 'gs://') with a template config. The template is deployed in the project during the replication process. Only YAML files are supported with a file size limit of 1 MB.", + "nullable": true + }, + "gcpCloudFunctionUrl": { + "type": "string", + "description": "If a GCP Cloud Function URL is provided it is getting called at the end of the replication process.", + "nullable": true + } + } + }, + "azurerg": { + "required": [ + "azureRgLocation", + "azureRgRoleMappings" + ], + "type": "object", + "properties": { + "azureRgRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cloud specific access role. If empty, the default that is configured on platform level will be used.", + "items": { + "required": [ + "azureGroupSuffix", + "azureRoleDefinitionIds" + ], + "type": "object", + "properties": { + "azureRoleDefinitionIds": { + "type": "array", + "description": "Role Definitions with the given IDs will be attached to this Azure Role", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "azureGroupSuffix": { + "type": "string", + "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." + } + } + } + }, + "azureFunction": { + "required": [ + "azureFunctionUrl" + ], + "type": "object", + "properties": { + "azureFunctionScope": { + "type": "string", + "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", + "nullable": true + }, + "azureFunctionUrl": { + "type": "string", + "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" + } + }, + "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." + }, + "azureRgLocation": { + "type": "string", + "description": "The newly created Resource Group for the meshProjects will get assigned to this location. It must be all lower case and without spaces (e.g. eastus2 for East US 2). In order to list the available locations you can use `az account list-locations --query \"[*].name\" --out tsv | sort`" + } + } + }, + "openshift": { + "type": "object", + "properties": { + "openShiftTemplate": { + "type": "string", + "description": "template definition YML to setup a template for projects created in Open Shift", + "nullable": true + } + } + }, + "aks": { + "required": [ + "kubernetesRoleMappings" + ], + "type": "object", + "properties": { + "kubernetesRoleMappings": { + "type": "array", + "description": "Roles need to be mapped from the meshRole to the Cluster Role. You can use both built in roles like 'editor' or custom roles that you setup in the Kubernetes Cluster before. For more information see the https://docs.meshcloud.io/meshstack.kubernetes.landing-zones/[Landing Zone documentation].", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + }, + "type": { "type": "string", - "description": "The uuid of the tenant for this Building Block" + "description": "The platform type. Possible values are: 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift'." + }, + "aws": { + "required": [ + "awsEnrollAccount", + "awsRoleMappings", + "awsTargetOrgUnitId" + ], + "type": "object", + "properties": { + "awsTargetOrgUnitId": { + "type": "string", + "description": "The created AWS account for this Landing Zone will be put under the given Organizational Unit. You can also input a Root ID (starting with 'r-') then the account will be put directly under this root without assigning it to an OU (this is not recommended)." + }, + "awsLambdaArn": { + "type": "string", + "description": "If this Lambda ARN is given, it is invoked after each project replication. You can use it to trigger a custom Account Vending Machine to perform several additional provisioning steps.", + "nullable": true + }, + "awsRoleMappings": { + "type": "array", + "description": "Roles can be mapped from the meshRole to the AWS Role. The AWS role will be part of the role or group name within AWS. If empty, the default that is configured on platform level will be used.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + }, + "awsEnrollAccount": { + "type": "boolean", + "description": "If true, accounts will be enrolled to AWS control tower. In case an enrollment configuration is provided for the AWS platform AND this value is set to true, created AWS accounts will automatically be enrolled with AWS Control Tower. Automatic account enrollment does also require the Target Organizational Unit to already be enrolled with AWS Control Tower and the corresponding meshfed-service role needs to be in the \"IAM Principal\" list for the Portfolio access of the Account Factory Product ID you defined in platform settings. Click https://docs.meshcloud.io/integrations/aws/how-to-integrate/#8-integrate-aws-control-tower[here] to learn more about the Control Tower setup." + } + } + }, + "azure": { + "required": [ + "azureManagementGroupId", + "azureRoleMappings" + ], + "type": "object", + "properties": { + "azureRoleMappings": { + "type": "array", + "description": "An array of mappings between the meshRole and the Azure specific access role. If empty, default role mappings defined on meshPlatform level are used. For more information see https://docs.meshcloud.io/meshstack.azure.landing-zones#meshrole-to-platform-role-mapping[the Landing Zone documentation]. If empty, the default that is configured on platform level will be used.", + "items": { + "required": [ + "azureGroupSuffix", + "azureRoleDefinitions" + ], + "type": "object", + "properties": { + "azureRoleDefinitions": { + "type": "array", + "description": "Role Definitions with the given IDs will be attached to this Azure Role", + "items": { + "type": "object", + "properties": { + "abacCondition": { + "type": "string", + "description": "an ABAC condition for the role assignment in form of a string", + "nullable": true + } + } + } + }, + "azureGroupSuffix": { + "type": "string", + "description": "The given role name will be injected into the group name via the group naming pattern configured on the platform instance." + } + } + } + }, + "azureFunction": { + "required": [ + "azureFunctionUrl" + ], + "type": "object", + "properties": { + "azureFunctionScope": { + "type": "string", + "description": "the unique ID of the Azure Enterprise Application your function belongs to. More details are described https://docs.meshcloud.io/docs/meshstack.azure.landing-zones.html#azure-function-invocation[here].", + "nullable": true + }, + "azureFunctionUrl": { + "type": "string", + "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" + } + }, + "description": "Assign an Azure function to the Landing Zone configuration to trigger a small piece of code in the cloud." + }, + "azureManagementGroupId": { + "type": "string", + "description": "Subscriptions with this Landing Zone will be added to this Management Group. Please make sure to use the Management Group ID and not the group name!" + } + } } }, - "description": "The reference to either a tenant or workspace the Building Block is located on." + "description": "Custom properties for the platform of the landing zone. The values depend on the platform type. " }, - "inputs": { + "quotas": { "type": "array", - "description": "List of inputs, which are set on the Building Block.", + "description": "List of default quotas applied via this landing zone. Quotas define resource limits that will be applied to tenants using this landing zone. Tenants can afterwards request different quotas if needed. The available quota keys depend on the platform type and its quota definitions. For platforms that do not support quotas, this will be an empty array.", "items": { "required": [ "key", - "value", - "valueType" + "value" ], "type": "object", "properties": { - "valueType": { - "type": "string", - "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." - }, "value": { - "type": "string", - "description": "The value, which is set on this input." + "type": "number", + "description": "The quota value for this landing zone. Must be within the min/max range defined in the platform's quota definition." }, "key": { "type": "string", - "description": "The key of the input as set on the related Building Block Definition." + "description": "The quota key as defined in the platform's quota definitions. Must match a quota definition key from the platform." } } } }, + "automateDeletionApproval": { + "type": "boolean", + "description": "Whether deletion approval is automated for this landing zone." + }, "displayName": { "type": "string", - "description": "The display name of the Building Block as it is shown in meshPanel." + "description": "The human-readable display name of the meshLandingZone." }, - "buildingBlockDefinitionVersionRef": { + "description": { + "type": "string", + "description": "The description of the meshLandingZone.", + "nullable": true + }, + "automateDeletionReplication": { + "type": "boolean", + "description": "Whether deletion replication is automated for this landing zone." + }, + "platformRef": { "required": [ "kind", "uuid" @@ -32715,67 +33651,45 @@ "properties": { "kind": { "type": "string", - "description": "This is a fixed value \"meshBuildingBlockDefinitionVersion\"" + "description": "This is a fixed value \"meshPlatform\"" }, "uuid": { "type": "string", - "description": "The uuid of the meshBuildingBlockDefinitionVersion for this Building Block" + "description": "The UUID of the platform instance." } }, - "description": "The reference to the meshBuildingBlockDefinitionVersion for this Building Block" - } - }, - "description": "All fields in this section describe the Building Block." - }, - "status": { - "required": [ - "forcePurge", - "outputs", - "status" - ], - "type": "object", - "properties": { - "outputs": { - "type": "array", - "description": "List of outputs, which are set on the Building Block.", - "items": { - "required": [ - "key", - "value", - "valueType" - ], - "type": "object", - "properties": { - "valueType": { - "type": "string", - "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." - }, - "value": { - "type": "string", - "description": "The value, which is set on this output." - }, - "key": { - "type": "string", - "description": "The key of the output as set on the related Building Block Definition." - } - } - } - }, - "forcePurge": { - "type": "boolean", - "description": "Indicates whether this building block was marked to be purged." + "description": "Reference to the platform instance this landing zone belongs to." }, - "status": { + "infoLink": { "type": "string", - "description": "The status of the Building Block. One of WAITING_FOR_DEPENDENT_INPUT, WAITING_FOR_OPERATOR_INPUT, WAITING_FOR_USER_INPUT, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ABORTED." + "description": "An optional link to describe more details about the landing zone", + "nullable": true } }, - "description": "All fields in this section describe the current status of the Building Block." + "description": "All fields in this section describe the meshLandingZone." + }, + "status": { + "required": [ + "disabled", + "restricted" + ], + "type": "object", + "properties": { + "restricted": { + "type": "boolean", + "description": "If true, users will be unable to select this landing zone in meshPanel. Only Platform teams can create tenants using restricted landing zones with the meshObject API." + }, + "disabled": { + "type": "boolean", + "description": "Whether the landing zone is disabled." + } + }, + "description": "Current status of the meshLandingZone." } } }, - "meshPlatform-Post-V1-azurerg": { - "title": "meshPlatform-Post-V1-azurerg", + "meshPlatform-Post-V2-openshift": { + "title": "meshPlatform-Post-V2-openshift", "required": [ "_links", "apiVersion", @@ -32831,7 +33745,8 @@ "availability", "config", "displayName", - "locationRef" + "locationRef", + "quotaDefinitions" ], "type": "object", "properties": { @@ -32840,6 +33755,52 @@ "description": "URL for platform documentation.", "nullable": true }, + "quotaDefinitions": { + "type": "array", + "description": "List of platform quota definitions. Quota definitions define the available quotas that can be configured for tenants on this platform. Currently only supported for platform types: OPENSHIFT, KUBERNETES, AZURE_KUBERNETES_SERVICE, CLOUDFOUNDRY, OPENSTACK. For platforms that don't support it yet, you have to provide an empty array. If empty list is provided, all existing quota definitions are removed.", + "items": { + "required": [ + "autoApprovalThreshold", + "description", + "label", + "maxValue", + "minValue", + "quotaKey" + ], + "type": "object", + "properties": { + "quotaKey": { + "type": "string", + "description": "The key of the quota as it is required by the cloud platform." + }, + "minValue": { + "type": "number", + "description": "Minimum allowed value for this quota." + }, + "unit": { + "type": "string", + "description": "Unit of measurement for the quota (e.g., 'cores', 'GB', 'requests'). Must match the unit expected by the cloud platform.", + "nullable": true + }, + "autoApprovalThreshold": { + "type": "number", + "description": "Threshold below which quota requests are automatically approved." + }, + "maxValue": { + "type": "number", + "description": "Maximum allowed value for this quota." + }, + "description": { + "type": "string", + "description": "Detailed description of what this quota controls." + }, + "label": { + "type": "string", + "description": "Human-readable label for the quota." + } + } + } + }, "endpoint": { "type": "string", "description": "The web console URL endpoint of the platform.", @@ -32847,18 +33808,18 @@ }, "locationRef": { "required": [ - "identifier", - "kind" + "kind", + "name" ], "type": "object", "properties": { - "identifier": { - "type": "string", - "description": "The identifier of the location." - }, "kind": { "type": "string", "description": "The kind of the referenced location, always 'meshLocation'." + }, + "name": { + "type": "string", + "description": "The identifier of the location." } }, "description": "Reference to the location where this platform is situated." @@ -32879,18 +33840,18 @@ }, "availability": { "required": [ - "marketplaceStatus", + "publicationState", "restriction" ], "type": "object", "properties": { - "restriction": { + "publicationState": { "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." + "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." }, - "marketplaceStatus": { + "restriction": { "type": "string", - "description": "Publication status in the marketplace: PUBLISHED, UNPUBLISHED, etc." + "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." }, "restrictedToWorkspaces": { "type": "array", @@ -32916,6 +33877,11 @@ }, "description": "Availability configuration for the meshPlatform." }, + "readme": { + "type": "string", + "description": "README about the meshPlatform in markdown format", + "nullable": true + }, "config": { "required": [ "type" @@ -32946,8 +33912,20 @@ "type": "object", "properties": { "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, "description": "Client configuration for Kubernetes" @@ -32959,13 +33937,223 @@ "type": "string", "description": "This URL is the base URL to your Kubernetes Cluster, which is used to call the APIs to create new Kubernetes projects, get raw data for metering the Kubernetes projects, etc. An example base URL is: https://k8s.dev.eu-de-central.msh.host:6443" }, + "metering": { + "required": [ + "clientConfig", + "processing" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client config for metering" + } + }, + "description": "Replication configuration for Kubernetes (optional, but required for metering)" + }, "disableSslValidation": { "type": "boolean", "description": "Flag to disable SSL validation for the Kubernetes cluster. SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.", "nullable": true } }, - "description": "Configuration for Kubernetes" + "description": "Kubernetes configuration, if applicable." + }, + "azurerg": { + "required": [ + "entraTenant" + ], + "type": "object", + "properties": { + "replication": { + "required": [ + "resourceGroupNamePattern", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscription", + "userGroupNamePattern", + "userLookUpStrategy" + ], + "type": "object", + "properties": { + "administrativeUnitId": { + "type": "string", + "description": "Administrative unit ID for group placement", + "nullable": true + }, + "userGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack" + }, + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." + } + }, + "description": "Service principal configuration for replicator access." + }, + "b2bUserInvitation": { + "required": [ + "redirectUrl", + "sendAzureInvitationMail" + ], + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL that Azure's consent experience redirects users to after invitation acceptance" + }, + "sendAzureInvitationMail": { + "type": "boolean", + "description": "When true, Azure sends Invitation mails to invited users" + } + }, + "description": "Optional B2B user invitation configuration" + }, + "tenantTags": { + "required": [ + "namespacePrefix", + "tagMappers" + ], + "type": "object", + "properties": { + "tagMappers": { + "type": "array", + "description": "List of tag mappers for tenant tags", + "items": { + "required": [ + "key", + "valuePattern" + ], + "type": "object", + "properties": { + "valuePattern": { + "type": "string", + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" + } + } + } + }, + "namespacePrefix": { + "type": "string", + "description": "Prefix for all labels created by meshStack" + } + }, + "description": "Tenant tags configuration" + }, + "userLookUpStrategy": { + "type": "string", + "description": "User lookup strategy ('userPrincipalName' or 'email')" + }, + "subscription": { + "type": "string", + "description": "The Subscription that will contain all the created Resource Groups" + }, + "skipUserGroupPermissionCleanup": { + "type": "boolean", + "description": "Preserve user groups and replicated permission after tenant deletion" + }, + "resourceGroupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack" + }, + "allowHierarchicalManagementGroupAssignment": { + "type": "boolean", + "description": "Enable or disable hierarchical management group assignment", + "nullable": true + } + }, + "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" + }, + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + } + }, + "description": "Configuration for Azure Resource Group" }, "gcp": { "type": "object", @@ -32976,16 +34164,46 @@ "billingAccountId", "customerId", "domain", + "gcpRoleMappings", "groupNamePattern", "projectIdPattern", "projectNamePattern", - "roleMappings", - "serviceAccountConfig", + "serviceAccount", "skipUserGroupPermissionCleanup", "userLookupStrategy" ], "type": "object", "properties": { + "gcpRoleMappings": { + "type": "array", + "description": "Role mappings for GCP with project role references", + "items": { + "required": [ + "gcpRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "gcpRole": { + "type": "string", + "description": "GCP role to assign" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, "userLookupStrategy": { "type": "string", "description": "Users can either be looked up by E-Mail or externalAccountId. This must also be the property that is placed in the external user id (EUID) of your meshUser entity to match. E-Mail is usually a good choice as this is often set up as the EUID throughout all cloud platforms and meshStack. ('email' or 'externalId')" @@ -33037,23 +34255,26 @@ "type": "string", "description": "The domain used for cloud identity directory-groups created and managed by meshStack. meshStack maintains separate groups for each meshProject role on each managed GCP project." }, - "serviceAccountConfig": { + "customerId": { + "type": "string", + "description": "A Google Customer ID. It typically starts with a 'C'." + }, + "allowHierarchicalFolderAssignment": { + "type": "boolean", + "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." + }, + "billingAccountId": { + "type": "string", + "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + }, + "serviceAccount": { + "required": [ + "credential", + "type" + ], "type": "object", "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], - "type": "object", - "properties": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. The replicator uses this Service Account to automate GCP API operations (IAM, ResourceManager etc.)." - } - }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" - }, - "serviceAccountWorkloadIdentityConfig": { + "workloadIdentity": { "required": [ "audience", "serviceAccountEmail" @@ -33069,45 +34290,30 @@ "description": "The audience associated with your workload identity pool provider." } }, - "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" - } - }, - "description": "Service account configuration. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." - }, - "customerId": { - "type": "string", - "description": "A Google Customer ID. It typically starts with a 'C'." - }, - "roleMappings": { - "required": [ - "admin", - "member", - "reader" - ], - "type": "object", - "properties": { - "reader": { - "type": "string", - "description": "Role mapping for reader users" + "description": "Service account workload identity configuration (required when type is 'workloadIdentity')" }, - "member": { - "type": "string", - "description": "Role mapping for member users" + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for a GCP ServiceAccount. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." }, - "admin": { + "type": { "type": "string", - "description": "Role mapping for admin users" + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." } }, - "description": "Role mappings for GCP" - }, - "allowHierarchicalFolderAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical folder assignment in GCP. If set to true: Projects can be moved to sub folders of the folder defined in the Landing Zone. This is useful if you want to manage the project location with a deeper and more granular hierarchy. If set to false: Projects will always be moved directly to the folder defined in the Landing Zone." - }, - "billingAccountId": { - "type": "string", - "description": "The ID of the billing account to associate with all GCP projects managed by meshStack" + "description": "Configuration of the service account used for GCP API access" }, "skipUserGroupPermissionCleanup": { "type": "boolean", @@ -33119,147 +34325,108 @@ } }, "description": "Replication configuration for GCP (optional, but required for replication)" - } - }, - "description": "Configuration for Google Cloud Platform (GCP)" - }, - "azurerg": { - "required": [ - "entraTenant" - ], - "type": "object", - "properties": { - "replication": { + }, + "metering": { "required": [ - "resourceGroupNamePattern", - "servicePrincipal", - "skipUserGroupPermissionCleanup", - "subscription", - "userGroupNamePattern", - "userLookUpStrategy" + "bigqueryTable", + "partitionTimeColumn", + "processing", + "serviceAccount" ], "type": "object", "properties": { - "administrativeUnitId": { + "partitionTimeColumn": { "type": "string", - "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", + "description": "Column name for partitioning time-based data" + }, + "additionalFilter": { + "type": "string", + "description": "Additional SQL filter for billing data (optional)", "nullable": true }, - "userGroupNamePattern": { + "bigqueryTableForCarbonFootprint": { "type": "string", - "description": "Configures the pattern that defines the desired name of AAD groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix. This suffix is configurable via Role Mappings in this platform config." + "description": "BigQuery table containing carbon footprint data (optional)", + "nullable": true }, - "servicePrincipal": { - "required": [ - "authType", - "clientId", - "objectId" - ], + "processing": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", "nullable": true }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" - }, - "objectId": { - "type": "string", - "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." - } - }, - "description": "Service principal configuration for Azure" - }, - "b2bUserInvitation": { - "required": [ - "redirectUrl", - "sendAzureInvitationMail" - ], - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." - }, - "sendAzureInvitationMail": { - "type": "boolean", - "description": "When true, meshStack instructs Azure to send out Invitation mails to invited users. These mails allow users to redeem their invitation to the AAD tenant only using email and Azure Portal." - } - }, - "description": "Optional B2B user invitation configuration. When configured, instructs the replicator to create AAD B2B guest invitations for users missing in the AAD tenant managed by this meshPlatform." - }, - "tenantTags": { - "required": [ - "namespacePrefix", - "tagMappers" - ], - "type": "object", - "properties": { - "tagMappers": { - "type": "array", - "description": "List of tag mappers for tenant tags", - "items": { - "required": [ - "key", - "valuePattern" - ], - "type": "object", - "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" - }, - "key": { - "type": "string", - "description": "Key for the tag mapper" - } - } - } - }, - "namespacePrefix": { - "type": "string", - "description": "This is the prefix for all labels created by meshStack. It helps to keep track of which labels are managed by meshStack. It is recommended to let this prefix end with a delimiter like an underscore." + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true } }, - "description": "Tenant tags configuration" - }, - "userLookUpStrategy": { - "type": "string", - "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." + "description": "Processing configuration for metering data" }, - "subscription": { + "carbonFootprintDataCollectionStartMonth": { "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." - }, - "skipUserGroupPermissionCleanup": { - "type": "boolean", - "description": "For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "description": "Start month for carbon footprint data collection (optional)", + "nullable": true }, - "resourceGroupNamePattern": { + "bigqueryTable": { "type": "string", - "description": "Configures the pattern that defines the desired name Resource Group managed by meshStack. It follows the usual replicator string pattern features. Operators must ensure the group names are unique within the Subscription." + "description": "BigQuery table containing billing data export" }, - "allowHierarchicalManagementGroupAssignment": { - "type": "boolean", - "description": "Configuration flag to enable or disable hierarchical management group assignment in Azure. If set to true: Subscriptions can be moved to child management groups of the management group defined in the Landing Zone. This is useful if you want to manage the subscription location with a deeper and more granular hierarchy. If set to false: Subscriptions will always be moved directly to the management group defined in the Landing Zone.", - "nullable": true + "serviceAccount": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "workloadIdentity": { + "required": [ + "audience", + "serviceAccountEmail" + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "The email address of the Service Account for metering, that gets impersonated for calling Google APIs via Workload Identity Federation." + }, + "audience": { + "type": "string", + "description": "The audience associated with your workload identity pool provider for metering access." + } + }, + "description": "Service account workload identity configuration for metering (required when type is 'workloadIdentity')" + }, + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Base64 encoded credentials.json file for metering service account. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of service account authentication configuration. Possible values: 'credential', 'workloadIdentity'." + } + }, + "description": "Configuration of the service account used for GCP metering API access" } }, - "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + "description": "Metering configuration for GCP (optional, but required for metering)" } }, - "description": "Configuration for Azure Resource Group" + "description": "GCP configuration, if applicable." }, "openshift": { "required": [ @@ -33276,6 +34443,36 @@ ], "type": "object", "properties": { + "openshiftRoleMappings": { + "type": "array", + "description": "Role mappings for GCP with project role references", + "items": { + "required": [ + "openshiftRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "openshiftRole": { + "type": "string", + "description": "OpenShift role to assign" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "identifier of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, "webConsoleUrl": { "type": "string", "description": "The Web Console URL that is used to redirect the user to the cloud platform. An example Web Console URL is https://console-openshift-console.apps.okd4.dev.eu-de-central.msh.host", @@ -33328,28 +34525,60 @@ "type": "boolean", "description": "Here you can enable templates not only being rolled out to OpenShift but also instantiated during replication. Templates can be configured in meshLandingZones. Please keep in mind that the replication service account needs all the rights that are required to apply the templates that are configured in meshLandingZones." }, - "roleMappings": { + "clientConfig": { "required": [ - "admin", - "member", - "reader" + "accessToken" ], "type": "object", "properties": { - "reader": { - "type": "string", - "description": "Role mapping for reader users" - }, - "member": { - "type": "string", - "description": "Role mapping for member users" + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Client configuration for OpenShift" + } + }, + "description": "Replication configuration for OpenShift (optional, but required for replication)" + }, + "baseUrl": { + "type": "string", + "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" + }, + "metering": { + "required": [ + "clientConfig", + "processing" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true }, - "admin": { - "type": "string", - "description": "Role mapping for admin users" + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true } }, - "description": "Role mappings for OpenShift" + "description": "Processing configuration for metering data" }, "clientConfig": { "required": [ @@ -33358,18 +34587,26 @@ "type": "object", "properties": { "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Access token for Kubernetes API authentication. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." } }, - "description": "Client configuration for OpenShift" + "description": "Kubernetes client configuration for metering access" } }, - "description": "Replication configuration for OpenShift (optional, but required for replication)" - }, - "baseUrl": { - "type": "string", - "description": "This URL is the base URL to your OpenShift Cluster, which is used to call the APIs to create new OpenShift projects, get raw data for metering the OpenShift projects, etc. An example base URL is: https://api.okd4.dev.eu-de-central.msh.host:6443" + "description": "Metering configuration for OpenShift (optional, but required for metering)" }, "disableSslValidation": { "type": "boolean", @@ -33377,7 +34614,7 @@ "nullable": true } }, - "description": "Configuration for OpenShift" + "description": "Openshift configuration, if applicable." }, "aks": { "required": [ @@ -33410,7 +34647,7 @@ }, "servicePrincipal": { "required": [ - "authType", + "auth", "clientId", "entraTenant", "objectId" @@ -33425,21 +34662,42 @@ "type": "string", "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret for the service principal (required if authType is CREDENTIALS)", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of AKS authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." }, "objectId": { "type": "string", "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." } }, - "description": "Service principal configuration for AKS" + "description": "Service principal configuration for replicator EntraID access to manage groups that are used for RBAC in the AKS cluster." }, "redirectUrl": { "type": "string", @@ -33467,8 +34725,20 @@ "description": "Name of the AKS cluster" }, "accessToken": { - "type": "string", - "description": "The Access Token of the service account for replicator access." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the Kubernetes service account for replicator access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." }, "groupNamePattern": { "type": "string", @@ -33481,17 +34751,62 @@ "type": "string", "description": "Base URL of the AKS cluster" }, + "metering": { + "required": [ + "clientConfig" + ], + "type": "object", + "properties": { + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + } + }, + "clientConfig": { + "required": [ + "accessToken" + ], + "type": "object", + "properties": { + "accessToken": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The Access Token of the service account for metering access. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + } + }, + "description": "Processing configuration for metering data" + } + }, + "description": "Replication configuration for AKS (optional, but required for metering)" + }, "disableSslValidation": { "type": "boolean", "description": "Flag to disable SSL validation for the AKS cluster. (SSL Validation should at best never be disabled, but for integration of some private cloud platforms in an early state, they might not yet be using valid SSL certificates. In that case it can make sense to disable SSL validation here to already test integration of these platforms.)", "nullable": true } }, - "description": "Configuration for Azure Kubernetes Service (AKS)" - }, - "type": { - "type": "string", - "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." + "description": "Azure Kubernetes Service configuration, if applicable." }, "aws": { "required": [ @@ -33580,7 +34895,7 @@ }, "skipUserGroupPermissionCleanup": { "type": "boolean", - "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." + "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later. " }, "automationAccountExternalId": { "type": "string", @@ -33610,6 +34925,7 @@ }, "accessConfig": { "required": [ + "auth", "organizationRootAccountRole" ], "type": "object", @@ -33618,48 +34934,74 @@ "type": "string", "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." }, - "workloadIdentityConfig": { - "required": [ - "roleArn" - ], - "type": "object", - "properties": { - "roleArn": { - "type": "string", - "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." - } - }, - "description": "Workload identity configuration (alternative to serviceUserConfig)" - }, - "serviceUserConfig": { + "auth": { "required": [ - "accessKey", - "secretKey" + "type" ], "type": "object", "properties": { - "secretKey": { - "type": "string", - "description": "AWS secret key for service user" + "workloadIdentity": { + "required": [ + "roleArn" + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." + } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" }, - "accessKey": { + "credential": { + "required": [ + "accessKey", + "secretKey" + ], + "type": "object", + "properties": { + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "accessKey": { + "type": "string", + "description": "AWS access key for service user" + } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { "type": "string", - "description": "AWS access key for service user" + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." } }, - "description": "Service user configuration (alternative to workloadIdentityConfig)" + "description": "Authentication configuration for AWS access" }, "organizationRootAccountExternalId": { "type": "string", - "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role.", + "description": "ExternalId to enhance security in a multi account setup when assuming the organization root account role. ", "nullable": true } }, - "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." + "description": "meshStack currently supports 2 types of authentication. Workload Identity Federation (using OIDC) is the one that we recommend as it enables secure access to your AWS account without using long lived credentials. Alternatively, you can use credential based authentication by providing access and secret keys." }, "awsSso": { "required": [ "arn", + "awsRoleMappings", "groupNamePattern", "scimEndpoint", "signInUrl", @@ -33668,109 +35010,220 @@ "type": "object", "properties": { "ssoAccessToken": { - "type": "string", - "description": "The AWS IAM Identity Center SCIM Access Token that was generated via the Automatic provisioning config in AWS IAM Identity Center." + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "The AWS IAM Identity Center SCIM Access Token. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." }, "signInUrl": { "type": "string", "description": "The AWS IAM Identity Center sign in Url, that must be used by end-users to log in via AWS IAM Identity Center to AWS Management Console." }, - "roleMappings": { + "scimEndpoint": { + "type": "string", + "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." + }, + "arn": { + "type": "string", + "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." + }, + "awsRoleMappings": { + "type": "array", + "description": "Roles can be mapped from the meshRole to the AWS role.", + "items": { + "required": [ + "permissionSetArns", + "projectRoleRef" + ], + "type": "object", + "properties": { + "projectRoleRef": { + "required": [ + "kind", + "name" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Must always be set to `meshProjectRole`" + }, + "name": { + "type": "string", + "description": "The identifier of the meshProjectRole, e.g. `admin` or `user` or `reader`" + } + }, + "description": "A reference to an existing meshProjectRole" + }, + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } + } + } + } + }, + "groupNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." + } + }, + "description": "AWS SSO configuration" + } + }, + "description": "Replication configuration for AWS (optional, but required for replication)" + }, + "metering": { + "required": [ + "accessConfig", + "filter", + "processing", + "reservedInstanceFairChargeback", + "savingsPlanFairChargeback" + ], + "type": "object", + "properties": { + "filter": { + "type": "string", + "description": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + }, + "accessConfig": { + "required": [ + "auth", + "organizationRootAccountRole" + ], + "type": "object", + "properties": { + "organizationRootAccountRole": { + "type": "string", + "description": "ARN of the Management Account Role for metering access." + }, + "auth": { + "required": [ + "type" + ], "type": "object", "properties": { - "member": { + "workloadIdentity": { "required": [ - "awsRoleName", - "permissionSetArns" + "roleArn" ], "type": "object", "properties": { - "awsRoleName": { + "roleArn": { "type": "string", - "description": "AWS role name for member role mapping" - }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for member role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } + "description": "ARN of the role for metering access via workload identity federation" } - } + }, + "description": "Workload identity configuration (required when type is 'workloadIdentity')" }, - "admin": { + "credential": { "required": [ - "awsRoleName", - "permissionSetArns" + "accessKey", + "secretKey" ], "type": "object", "properties": { - "awsRoleName": { - "type": "string", - "description": "AWS role name for admin role mapping" + "secretKey": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "AWS secret key for metering service user. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for admin role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } + "accessKey": { + "type": "string", + "description": "AWS access key for metering service user" } - } + }, + "description": "Service user credentials configuration (required when type is 'credential')" + }, + "type": { + "type": "string", + "description": "Type of AWS authentication configuration. Possible values: 'credential', 'workloadIdentity'." } }, - "description": "Role mappings for AWS SSO" - }, - "scimEndpoint": { - "type": "string", - "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." - }, - "arn": { - "type": "string", - "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." + "description": "Authentication configuration for AWS metering access" }, - "groupNamePattern": { + "organizationRootAccountExternalId": { "type": "string", - "description": "Configures the pattern that defines the desired name of AWS IAM Identity Center groups managed by meshStack. It follows the usual replicator string pattern features and provides the additional replacement 'platformGroupAlias', which contains the role name suffix, which is configurable via Role Mappings in this platform config or via a meshLandingZone. Operators must ensure the group names will be unique within the same AWS IAM Identity Center Instance with that configuration. meshStack will additionally prefix the group name with 'mst-' to be able to identify the groups that are managed by meshStack." + "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", + "nullable": true } }, - "description": "AWS SSO configuration" + "description": "AWS access configuration for metering" + }, + "savingsPlanFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for savings plans" + }, + "reservedInstanceFairChargeback": { + "type": "boolean", + "description": "Whether to enable fair chargeback for reserved instances" } }, - "description": "Replication configuration for AWS (optional, but required for replication)" + "description": "Metering configuration for AWS (optional, but required for metering)" }, "region": { "type": "string", "description": "AWS region" } }, - "description": "Configuration for AWS" + "description": "AWS configuration, if applicable." + }, + "type": { + "type": "string", + "description": "The type of platform configuration, matching the platform type of the related platform. Possible values (others are unsupported for now, but will follow): 'aks', 'aws', 'azure', 'azurerg', 'gcp', 'kubernetes', 'openshift', 'unsupported'." }, "azure": { "required": [ @@ -33780,10 +35233,10 @@ "properties": { "replication": { "required": [ + "azureRoleMappings", "blueprintLocation", "blueprintServicePrincipal", "groupNamePattern", - "roleMappings", "servicePrincipal", "skipUserGroupPermissionCleanup", "subscriptionNamePattern", @@ -33793,7 +35246,7 @@ "properties": { "servicePrincipal": { "required": [ - "authType", + "auth", "clientId", "objectId" ], @@ -33801,23 +35254,44 @@ "properties": { "clientId": { "type": "string", - "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID" - }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Client secret (required if authType is CREDENTIALS)", - "nullable": true + "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the 'Enterprise Application' but can also be retrieved via the 'App Registration' object as 'Application (Client) ID'." }, - "authType": { - "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." }, "objectId": { "type": "string", "description": "The Object ID of the Enterprise Application. You can get this Object ID via the API (e.g. when using our Terraform provider) or from Enterprise applications pane in Microsoft Entra admin center." } }, - "description": "Service principal configuration for Azure" + "description": "Service principal configuration for replicator access." }, "tenantTags": { "required": [ @@ -33862,10 +35336,6 @@ "type": "string", "description": "User lookup strategy ('userPrincipalName' or 'email'). Users can either be looked up in cloud platforms by email or UPN (User Principal Name). In most cases email is the matching way as it is the only identifier that is consistently used throughout all cloud platforms and meshStack." }, - "roleMappings": { - "type": "object", - "description": "Role mappings for Azure" - }, "skipUserGroupPermissionCleanup": { "type": "boolean", "description": "Flag to skip user group permission cleanup. For certain use cases you might want to preserve user groups and replicated permission after a tenant was deleted on the Azure platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." @@ -33875,6 +35345,50 @@ "description": "If you enter an administrative unit ID the replicated (and potentially existing) groups will be put into this AU. This can be used to limit the permission scopes which are required for the replicator principal. If you remove the AU ID again or change it, the groups will not be removed from the old AU.", "nullable": true }, + "azureRoleMappings": { + "type": "array", + "description": "Role mappings for Azure with project role references", + "items": { + "required": [ + "azureRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "azureRole": { + "required": [ + "alias", + "id" + ], + "type": "object", + "properties": { + "alias": { + "type": "string", + "description": "Alias for the Azure role" + }, + "id": { + "type": "string", + "description": "ID of the Azure role" + } + }, + "description": "Azure role" + }, + "projectRoleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the project role" + } + }, + "description": "Reference to a meshProject role" + } + } + } + }, "b2bUserInvitation": { "required": [ "redirectUrl", @@ -33924,7 +35438,7 @@ "properties": { "sourceServicePrincipal": { "required": [ - "authType", + "auth", "clientId" ], "type": "object", @@ -33933,14 +35447,35 @@ "type": "string", "description": "The Application (Client) ID. In Azure Portal, this is the Application ID of the \"Enterprise Application\" but can also be retrieved via the \"App Registration\" object as \"Application (Client) ID\". " }, - "credentialsAuthClientSecret": { - "type": "string", - "description": "Must be set if and only if `authType` is `CREDENTIALS`. A valid secret for accessing the application. In Azure Portal, this can be configured on the \"App Registration\" under Certificates & secrets. https://docs.meshcloud.io/operations/security-faq/#how-does-meshstack-securely-handle-my-cloud-platform-credentials[How is this information secured?]", - "nullable": true - }, - "authType": { - "type": "string", - "description": "Must be one of `CREDENTIALS` or `WORKLOAD_IDENTITY`. Workload Identity Federation is the one that we recommend as it enables the most secure approach to provide access to your Azure tenant without using long lived credentials. Credential Authentication is an alternative approach where you have to provide a clientSecret manually to meshStack and meshStack stores it encrypted." + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure Graph API authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the source service principal for replicator access to a customer agreement. When using workload identity (type='workloadIdentity'), no additional configuration details are required." } }, "description": "Configure the SPN used by meshStack to create a new Subscription in your MCA billing scope. For more information on the required permissions, see the https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement-across-tenants[Azure docs]." @@ -34036,9 +35571,84 @@ "entraTenant": { "type": "string", "description": "Azure Active Directory (Entra ID) tenant" + }, + "metering": { + "required": [ + "processing", + "servicePrincipal" + ], + "type": "object", + "properties": { + "servicePrincipal": { + "required": [ + "auth", + "clientId", + "objectId" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "Client ID of the service principal for metering" + }, + "auth": { + "required": [ + "credential", + "type" + ], + "type": "object", + "properties": { + "credential": { + "type": "object", + "properties": { + "plaintext": { + "type": "string", + "description": "The plaintext secret value. Required for POST, optional for PUT (to update the secret). Never returned in responses.", + "nullable": true + }, + "hash": { + "type": "string", + "description": "SHA-256 hash of the encrypted secret. Always returned in GET responses. It can be provided in PUT requests to keep the existing secret unchanged. If the hash doesn't match the stored value, a 409 Conflict error is returned (drift detection).", + "nullable": true + } + }, + "description": "Must be set if and only if type is 'credential'. The client secret required for authenticating the configured Service Principal. This is represented as a Secret object containing either the secret value or the hash, depending on the request/response context." + }, + "type": { + "type": "string", + "description": "Type of Azure service principal authentication configuration. Possible values: 'credential', 'workloadIdentity'. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + } + }, + "description": "Authentication configuration for the service principal. When using workload identity (type='workloadIdentity'), no additional configuration details are required." + }, + "objectId": { + "type": "string", + "description": "Object ID of the service principal for metering" + } + }, + "description": "Service principal configuration for metering access" + }, + "processing": { + "type": "object", + "properties": { + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "nullable": true + }, + "deleteRawDataAfterDays": { + "type": "number", + "description": "Number of days after which raw metering data is deleted", + "nullable": true + } + }, + "description": "Processing configuration for metering data" + } + }, + "description": "Metering configuration for Azure (optional, but required for metering)" } }, - "description": "Configuration for Azure" + "description": "Azure configuration, if applicable." } }, "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." @@ -34073,6 +35683,390 @@ } } }, + "meshBuildingBlockV2": { + "title": "meshBuildingBlockV2", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec", + "status" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "createdOn", + "ownedByWorkspace", + "uuid" + ], + "type": "object", + "properties": { + "markedForDeletionOn": { + "type": "string", + "description": "If the Building Block has been marked for deletion, the date when a user requested the deletion is provided via this field. e.g. `2020-12-22T09:37:43Z`", + "nullable": true + }, + "markedForDeletionBy": { + "type": "string", + "description": "If the Building Block has already been deleted, the username of the user who triggered the deletion is provided here.", + "nullable": true + }, + "createdOn": { + "type": "string", + "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." + }, + "uuid": { + "type": "string", + "description": "The UUID to uniquely identify the Building Block." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the Building Blocks belongs to." + } + }, + "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." + }, + "apiVersion": { + "type": "string", + "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { + "type": "object", + "description": "Available links on a Building Block." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + }, + "spec": { + "required": [ + "buildingBlockDefinitionVersionRef", + "displayName", + "inputs", + "parentBuildingBlocks", + "targetRef" + ], + "type": "object", + "properties": { + "parentBuildingBlocks": { + "type": "array", + "description": "List of parent Building Blocks, which are set on the Building Block.", + "items": { + "required": [ + "buildingBlockUuid", + "definitionUuid" + ], + "type": "object", + "properties": { + "buildingBlockUuid": { + "type": "string", + "description": "The UUID of the parent Building Block." + }, + "definitionUuid": { + "type": "string", + "description": "The UUID of the Building Block Definition of the parent Building Block." + } + } + } + }, + "targetRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshTenant\"" + }, + "uuid": { + "type": "string", + "description": "The uuid of the tenant for this Building Block" + } + }, + "description": "The reference to either a tenant or workspace the Building Block is located on." + }, + "inputs": { + "type": "array", + "description": "List of inputs, which are set on the Building Block.", + "items": { + "required": [ + "key", + "value", + "valueType" + ], + "type": "object", + "properties": { + "valueType": { + "type": "string", + "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." + }, + "value": { + "type": "string", + "description": "The value, which is set on this input." + }, + "key": { + "type": "string", + "description": "The key of the input as set on the related Building Block Definition." + } + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the Building Block as it is shown in meshPanel." + }, + "buildingBlockDefinitionVersionRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockDefinitionVersion\"" + }, + "uuid": { + "type": "string", + "description": "The uuid of the meshBuildingBlockDefinitionVersion for this Building Block" + } + }, + "description": "The reference to the meshBuildingBlockDefinitionVersion for this Building Block" + } + }, + "description": "All fields in this section describe the Building Block." + }, + "status": { + "required": [ + "forcePurge", + "outputs", + "status" + ], + "type": "object", + "properties": { + "outputs": { + "type": "array", + "description": "List of outputs, which are set on the Building Block.", + "items": { + "required": [ + "key", + "value", + "valueType" + ], + "type": "object", + "properties": { + "valueType": { + "type": "string", + "description": "The data type of the value. One of STRING, CODE, INTEGER, BOOLEAN, FILE, LIST, SINGLE_SELECT, MULTI_SELECT." + }, + "value": { + "type": "string", + "description": "The value, which is set on this output." + }, + "key": { + "type": "string", + "description": "The key of the output as set on the related Building Block Definition." + } + } + } + }, + "forcePurge": { + "type": "boolean", + "description": "Indicates whether this building block was marked to be purged." + }, + "status": { + "type": "string", + "description": "The status of the Building Block. One of WAITING_FOR_DEPENDENT_INPUT, WAITING_FOR_OPERATOR_INPUT, WAITING_FOR_USER_INPUT, PENDING, IN_PROGRESS, SUCCEEDED, FAILED, ABORTED." + } + }, + "description": "All fields in this section describe the current status of the Building Block." + } + } + }, + "api-meshobjects-meshintegrations1558958109": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "ownedByWorkspace": { + "type": "string", + "description": "The workspace identifier that owns this integration." + } + }, + "description": "Contains identifiers and ownership information for the integration." + }, + "apiVersion": { + "type": "string", + "description": "Version of meshIntegration datatype. Matches the version part provided within the `Accept` request header." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshIntegration' for this endpoint." + }, + "spec": { + "required": [ + "config", + "displayName" + ], + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the integration." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "github": { + "required": [ + "appId", + "appPrivateKey", + "baseUrl", + "owner", + "runnerRef" + ], + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The GitHub organization or user that owns the repositories." + }, + "baseUrl": { + "type": "string", + "description": "The base URL of the GitHub API. Use 'https://api.github.com' for GitHub.com or your GitHub Enterprise URL." + }, + "appPrivateKey": { + "type": "string", + "description": "The GitHub App private key for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual private key or use '***HIDDEN***' to keep the existing value unchanged." + }, + "appId": { + "type": "string", + "description": "The GitHub App ID for authentication." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitHub-specific integration configuration." + }, + "azuredevops": { + "required": [ + "baseUrl", + "organization", + "personalAccessToken", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the Azure DevOps instance. Typically 'https://dev.azure.com' for Azure DevOps Services." + }, + "organization": { + "type": "string", + "description": "The Azure DevOps organization name." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + }, + "personalAccessToken": { + "type": "string", + "description": "The Personal Access Token (PAT) for authentication. When reading, this field is masked with '***HIDDEN***'. When updating, provide the actual token or use '***HIDDEN***' to keep the existing value unchanged." + } + }, + "description": "Azure DevOps-specific integration configuration." + }, + "gitlab": { + "required": [ + "baseUrl", + "runnerRef" + ], + "type": "object", + "properties": { + "baseUrl": { + "type": "string", + "description": "The base URL of the GitLab instance. Use 'https://gitlab.com' for GitLab.com or your self-hosted GitLab URL." + }, + "runnerRef": { + "required": [ + "kind", + "uuid" + ], + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "This is a fixed value \"meshBuildingBlockRunner\"." + }, + "uuid": { + "type": "string", + "description": "The UUID of the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "Reference to the Building Block Runner that will execute building blocks using this integration." + } + }, + "description": "GitLab-specific integration configuration." + }, + "type": { + "type": "string", + "description": "The type of integration. Available types are: 'azuredevops', 'github', 'gitlab', 'metering', 'replicator'." + } + }, + "description": "Integration configuration. Contains a 'type' field that determines the integration type ('azuredevops', 'github', 'gitlab', 'metering', 'replicator') and type-specific properties nested under the corresponding key (e.g., 'github', 'gitlab', 'azuredevops')." + } + }, + "description": "All fields in this section describe the integration configuration." + } + } + }, "meshTenantPostV3": { "title": "meshTenantPostV3", "required": [ diff --git a/static/api/meshstack-postman-collection-original.json b/static/api/meshstack-postman-collection-original.json index 8cae86e4c..ace46e7be 100644 --- a/static/api/meshstack-postman-collection-original.json +++ b/static/api/meshstack-postman-collection-original.json @@ -49,11 +49,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_links\" : {\n \"meshobjects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n },\n \"metadata\" : {\n \"href\" : \"https://mesh-backend-url/api/metadata\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api\"\n }\n }\n}", + "body" : "{\n \"_links\" : {\n \"metadata\" : {\n \"href\" : \"https://mesh-backend-url/api/metadata\"\n },\n \"meshobjects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "apiKeyLoginResponseRedirect", + "id" : "apiKeyLoginResponse", "name" : "/api/login", "description" : "To call the API with an API Key, first issue an API call to the backend to receive a short-lived bearer token.\nSend a request to `/api/login` with the following keys in the body of the request. You can use either the `x-www-form-urlencoded` format or the `application/json` format:\n\n- For `x-www-form-urlencoded`, provide the parameters `client_id`, `client_secret`, and `grant_type` in the\n request body. This variant will respond with a redirect to meshStack's IdP. You must configure your client to\n follow the redirect or handle it manually.\n- For `application/json`, provide a JSON object with `clientId` and `clientSecret` fields. This variant will\n respond directly with an access token and related fields, without a redirect. **We recommend using the JSON\n variant for most integrations.**\n\nChoose the format that best fits your integration scenario, but prefer the JSON variant for simplicity and direct access to the token.", "variable" : [ ], @@ -68,18 +68,18 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/x-www-form-urlencoded", + "value" : "application/json", "disabled" : false } ], "body" : { "mode" : "raw", - "raw" : "client_id=301a8e20-6403-4167-804d-fa22bfbecbb4&client_secret=VROxgAmQDjjUq2j20UhfhtARL7cQwLV8&grant_type=client_credentials", + "raw" : "{\n \"clientId\" : \"72fa4be7-7e45-47b1-948b-419ddba40931\",\n \"clientSecret\" : \"s3bXpsxilCyDe1EgDBbcvhUT1wlAR6TX\"\n} ", "urlencoded" : [ ] } }, "response" : [ { - "id" : "apiKeyLoginResponseRedirect", - "name" : "apiKeyLoginResponseRedirect", + "id" : "apiKeyLoginResponse", + "name" : "apiKeyLoginResponse", "originalRequest" : { "url" : { "protocol" : "http", @@ -90,20 +90,26 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/x-www-form-urlencoded", + "value" : "application/json", "disabled" : false } ], "body" : { "mode" : "raw", - "raw" : "client_id=301a8e20-6403-4167-804d-fa22bfbecbb4&client_secret=VROxgAmQDjjUq2j20UhfhtARL7cQwLV8&grant_type=client_credentials", + "raw" : "{\n \"clientId\" : \"72fa4be7-7e45-47b1-948b-419ddba40931\",\n \"clientSecret\" : \"s3bXpsxilCyDe1EgDBbcvhUT1wlAR6TX\"\n} ", "urlencoded" : [ ] } }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 307 + "body" : "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjUyOTI1NTksImlhdCI6MTc2NTI5MjI1OSwianRpIjoiNmQ0ZmZlY2ItZDc3NS00M2Y0LTljNTMtMzg5ODBhOGY2NDc1IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDUwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiMDIzODVmOTUtNzY2OS00MTkyLWFjMWItZjM3NGY0OTY0MGVhIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiNzJmYTRiZTctN2U0NS00N2IxLTk0OGItNDE5ZGRiYTQwOTMxIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiY2xpZW50SG9zdCI6IjEyNy4wLjAuMSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTcyZmE0YmU3LTdlNDUtNDdiMS05NDhiLTQxOWRkYmE0MDkzMSIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiI3MmZhNGJlNy03ZTQ1LTQ3YjEtOTQ4Yi00MTlkZGJhNDA5MzEifQ.VgEXj-Gd8i_o1iFfq7ZGg5SDpWsi_UHxyV2Rrnk4ASo2H8r08X94MJ_8GlqI3nlw_uM-cUX01gJQoBIWKo6agx0I96eBKO15PnCnkvPDAGdgHFDWpO9K8vLQf7Nk67gX0d1ZAzTnSY-lDfMRhvj2z904jpNAq7fKvYuZea8rQXSjKMaYu4aKPOPOEaqZ3_Ri8aU0LOYYDaX1N3wQI0a2ARZfu3u8SlZVQHIlqgkMQZc42UHWVCaPXNGyIOgHjJhetGVoMRz7h5lAaPtv42bcI-GDBojmgVj9yEFkoB6ZUZRdQ-WITFXnSBQW7cLdlBn1IgxonSIuIn-wBzY3hTAX6g\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}", + "code" : 200 }, { - "id" : "apiKeyLoginResponse", - "name" : "apiKeyLoginResponse", + "id" : "apiKeyLoginResponseRedirect", + "name" : "apiKeyLoginResponseRedirect", "originalRequest" : { "url" : { "protocol" : "http", @@ -114,28 +120,22 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/json", + "value" : "application/x-www-form-urlencoded", "disabled" : false } ], "body" : { "mode" : "raw", - "raw" : "{\n \"clientId\" : \"301a8e20-6403-4167-804d-fa22bfbecbb4\",\n \"clientSecret\" : \"VROxgAmQDjjUq2j20UhfhtARL7cQwLV8\"\n} ", + "raw" : "client_id=72fa4be7-7e45-47b1-948b-419ddba40931&client_secret=s3bXpsxilCyDe1EgDBbcvhUT1wlAR6TX&grant_type=client_credentials", "urlencoded" : [ ] } }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjQ3NzAwNjAsImlhdCI6MTc2NDc2OTc2MCwianRpIjoiMWZkYTJhZGUtZjE0Yy00ZGRjLTg2YzEtOWJhODZjOTJjZjNlIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDUwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiODI5YzFmODQtOWM4MS00NmNhLWFmODgtOThmZDI0YTYzZDBjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiMzAxYThlMjAtNjQwMy00MTY3LTgwNGQtZmEyMmJmYmVjYmI0IiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJjbGllbnRIb3N0IjoiMTI3LjAuMC4xIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTMwMWE4ZTIwLTY0MDMtNDE2Ny04MDRkLWZhMjJiZmJlY2JiNCIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiIzMDFhOGUyMC02NDAzLTQxNjctODA0ZC1mYTIyYmZiZWNiYjQifQ.QXjG-l1ke5cdgfCxm1U-KsW7zG14aiOa03wSsXX2S5TwPbWKZy6zD_N-e5ZUyrxAk4BYZWjlSYQ-hJqe7TD9lD602SMXNvsfrc6viVz18Dpv7DP76wTcAS_USdvbf5zRu2Mne_BQpznrbCDmwnMPocsrJe_6NctbnPiSj0gNd80OU3i7gbMBCLX2KzvcuYlYsHfr5t8tFi9xwDPQPEsNVUh7UHpNXEg7v6kkGtSZLWeFtkFp2thLRr1XwWXnt6ebI-wUJ4fIXNyoRr5ZprR6bx_w3v06vflG6hcVFPDjwtfNE7e0ofbtVDzMYyGNa64JhaCYYeH7smsT-ZbdngEh2g\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}", - "code" : 200 + "code" : 307 } ] }, { - "id" : "createMeshObjectCollection", + "id" : "deleteMeshObjectCollection", "name" : "/api/meshobjectcollections", - "description" : "This endpoint will create a new empty meshObjectCollection. You can use collections for declarative deletion.\nCurrently supported objects are: meshWorkspaceUserGroup, meshWorkspaceUserBinding & meshWorkspaceGroupBinding.\nDeclarative deletion means that a previously imported resource will be deleted, if it is not specified in a subsequent import.\n\n**Authentication:** This endpoint supports API User authentication.", + "description" : "This endpoint can be used to delete an existing meshObjectCollection. It will not remove any meshObjects\nand works only for empty meshObjectCollections. To delete a meshObjectCollection and all assigned\nmeshObjects, those have to be deleted manually before calling this endpoint.\n\n**Authentication:** This endpoint supports API User authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -145,7 +145,7 @@ "path" : "/api/meshobjectcollections", "port" : "8080" }, - "method" : "POST", + "method" : "DELETE", "header" : [ { "key" : "Content-Type", "value" : "application/vnd.meshcloud.api.meshobjectcollection.v1+json", @@ -154,13 +154,13 @@ } ], "body" : { "mode" : "raw", - "raw" : "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\",\n \"description\": \"This is a meshObjectCollection.\"\n }\n ", + "raw" : "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\"\n }\n ", "urlencoded" : [ ] } }, "response" : [ { - "id" : "createMeshObjectCollection", - "name" : "createMeshObjectCollection", + "id" : "deleteMeshObjectCollection", + "name" : "deleteMeshObjectCollection", "originalRequest" : { "url" : { "protocol" : "http", @@ -168,7 +168,7 @@ "path" : "/api/meshobjectcollections", "port" : "8080" }, - "method" : "POST", + "method" : "DELETE", "header" : [ { "key" : "Content-Type", "value" : "application/vnd.meshcloud.api.meshobjectcollection.v1+json", @@ -177,17 +177,17 @@ } ], "body" : { "mode" : "raw", - "raw" : "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\",\n \"description\": \"This is a meshObjectCollection.\"\n }\n ", + "raw" : "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\"\n }\n ", "urlencoded" : [ ] } }, "cookie" : [ ], - "code" : 201 + "code" : 200 } ] }, { - "id" : "deleteMeshObjectCollection", + "id" : "createMeshObjectCollection", "name" : "/api/meshobjectcollections", - "description" : "This endpoint can be used to delete an existing meshObjectCollection. It will not remove any meshObjects\nand works only for empty meshObjectCollections. To delete a meshObjectCollection and all assigned\nmeshObjects, those have to be deleted manually before calling this endpoint.\n\n**Authentication:** This endpoint supports API User authentication.", + "description" : "This endpoint will create a new empty meshObjectCollection. You can use collections for declarative deletion.\nCurrently supported objects are: meshWorkspaceUserGroup, meshWorkspaceUserBinding & meshWorkspaceGroupBinding.\nDeclarative deletion means that a previously imported resource will be deleted, if it is not specified in a subsequent import.\n\n**Authentication:** This endpoint supports API User authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -197,7 +197,7 @@ "path" : "/api/meshobjectcollections", "port" : "8080" }, - "method" : "DELETE", + "method" : "POST", "header" : [ { "key" : "Content-Type", "value" : "application/vnd.meshcloud.api.meshobjectcollection.v1+json", @@ -206,13 +206,13 @@ } ], "body" : { "mode" : "raw", - "raw" : "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\"\n }\n ", + "raw" : "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\",\n \"description\": \"This is a meshObjectCollection.\"\n }\n ", "urlencoded" : [ ] } }, "response" : [ { - "id" : "deleteMeshObjectCollection", - "name" : "deleteMeshObjectCollection", + "id" : "createMeshObjectCollection", + "name" : "createMeshObjectCollection", "originalRequest" : { "url" : { "protocol" : "http", @@ -220,7 +220,7 @@ "path" : "/api/meshobjectcollections", "port" : "8080" }, - "method" : "DELETE", + "method" : "POST", "header" : [ { "key" : "Content-Type", "value" : "application/vnd.meshcloud.api.meshobjectcollection.v1+json", @@ -229,12 +229,12 @@ } ], "body" : { "mode" : "raw", - "raw" : "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\"\n }\n ", + "raw" : "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\",\n \"description\": \"This is a meshObjectCollection.\"\n }\n ", "urlencoded" : [ ] } }, "cookie" : [ ], - "code" : 200 + "code" : 201 } ] }, { "id" : "importInJson", @@ -323,9 +323,9 @@ "code" : 200 } ] }, { - "id" : "meshObjectsRootV2", + "id" : "meshObjectsRootV1", "name" : "/api/meshobjects", - "description" : "Access the root endpoint of the meshObjects API to discover available mesh object types\n\n**Authentication:** This endpoint supports multiple authentication methods: API User authentication or API Key authentication.", + "description" : "Get the meshObjects root resource with available links\n\n**Authentication:** This endpoint supports multiple authentication methods: API User authentication or API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -338,14 +338,14 @@ "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshobjects.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshobjects.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v1.hal+json` for this version of the endpoint." } ] }, "response" : [ { - "id" : "meshObjectsRootV2", - "name" : "meshObjectsRootV2", + "id" : "meshObjectsRootV1", + "name" : "meshObjectsRootV1", "originalRequest" : { "url" : { "protocol" : "http", @@ -356,22 +356,22 @@ "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshobjects.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshobjects.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v1.hal+json` for this version of the endpoint." } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshobjects.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshobjects.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_links\" : {\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?uuid,workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"meshplatforms\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms{?searchTerm}\",\n \"templated\" : true\n },\n \"meshbuildingblockdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshbuildingblockruns\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockruns/create?forRunnerUuid={forRunnerUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks{?workspaceIdentifier,projectIdentifier,platformIdentifier,name,definitionUuid,versionUuid,tenantUuid,targetRefKind,status,managedByWorkspaceIdentifier,managedByDefinitionUuid}\",\n \"templated\" : true\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,authorType,authorIdentifier,eventType,workspaceName,workspaceIdentifier,excludeTitle}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?workspaceIdentifier,paymentIdentifier,state}\",\n \"templated\" : true\n },\n \"meshintegrations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations{?displayName,ownedByWorkspace,type}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups{?workspaceIdentifier,username}\",\n \"templated\" : true\n },\n \"meshworkspaceuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspacegroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"meshlocations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations{?displayName}\",\n \"templated\" : true\n },\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshplatformtypes\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes{?category,lifecycleStatus}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", + "body" : "{\n \"_links\" : {\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?customerIdentifier,paymentIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshObjectsRootV1", - "name" : "meshObjectsRootV1", + "id" : "meshObjectsRootV2", + "name" : "meshObjectsRootV2", "originalRequest" : { "url" : { "protocol" : "http", @@ -382,18 +382,18 @@ "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshobjects.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshobjects.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v2.hal+json` for this version of the endpoint." } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshobjects.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshobjects.v2.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_links\" : {\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?customerIdentifier,paymentIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", + "body" : "{\n \"_links\" : {\n \"meshbuildingblockruns\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockruns/create?forRunnerUuid={forRunnerUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks{?workspaceIdentifier,projectIdentifier,platformIdentifier,name,definitionUuid,versionUuid,tenantUuid,targetRefKind,status,managedByWorkspaceIdentifier,managedByDefinitionUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblockdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshplatforms\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms{?searchTerm}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshlocations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations{?displayName}\",\n \"templated\" : true\n },\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"meshintegrations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations{?displayName,ownedByWorkspace,type}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshplatformtypes\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes{?category,lifecycleStatus}\",\n \"templated\" : true\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,authorType,authorIdentifier,eventType,workspaceName,workspaceIdentifier,excludeTitle}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"meshworkspaceuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspacegroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups{?workspaceIdentifier,username}\",\n \"templated\" : true\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?uuid,workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?workspaceIdentifier,paymentIdentifier,state}\",\n \"templated\" : true\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", "code" : 200 } ] }, { @@ -444,6 +444,74 @@ "body" : "{\n \"_links\" : {\n \"openstackProjectMetadata\" : {\n \"href\" : \"https://mesh-backend-url/api/metadata/openstackProjectMetadata\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/metadata\"\n }\n }\n}", "code" : 200 } ] + }, { + "id" : "meshBuildingBlockDefinitionPostV1", + "name" : "/api/meshobjects/meshbuildingblockdefinitions", + "description" : "Create a new meshBuildingBlockDefinition with specified configuration and workspace ownership\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshbuildingblockdefinitions", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "urlencoded" : [ ] + } + }, + "response" : [ { + "id" : "meshBuildingBlockDefinitionPostV1", + "name" : "meshBuildingBlockDefinitionPostV1", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshbuildingblockdefinitions", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "urlencoded" : [ ] + } + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:48.150361348Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"f6bff195-bf12-450b-bce4-1c813fa59139\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/69738ff0-1eb0-4609-b580-44e9e420325b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=69738ff0-1eb0-4609-b580-44e9e420325b\"\n }\n }\n}", + "code" : 201 + } ] }, { "id" : "meshBuildingBlockDefinitionListV1", "name" : "/api/meshobjects/meshbuildingblockdefinitions", @@ -515,109 +583,77 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshBuildingBlockDefinitions\" : [ {\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:27.345384782Z\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"e4b4931c-cf55-4a73-a08b-7789efc9ad76\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions?workspaceIdentifier=my-workspace&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshBuildingBlockDefinitions\" : [ {\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:47.273824500Z\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"65553088-f3b0-49c0-98dc-a9977fd68b83\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions?workspaceIdentifier=my-workspace&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { - "id" : "meshBuildingBlockDefinitionPostV1", - "name" : "/api/meshobjects/meshbuildingblockdefinitions", - "description" : "Create a new meshBuildingBlockDefinition with specified configuration and workspace ownership\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshBuildingBlockPost", + "name" : "/api/meshobjects/meshbuildingblocks", + "description" : "Create a new meshBuildingBlock with inputs and parent building block relationships\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblockdefinitions", + "path" : "/api/meshobjects/meshbuildingblocks", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "raw" : "{\n \"apiVersion\" : \"v1\",\n \"kind\" : \"meshBuildingBlock\",\n \"metadata\" : {\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"11d588ca-efc7-4b4e-b04c-0f927aa412db\"\n }]\n }\n} ", "urlencoded" : [ ] } }, "response" : [ { - "id" : "meshBuildingBlockDefinitionPostV1", - "name" : "meshBuildingBlockDefinitionPostV1", + "id" : "meshBuildingBlockPost", + "name" : "meshBuildingBlockPost", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblockdefinitions", + "path" : "/api/meshobjects/meshbuildingblocks", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "raw" : "{\n \"apiVersion\" : \"v1\",\n \"kind\" : \"meshBuildingBlock\",\n \"metadata\" : {\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"11d588ca-efc7-4b4e-b04c-0f927aa412db\"\n }]\n }\n} ", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:28.175870586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxAAAAJpCAYAAAA9o9RAAAAACXBIWXMAAC4jAAAuIwF4pT92AAAgAElEQVR4nOzdPW8kV7bu+R2ZyUy+1Vt3o+cAF1MtQ8aMpRqTliRrxtBAZYyvupgP0PUNVP0JbrU3XpfGGu+qgQLGpHQdmUfyrlHAkQQMoBakqmS9kEySGTF4InewslhkMjJzR8TaEf/fvQSlPt1kMpLJ3E/stdZOsixzAAAAAFBGj6sEAAAAoCwCBAAAAIDSCBAAAAAASiNAAAAAACiNAAEAAACgNAIEAAAAgNIIEAAAAABKI0AAAAAAKI0AAQAAAKA0AgQAAACA0ggQAAAAAEojQAAAAAAojQABAAAAoDQCBAAAAIDSCBAAAAAASiNAAAAAACiNAAEAAACgNAIEAAAAgNIIEAAAAABKI0AAAAAAKI0AAQAAAKA0AgQAAACA0ggQAAAAAEojQAAAAAAojQABAAAAoDQCBAAAAIDSCBAAAAAASiNAAAAAACiNAAEAAACgNAIEAAAAgNIIEAAAAABKI0AAAAAAKI0AAQAAAKA0AgQAAACA0ggQAAAAAEojQAAAAAAojQABAAAAoDQCBAAAAIDSCBAAAAAASiNAAAAAACiNAAEAAACgNAIEAAAAgNIIEAAAAABKI0AAAAAAKI0AAQAAAKA0AgQAAACA0ggQAAAAAEojQAAAAAAojQABAAAAoDQCBAAAAIDSCBAAAAAASiNAAAAAACiNAAEAAACgNAIEAAAAgNIIEAAAAABKI0AAAAAAKI0AAQAAAKA0AgQAAACA0ggQAAAAAEojQAAAAAAojQABAAAAoDQCBAAAAIDSCBAAAAAASiNAAAAAACiNAAEAAACgNAIEAAAAgNIIEAAAAABKI0AAAAAAKI0AAQAAAKA0AgQAAACA0ggQAAAAAEobcKkAAIjP3v74nnPutn/g8/+8rLFz7nv/vxl/9+nt7/l1ALBIkmUZFwgAAGP29se3fTAowsEn/vNHNT3SH+bCRfH5RwIGAAIEAAANmNtB+MA59z855/7N/7MCwq7xKgGFix99qPhGn7/79PbYwOMCUAMCBAAAFZnbRfjEh4MP/L/fauE1/8mHiSJQsFMBtBQBAgCAQPyuwif+Q//8lw5f2wPn3NdFqPju09s/GnhMAAIgQAAAsCK/w3Dff3zS0p2FUH7wgeJrdieAuBEgAABYwt7++AMfGB7U2NDcNj/5MPGEMAHEhwABAEAJe/vjBz44fM71Cko7E098mKARG4gAAQIAgCv43QYFh4eUJ9XiKx8kvunAzwpEiwABAMAFPjg8cs59wbVphEqcHn336e0nHfzZAfMIEAAAeAQHczTJ6bE+KG8C7CBAAAA6z09TUpnSl12/FkYRJABDCBAAgE7b2x/f94vTLp/ZEAuCBGAAAQIA0El+1+FJ41OVes5lSXLl/zlJM+dCvVUnzmW9d79XonVAGujr14ceCaBBBAgAQOfs7Y8/8eGhvl2HXuKyvv/cm312V+eG9+ntOs1ckvrP02sW/vo+g2QWUPolvlfx9af+81kU64NvfZBgahNQIwIEAKBT9vbH6nX4L3X8zPkCfpCUW8Cv9A3cLEic+QW/wsJGb/Z91/1+xdc+9WHFtq98kPjR+gMF2oAAAQDojL398ZPKJyxpET/sVRcarpK56r7fNHPJifkgceB7Ix4ZeCxAqxEgAACdUHl46CUuHSXO9etMDfVKtBtxkobryaiG+iMefvfp7a8juKRAlAgQAIDWqzQ8JH7HYaO9weEdaeZ6R+ZDhPP9EQoS3xt4LECrECAAAK1WaXjQrsNWr95SJQviCRHO90c8ZOwrEE6PawkAaKu9/XFlp0prxyHd7mB4cH7C0zCaJYSe/x998zyAANiBAAC0kh/Vul/Fz6bwkI24B5ccpTFMaJqn/ogHjH0F1kOAAAC0jj8kTiM9b4X+2TRdKdsiPIhGxybH8Z1C5/sjHjD2FVgNfwEBAG30qIrwkDdMb/LWWcjinTj1sXPuP1Ti5sMmgCWwAwEAaJW9/fEHWhxW8TPl05aGXWx6uFrv9dTqQyvrwDdZP4nj4QLNI0AAAFrDh4f/5pz7H6v4mdKdfjebpq8y9dOY2uEHHyTojwCuQYAAAETPl6Foys6XVf0s9D68L5mk+eFyLfNPHyTojwCuQIAAAERtb3/8wDn3uJKehzlMXrpAZ0Ectmb34aID/zv1mPMjgPcRIAAAUfJjWrXI+6iOx0//w5y4DpJbh8a+PqI/AngXAQIAEBXf56Dg8Hmdj5sA4anv4bgT4WHetz5I0B+BznMECABALOroc1gkGyTdHuGaOZectLLnYRlf+f4IyprQaQQIAIB5dfU5LJT4KUxdo+BwmrnktHO7Dlc58L0Rj2w+PKB6BAgAgFl19zlcRzsQ2onoivyk6ZPUudb2Sq/lJ78b8XXEPwOwEgIEAMCcpvocFtIOhMa49joQINLMJZPMJVPWCCWoP+IBY1/RJQQIAIAZTfc5XKkr4aGBPofJ9NSN+hu1fb8K/d03WtMfgdYjQAAATDDR53CZjoSH5KSZPocWBQjn+yMUIh4beCxAZQgQAIBGWetzuEiHx+kQudbSWNZJc30OLQsQhZ98WRNjX9FKBAgAQCNM9jlc1HMu3W7p5CWVKx2njfc5HJ5N3PZg1OhjqNA/faM1/RFoFQIEAKBWZvscLtHK3Qdj5zm8OjlyN4ZbBh5Jpf7mR7/SH4FW6PCJOACAuvk+h++rCg9pFrYOJ2vZu6TGsvYOp2bCw2l65rJuHC6h3/cf/e8/ED12IAAAlfN9Djp46+Mqv9fRdOK2+uHKYfLm6X4LdiDyPocsH89qyavTQ6dlyM3htqnHVbEffFkT/RGIFgECAFAZ3+eg4PBFHVf5xeSVuzO6EezrRR8gVK40SfOdB4t+OXyR9z90LEAUvvITm+iPQHQIEACA4Ob6HB7WOZb1t+MDd2NjO9hUn2hPnlZwOPWnSBt1PD1xvx+/zJ+vjgYI58e+PqY/ArGhBwIAENSFPofaz3RQWUwwEZ7EnPc5HE1Nhwd5fXpk4FE07pZ/nXxPfwRiwg4EACCIuvocFtEOhM4V+OPmTbfZHwb5mulOPz9MzrxpNjsMLoLQo9GtKjeTju9AXPSt74/43tbDAt5FgAAArKXuPodFigDRT/ruz1u3XS8JsPLvJS7dNrxhb2ws63XSLHP/Onqef3YEiKt85YMEZU0wiQABAFhJU30OixQBQrQDoZ2IEHQWhM6EsCbfcThNXUyTUNX3oP6HAgHiSge+N+KR0ceHDiNAAACW5uu1tbD5i6WrNx8gRBOZQp1ynIeIYc9EOZP6HPIeB9ttDu9R38PByZt3/mMCxLV+cs49YOwrLCFAAABKs9DnsMjFACF/2rwVbCpTXs60meSfG5FmLpnE0edwkZ4XPT8XESBK+9YHCca+onEECADAtSz1OSxyWYBQH4RCxEZvEOz71L4bEVmfw0U6cVrPTXrJmoMAsbS/+/Mj6I9AYwgQAIArWexzWOSyAOEqChEKDzojotIgUZznEFmfw7xF4cERIFZ14EPE4zgfPmJHgAAAXMpqn8MiVwUI50OEeiJCjXe98MVnuxJ9t355k0KDSpQ0llUnSEf8Nq1maY1rvSo8OALEun7w05roj0CtCBAAgHdY73NYZFGAKNwa7rjdja3qHoR2Jvq+T6LnXNZbECoy39eQzj6rKTrG/obLXNYwfRkCRBD/9EGC/gjUggABAMjF0uewSJkAIduDzTxIBDknAu/QboOCw+HZcakLQ4AI6m9+9Cv9EagUAQIAOi62PodFygYI0WFzd0a74SY0Ie93+P34lZtm09IXgwAR3IHfjXjSsp8LhhAgAKDDYuxzWGSZAFFQOZMWsexGrE67Dm/OjtzLk8OlvwYBojLf+kZr+iMQHAECADoo5j6HRVYJEM7vRtwe7VTTYN1yapQeT94steswjwBRua98kKA/AsEQIACgQ9rQ57DIqgGioHImLWgpa7qervOr08O1rrcjQNRFZU2P6Y9AKAQIAOiANvU5LLJugCgQJK4WKjgUCBC1+sn3R3zdoZ8ZFSBAAEDLta3PYZFQAaKgAKGJTduDUUWPOB6HZ5N8slLI6+sIEE351geJ77v542NdBAgAaKm29jksEjpAFNQjsbMxysNEP+kF//pWTbM0Dw1vTicr9zhchwDRqK98kKCsCUshQABAy/hypcdt7XNYpKoAMW+jN8gnN6nhuo2TmzRRSY3RVew2XIYA0bgD32T9uOPXAUsgQABAi+ztjx+1vc9hkToCxDyFCZU3qdRJ/xwrnd+g66bgUOf1cwQIS9Qf8YCxryiDAAEALbC3P77vdx1a3+ewSN0BYp52Izb7I7fR65sPFAoMp+k0v1b6qKo8qQwChDnf+iDB2FdciQABABHb2x/f88GhM30OizQZIC5TBAl9qHeiialOs4CQ+tAw+0gNvfcTIMz6uy9toj8C7yFAAECEfJ/D/+2c+995/t6yFiAuo50KBYrEJW7Yn+1SFP9e0L8v6q9QAFAQKGTu7b+fTM/O/91SULgKAcK0A99k/aTrFwLvIkAAQAT8RKV7/uN/c879Dzxv74shQOBdBIgo/OCDBP0RyBEgAMAgHxiKD8qTSiJAxIcAEZV/+iBBf0THESAAwABfknTff3zS1SlK6yJAxIcAEaW/qfeK/ojuIkAAQIP8KdEKDZ/zPKyPABEfAkS0fvJN1vRHdBABAgBqtrc//sCfEH2fnYawCBDxIUBE71sfJOiP6BACBADUxPc1PKKnoToEiPhotO2fNsnRLfCVDxL0R3QAAQIAKkZwqA8BIk7/aedPXb8EbXHgeyMedf1CtB0BAgAqQnCoHwEiTtqBaOKQPVTmJz+t6WsucTsRIAAgMD9RSadDf8G1rRcBIk63hjtud2Or65ehjb71QeL7rl+Itul1/QIAQEh7++OHzrkfCQ9AeTGcmI2VaPf13/f2x4/9jRW0BDsQABCAf3N80sg41l7issQ510/8v7vZv18hmfr/PM1cks4+l5Y4l/WS2e2nJLn0e+VfM1vx66+JHYg4MYmpEw58k/Xjrl+INiBAAMCa9vbH95xz39Q1kjVTUOgnLuvPhYZ1Tf1iX5/PLrwvKKBs+O/XW+H7ZQot2duvXeHbzu/HL93x9KS6b4BKECA6Rf0RDxj7GjcCBACswR8E94/Kr6EW8cNkFh4CZYYrzS34s0ESLqS4t187OUmdS0M/cOdenhy6V6eH4b8wKkWA6KRvfZBg7GuECBAAsKK9/bEmLH1Z5fXL7/xvJKvd+TcuOfFBIiACRJwIEJ32Nz/6ddz1CxETAgQArGBvf/ykykZp7TRkm73qdxualmaudxxuN0LlSypjQlyiHOPa82V9if/sSpYUFv1B+eeifPD60r5897E3+x5531Hvit3I+a+vrz2ttw9pRQd+WtMT6w8UMwQIAFiSJoo45/5ayXVTk/KoNysd6orMud5RGmSRM82m7pfDF925di3xb9t3XD/p2/5h9NocFP1HFZQSprPFfnKanb8W8u+zEeD7nZcOZtbDxA8+SNAfYRwBAgCWUGnPQy9x6VYHdh0uo50IhYgAb0m/HD5306yCBgtUop/03L9t/8Hsxc1DwyCpN9QXr4MqvqUPEnmfk13/9EGC/gijCBAAUJKftvTvlVyvLocHT3dek8n6C/+Dkzfu9elRoEeFqukAOR0kZ03efzRs72tSE9Hy15vdZeCBP5CT/giDOEgOAErw5zx8Xcm1IjzkZs3i63+d3Y3NEA8HNbH2fKlcKN3u5aWEbX5Nakcl/7tjd0DDLT+k4nu/8wtDCBAAUI7uhP0l+LVKHOFhTjZY/21JtfTRNeR2lJ4nS70Pef+R7UV1WMXNC9urQf3d/cfe/vgbvwsMAyhhAoBr7O2PP3HO7VdxnfIFywbpoRBqtKtOo9ap1LDNzPSlIsh3JThcpB6kw2j6hr7y/RGUNTWIHQgAWMCHh/+3kmuUOMJDRbQo3ewPW/mztYWeH8KDET3f7xEHjc/+0Z/Dg4awAwEAl9jbH3/gnNNM8o+ruj55k+aI+zjzkuM0b+4MQSNdfz0au5T3OXN6SeL+vHXbRPmS+h06HR4KGqf8ZmrjsZT3k9+NqKY/DVciQADAHN8s/aiycx7m6KC4Tp33cJ0KyigOz47di8nrKh4t1nBntOu2B803T+uuezbkNVhIjlLr412v8q1z7gFjX+tDgAAAb29//NCHh1t1XJO8bKLMybVdEPAwuYteTF65w7NJ16+wGduDkbszutH8w+lp98H44XU1izhAFP6uv+H0R1SPAAGg83yfw5NKpiwtQIDwKgwPBZUynaZnlX19lLPRG+SlSxYwwOB9+Q6g7ZOqyzjwIeKx/YcaLwIEgM6qo89hEQJEfYdZqQ9CU5kIEc1ReNDUJfU/WJDu9BmfPC/OHohFfvJlTd/YfYjxIkAA6Jw6+xwW6fQd0FTBIau1XIIQ0Rxr4UHSXcqX5rWgfOkq//SN1vRHBESAANApdfc5LKITb/NDq7okc/k5D8lpM+89ChHPJy/zcyJQD4vhoZOvvQW0C9jUa7JGf9OBoPRHhEGAANAJTfU5XKdLZRT5IXGn1ZcrlUFjdT3MNExfpBOYtwkQTQf6Bhz43YgnXfmBq0KAANBqTfc5XCnxJUxdGOM6zVxPfQ41HXSbZqnrJdcvDjXi9eDkDedEVEC7DbeGOyZGtV6l8yVMNb8ujfnBBwn6I1ZEgADQSlb6HK7SicOrMn8wXM111epxUNlM2f+uzomgLyIcXXud81D2OWhKZw+Qa+h1adRXfmIT/RFLIkAAaB1LfQ6XaX3zdMNlESfpmRsuuXh9eXLo3pwdsRuxphsb2+7mcDuKx9q5k+C7V65UlsqaHtMfsRwCBIDWsNrnMK/tzZtanGiR0mSfgxqkR/2Npf9302zqxpM37nh6UsnjajNdb+069JN4yoK6FCDqGpccuZ98WdPXXb8QZRAgAETPbJ/DJbLNlvY95PXUWeOHUE2z1J2l05UCREEB5NXpIZOaSlCZknod1rneTehMeDDyuozMtz5IfN/1C7EIAQJAtKz3OVymdY2bmR8BeWbjvUSTlfpJL8iCliBxNQWH3Y1N003SV+lEeGjodakA3y8xwCASX/kgQVnTJQgQAKJkvc/hUm0aHZnNlSsZooZojQ4NeUdcAeL16RGlTb5USX0Ose04nGv7+NaGX5erlg8aduB7Ix616YcKgQABICp19zlo0bjZHwb5Wm3pf8jrqU/sjX9UA/S/jp67P4xuVrKIUY/Em9NJPv5Vd1q7QiNZtdOgHYeYehwuk+r112/nAAMLr8uQfy+NUX/EA8a+vkWAABCFpvocfjs+yE/RDSLxB8fFaprNDoMzOv5R5Us6IE7PV9V3QbVQOjqb5J/bOLlJoUELwa3BqLEFodYnScjTq3sa3drCsx8MvS51rop6YlrsWx8kOj/21faQZgCd13Sfg7bkg9X1Zv4jthugkYx/1CjWumhRXSysFSL0e6JAEfPOhH7Ht3z5l4W7yKnLXD/giyVr286DwddlB/qFdAPrP/b2x3/relkTOxAAzLLQ5/D/vfktX1CF2oXIhj2XDeNZyOR3Nk/tj38sdh+kjh2Iq6jMSYuo4sNyoCiazYsPa+VJp+nUbfTCPabYXnuLWHxd6nf9l8Pn7j/t/MnAo6lFp8uaCBAAzPF9DjrY56OmH5sChPxx82awu7J5GZPxdYzVPofLFL0PRSlRkwHiIj0mnXKtMKHPWmQ1ceq1piYpMOizro0+90KWB1VA12zQ6web6tOGAGH5damJZdoF7FCAKHRyN4IAAcAM3+eg4PC5lcdUBAjdnf3z1u0wiy5NglEzp8W1TKoDp+z2OVzm9+OX70xIshQgrqKdirM0Pf/s8hO035Z/6CyLMrsXWlwP5u7SD3uzn3vQ6+W/s8XnGClA6Jpo6lMIUY9vjeB1+cvhi/z3uYMBQn5wzt3vUm8EPRAAGuf7HFSu9KXVZ0NvjCqR0U7E2tLM9Y5SWyEikj6Hiw59I3NstKjv97Wwb9XIy+A0PndnsBUkuOvufTYy9yMuFsnr8jDv/5kaeCSN0W7593v74wddOcm6G2e4AzBLf3Cdcz9aDg8FLVS1TR+EDxEWapi1OOkdTqMLDyoFOjh5beCRoCoqAQv2msucmQMPy4jldannqM4BBoapUe6/+t691iNAAGiE+hz29sffO+f+EdNhcHqj1N22INKGFwhT//0n9pukL1J40IjdNo5Qxbu0CxGqbySK3/XIXpdvzo66vvtw0X/Z2x8/sfWQwqOECUCtLPY5LKuY9qMTj9eWzRY1yalv8hzUUNOk73mcRtXnME+hQSdOEx66Q8+3elvWLmXKnL3ywUKEr0v1qbD7cKkvfGmuSprGBh/f2tiBAFAL/THd2x9rUsV/xBweCgoRwXYiXD70Pl889N74O49pBYsIHTg18d8j0vCgO9G/Ho0bmWSE5szK1d6E+f6Gygdz2Wwsa2yvyyLI40p6n/vGB4nWIUAAqFxMfQ7LUIgIVp9dyIra5/S8jCGv215lXeFrvvPQcDjNF02x9TnMK8qWKJfopsOz47Dlg0fTaoL6EvT6zF/nJ/EdQMhrsZSP2hoiKGECUBlL5zlURdv3GsN5a7gTfq6+diW0wDnNZtUWiXNZL5nd+rnqe/k7mLHuMFxl/qA4dFfQ8sHU5UE9H+86rLmkSX0Ok6zxALMq7TywC1ia3v/UE3E/ksdbCudAAAiuDX0OheIciOvoYK47o938M8JRmYRKV3T3uawYzoHA9VRfr7vcl7kzuhEmRBQUzgc1BImi5ymiaVAXKTwsej129ByIMr767tPbD+w/zHIoYQIQTNv6HJZR1OYHL2nqMC0gdU2XCQ/ohuA9SEXpoPoQjtYoG7zqa6uUsOhxijQ8FD0PvB5X9kWbRryyAwEgCN/n8DimkaxllN2BmKddCJU0cRd8NavsOsxjB6IdFu1AFHY3tvLXWmV6icv6+cl/Lktmn6+lYQWZLydM21FOqNeknosyZUvsQFzrf/nu09vfG3+M1yJAAFhL2/scVgkQhe3Bprs53Hb9hM3esrSDo7n/64xoJUC0Q5kAIXqu/zC6Gb4HaYHsQpDIA0Ok/QzX0fPwfPKy9GuSAHGtn5xz92If70qxLoCVtKnPoSqzqTHH+V1SfRAkrqZyFDWkM9UFy9IC919Hz/MQUVdwbNuQgqso0HPOQ3B/cc6p1DfqciZ2IAAsxY+je9i2kaxXWWcH4iJ2JN6lO5rH05PgwYEdiHYouwMxT0H9xsZ2rbsRbaRSpVUnLbEDUdqn3316+5tIHut72IEAUFpb+xzqUuxIbPaHbmdjM//cRdMszcuUdC04TRohFb9Xt4a7Yac0dYRej0UZISqnXYhPYr3M7EAAyPleBjf3B+0D/yHadfifnXOdW/GG3IG4qJ/03c7GKN+ZaPuuRLHboMWd7ixXiR2IdlhlB2Kefge0G8HvQjkqIzw4eb12qGcHYin/+btPbz+J6PGeYwcC6BgfFBQM7s19sKPQAJXtqHxHH5rcpDumWuy05SyJIjQcnU3yz0CdFEAm0wOCxDXoP2rUI3/IXHTYgQBazPcrfOI/FBQ+5vleTpU7EFfRzsTWYJgveIa9jajqubVoO0lP/eKt2p2Gq7AD0Q7r7kBcpN8J9Uh0tXRwnsK9dgNfnx4HDw7sQCwtyl4IdiCAltnbH9/zgeE+gSFOekNXDXJRh6wdCX3Mdif6ZnYo1MugJkt9NBkYgDKK39EulQ5epNeqQsPxdEL/kR3qLYwuQLADAbSAH6n60IeGv/CchtPEDkQZChFa/Az7g3xBpH8e9PqVLIiKYKCdBS06itBgdQHCDkQ7hN6BuIx2I7YGo/xzWyc3KeirjLCK3YbLsAOxkjuxnQvBDgQQKV+edN8Hh1Ye4oar5Yt4567sLbi4gL5uQX2Wpu8sLiwHBCAUvX6K11ARJvRaiX1nQq/fWf/RyUqjWFE7VQ18HdNlJ0AAkfG7DY98eKD5GZe6WE5EeRGw2HyYKEoGY+lDmu0KTvPXOeVJUbpPgABQibng8AVXGACqU5TpFX1IKhNU/5FKBhUoqioXLEOPq+g/UmBgt7AV7sX2QxAgAOMIDgDQLJX3TafT90oGtUORuCQPFqJwIdqxWHXYQbFbmLnsvPxI/1nRf4RWiq4MmQABGOV7HNTf8CXPEQDYUyz2lznnpOhHoqwQ83Sz8LtPb/8Yy0UhQAAG7e2PVQ/5mIlKwPJ05xawiuCAK6jagAABYHl+1+Fxk+VKWd83Cyb5Pvwl/4XMudT/V9LMrbVW6yUuK76FyonVqDj/9ef+GShLCzQOCwOA6hAgACP8AXBf17brkPiwoEV834eFUoNG3v6XzrPDNHNJ5j9Pr170Z4NE3Yhvv98yXz/1n8+4u4zFuMMLANUiQAAG7O2PdRLlPyp/JMncIn4QcCyhvp4+D/znzOUL/eR0ttjPhsksrKz6LYvQsZHkGxSzr52yO4FL0WgKANUiQAAN29sfq2Tpr1U+inzxvhE4NCyioKLvt1HB9zv/2v08oCQn6XplVGglhYhVp+AAWJ2mRbX1VG+8xV9XoEF7++MnlfY79BKXjmY7Dm2UB4lB3yXH6ax0CvCYiw804ySlB2kV3316+5uYHm/cZ7UDEas0POgu/ajn0u1ea8PDOf2sW71qdjsAAEs5mVJCuKw0yw7iesTsQACN2NsfV3cwnHYdtnqr9xtESoHJZSlN1gDQIO1AYDnTbPpLbJeMHQigZr5hupLD4dTj0MXwUMhDROCfvZ/wZxIAUJ3J9PS/x3Z52YEAaqSTJv05D8GpUTrb7Phi15duqScilEGv76ZTxj3FpjjtN0r6PdaY4+JslOv481hWPZflfELaVaOV/Xksa5/7gk5gjPLyXp8eESAALKS+h1vBL5Gqd7oeHjztwuRrrkALHU3y4Q0xLrHtGuUL+P6y57HMm/0Pzkco+7NY8nK+9JIXQmGklG4AACAASURBVG82IW3xeSzXfP0zzmQBQjienrhplh7HdjEJEEBNfOnSx1V8t7SC0p2Y6e5tqKlMupP9+vSoq5cySjHsPuQjlQdrno9ymeKsF3/+yvyCvwgOa32/ZO6x+6+dj1Jmkw4eI1yXE+v7CwECqMHe/vh2laVLrZ+01KBhL+JSmI4yGyDyM0x66y/il/2efsFf1dfORylzJgs8zl8pT7vbse5wU/MA1ONhJaVLbnY6M96VXFa2sSLdTWOmeTxmz9fI1uPVQnuoscr92a5AC1+yCkX6+cqVRJUTdR9LhyVsh5f26vQwkkf6PgIEUI8HVX2X2k6XjkRelx34LujOxmZ7L1jLKOxZKqHQDmGbg8M7EjebAhcwRHA3Oz48Z+Wo9yHm/joCBFCxvf3xfefcXyr5LgHfqFtBNdmT8MXYWpQyzjUON4fbZh6nJoJlXRurHDhEsAsRn60BO7bX0Un5LyavbD/Ia/COCFTvk6q+Q0Z+eEs9okfV1WDfGd2o5gsjmO3ByPWTvokLqqlonT0dXSFikwDRRbrRwg7E9Z5PXuYhImYECKB696v6DgkNizPTzPWOppePrAxECxkWM3apbOnWcNfE48vDQ9dLC4uJT2ti9y8uWwNj/UcGHZy8acVocF6VQPWqKV9yrtIFcxR8yVK+81DDGMk7o11GFBp1Y2PbxHOjZunOhwcv1HXYHtCDFItd+sUWOjybtGYsOPtMQEX8qdP/V9XXV03DnVuwKDhobORpvWMjVR6jUqbfj1/W901xLd2l3t3Yav5C9fzZC5gJNF5az+2bs6PoSz7azlIJoUUKD7H3PcxjBwKowN7++JFz7nvn3P9a+fUNdGBaLBSYVK7U1Mx5M4tV5FRvbaU/RbsPmL8gYS6GdpZ2BrzmrLM0wMCatoUHxw4EEJafuPS40rKleUm4u3zmpZlLJlmwE6YXyVy2cJb5reGOS7M0f1NAc7Sw/NPmLRtlZQkjlS8K+VrV4lRjL0/Ts2BfE+GohJDdh8vprIeXJ/Ge93AVAgQQwN7++J4PDh/Xdj0rmLluksqVTtK8ZKkuKpXoX7MoLe56EyKaYSo8FCfC412BX7PqQfr1aMxFNka7gOw+vK8Y1arg20YECGANe/vj2z44fFH3dUw32x8ekpP6+xzkLJ26fv/6chRCRDM0leePmzdtjYvkTJZ35D1KgXcLZ+Vqu+7F5HXQr4vVKcD/cZMR1xdpp+z341dumk1tPbCACBDAinyfw0NVtNR9DfPxiG2+46mxrJN6JiutSyGil/RaM1nDOi0iLe084H3qU6riQEfnJzJpBCah3YY/jG5SunRBW0uWLiJAAEuqvc/hEq1t1lS50nFaS5/DIrp7tMyZD+qJ2Oj18/neTIqpjqa86KwHwoNRNZUbsvNng3aDOBvnLQVb7Y61eddhHgECKGnVPocsy1wScMGTN2q2bf3UQJ/DInojWHbSku6M6u643kBo9AxLgUFNmqanX+Wht7vB5nzXoaaXMCGiWQoPnM8xM81SN568bm2vw1UIEMA11u1zSF3m+iEXFi2rtc5rpRsayXqVk3S1U0IVIP68dTvfvtY2NtanO5xarFgvk9CuWdbFDJGXG2aNHGpJiGgG4WFGu806n6QL5UqXIUAAC4Toc9DdCTV94r0L09jCYxHtPqxbhqSJJFuDYV7SpK+H5UWx63BBfqjjRkcShD8FXj9zkxQiFC4J7NUrJp+ZGl7QEIXWg5PXnS5Z5bcAuETIPgeVMKmkhT+6npGFx1VC3c0smn0Pz47zO1QKkignxl4HjXHtxDkQ2dyuYS3fbvGZLM4H9mF/kI/MpAepGvp7pmlLXW+Y1g0h3RiiTJUAAbyjqvMcXp8e59u+QaSR1knUvPBYxTQ/HO446NfUVv9mf5RPadJ2Nwucqyk4aDEY2yJFuw7ZqP27jHmfw0m909FOpuUGGuiEeJUPqgeJXb+wtAuoQRFd1tU+h0UIEEAN5zloUbq7sRlkFyIvk4gsQ9TdYLmqqmpZdSddC2O9Eet3QWGCHYm3Yg0OuV7S3qlohWk2O5Ol4elo19Hvj3b99PpSSRNhfT0qvVWJWJcnLXW9z2ERAgQ6r67zHLTtqTe3EHQXMIo7npEsPJwf3Rp69+EiBQmFiCJIqFyqq3dLtTjR7szOxijqsoh0s4VT0QoGpqOtEgL0+lIP0njyhjvGK9DfqZ3BVudPl6bPYTECBDqr7vMctFDUnbEQTaF6Q88Gmd3D5IyNZS2j7tNttXjWh2aGq8Tt6GzSiV0J7TZsDUZ5yUns8p6Hlp5A3dQp8BdlKz4AhVKdVq6/u9qNoKypnKh3AwOhz6EcAgQ6p6o+hzL0RqbFU4ipTL3j1KVbPVsLmKLPwcDCYxl6Xpp6s9AbteqL9THbBZm0Kkzobuawt5HfEVYvSKsOgWth03QTfQ6LnKXrHcql8ptR/xZB4hoEB/oclkWAQGdU3edQhrZCfz9+mZcyrb2QypzrHaUu3eyZ2ImwtvAoSwsKK/Wt6pG5NRychwk9Nn3oXIqYttH1c8wWbhumdhrOsqkbBFwgZW3KD6n6lGyVG4ZcyBEk3qf3IL0+ux4c6HNYDQECnVBXn0MZWhhq3KC219fmQ4SaOPP5800saAwuPMrSc/F88tLkY9MiXB9FyVsRKPT5NJ2a2V7XIkSPU7sMGqWpz1Z3GXT9BoNuj6F8j+Fyw6Ozk+Bn6BRBoigdVC9S12rcdU31d0UllK3aEVwBfQ6rI0Cg1erucyhLd9ZUcx9qtGu+ADhzsyBRV1lFhH0O87QA/+34IJo3jiJQzNOCWAuhszTNfx7Vi+tzFT+TvncRFrQAKR5PTAsQve622lZGtQaLp8AX9Dt8PJ3kzbxVmC8d1O+FygbbfKK1XrMqn1WpEmcS0ecQAr9FaKUm+xzKKib+hDsfwrnkOHW6YZdt+CBRxTop0j6HebGFh6vMxitePmIx9QcYFsoGC+0iFAd3FYGhLbJ8UXqSL6JCSPQSiHFDIz8F3na5YZ1npqiMRx86vFDlggoT+j2J/e8DoeF96nNQqVLVE/e6gN8otIqFPodlzLbP03zWdrC7oqk/6XkyOx1XjZ75ImedZmuFBpUoqc/B6AnSZbUlPFxHv0/z89u7PMt9nhYPWiyGeL3l09A2ItrNyPxNBuPlhnptamJd3YqegKJvJ7Y+JAWGovdIH10/NXpe0eeg3yvKlcIgQKA1LPU5LEN3urSgVU9E6HrffKGgsxjc7OC5TCFCoaK3uAFUd1bz3QX9b3XydUv+3qpEQf0n6C6VfGkhcWMjwIz7dBaoaysbXFUEp8DPs3II3GV9SPM9SFWVC5ah94pBr3/ee7TR6xMYrqC/+7pxoNc+wiFAIHpW+xyWoTeiX49e5DsRlU2tyd4GChfXQdZr05u86l3Ztoab24UIcjL8JHVZv2/2BRXLKfAF/S1sYvehjMv6kIpSwaIXSZ+LEczrBIwiIIhCgpsrL2Q3sRwmblWLAIFoxdDnsIxixKvudunuKI2eYcymXr2mWQ7v0O9E0HHKOpPF0ks273PI8l2SWMz+Bsa1Q/i2VLDcov6yxWzbeo2aRp9DPfiNRXR8n4PKlf7axmdPd980vvD2aKcVp/U2hdneWESBUrtSQYYYpJnrHU1nZ7I0fbBj5nugIuxVUnlh28tM2D2oDn0O9SJAICp7++OHPjxE1eewLL2JajdCAeL2aDd4b0Tbqa9kPHlDzSsWCjoJLXWud+jPZBk2ECIin472ghOAsQb6HOpHgEAU9vbHnzjnnsTc57AKvaH+cvg8P/BndlooQWIRal6xLIUI3RUONtq1gTNZYj0FvqA7xpSbYBX8zW8OAQKm7e2PP/DBoRV9DqvSm6s+CBKX400E6yhKZ4JMZnIXzmQZVHdKfF6mdBrnKfAFlZFZbZqGXfQ5NI8AAZPa3uewqvkgoTumXa+n1ba1Fh80SGNdWoxoik6wgx2dDxLakTiZncOSFWey9FdME3OT1PLwEHmZt8qWWABiGfQ52EGAgDld6XNYRxEkNLljOz9pdLMzU5sUFhQcZofw8QaCcPQ7pZ2IP4xuhn896cyIk+ztRoQCRc8f8HjJuSxJNgsgTr/jCiItOo9Fr9vnk5fsGGIp9DnYQoCAGV3tc1jHbJLMbJqMGq63BqNgp+xaou3qozw0TNhtQKW0qP3X0fM8RFS6w6dAkfcsdOtcFl1fhQfCP8qiRNUmAgQaR59DGGq4LqaYaOGjIKHPsc4X15uFfh6NtOWOE+qkxa1Oh+dMlrC0CGSsMsqiz8E2AgQaQ59DdbT4Lu7WaPGjk0yLMGGxb6I4zfUkPX3nsQNNKs5kUV9E1/uN1qHXs/oduBGAMuhziAMBArXxJ0ff9t/v/3DO/Z/OuU2egWrpD/D87oQoSOhj0Ovl4aLOk1C1mMicDwzTM3eaTllYwCz9bmo3gjNZlqc7yGPOd8AS6HOIBwECwfhSJH184oNCERg+4irbosX7Zb0E/aSfhwp34cRUhYukZJW2Fg3FH/9iZ8H54ADEav5MllvDHcqaFtDrXuVKjGdFWfQ5xIcAgZX4sPCJDwn36F9oBy38p9PZ4p8/5MD7OJPlakXN+vF0QukJSqHPIV4ECJTi+xXu+9DwCZOSAHQZZ7K8pZsNxWhloAz6HOJHgMCV/C6DQsMDypAA4H1FkFD53+7GZj5KuQu7EsVo5denx9SrYyn0ObQDAQLvmNtpeEhoAIBytBjSeSz6KMYoty1MKDRot0HBgcZoLIs+h3YhQCDnD3HTTsMXXBEAWF0xilhhQgMItgbD81HKsdHPofHKGmfLIY5YBX0O7USA6Li9/XGx20ATNDBHd5RVlgKsI594dvJ24a0QUZzJUoxQtoLzWBASfQ7tRoDoKB8cHtMMDVxOi6ftAQECYV1cmBdnsChUaFTy7HyWfqWlT7ojfJafvzIbuazHc5am1KQjGJW4jSdv+J1qMQJEx/hSpUfsOACL6YA7oGq6M3vV3f75c1nm//nif0dhY/78lXnzwYCQgKppB0ule+xetR8BoiN8c/RjehyAcqj3RtPmz2VxjgUZ7FIQVnCgz6E7CBAd4MuVnjjnbnX9WgAAgHCKU8fpc+gWAkSL+V0HBYfPa/0pE+eyXqK9df/P/j/vzf79PVl++2L2P9XNNv0RSvXPJf8Y9RKXqVQ98Z8Lff/N9LX9l0rS2b/n3yfljx2uxhY8AFyNPoduI0C01N7++J5z7utamqQVErRYHySzz8sOFUneLvZnAcD/s5tb7E8zl5y9XfDn32ej5Pfrvf0vFF8/898gDyln735tAABwOfoc4AgQ7bS3P37g+x0qLVnKBj40DCocQ6jdBe1gKCz4Bf9KIeUyydzPoK99mrnkJA3/MyBKMc7sB9omc9zcsYI+B8wjQLSMDw//qPKnyrSYH/bCLOKXUSz4q/raw8RlG32XHKfly6dKsDTnHd2U9Rf/DiZzZX5rU+i/8O0SX5YILEunXt8a7nDdGkafAy4iQLRI1eFBi5Bss4HgUCcFia2ec5M035EIQXPdEZ/onrf53qOe7z3qlXuxnv+m+yBR9AjlQfqql0FRutj3u4QLQko29w/515zSh4RyivG0HOrYDPoccBVWNi1RaXjQQmHUq7ZUyRj9vK6XuWQS5rapymGoF43LRi+CBUvPB/tBsnABX/7rvduLdN6HdOZmfUJptl7p4nzZoPOBQqWDZyk7FLiSzq/o9wkQdaLPAdchQLSAPxyumvDQS1y6mZS+k9kmKtVyaRJkJ2LYI0DExnIPRF5GGCo0XEclScNZiV++6g/5LYvSwWE/Dyh5YGdTAhfobyc9SfWgzwFlESAit7c//sBPWwpP4WGr5SVL11CvR3I2XXtRszUY5jWkiIPKlyyWTDTWf1So8Ptm+RS3fh4imIoG1I8+ByyDABG/ag6I0833joeHnO6QbvTWns6kBak+ON04Drsbm6YeZ16mNOrATqBeb+qzOg1XPghgMfocsAoCRMT29scPnXMfV/ETpG1vll6C6sFDXAotSl9MXtf2uLEaTc3aHtgJENpxyMuHOiQvH8zWD+4X9ZPecv8DoMXoc8A6CBCR8qdMP6ri0edv3nXUVsci0LXQovTlyWE+VQR23djYtvHYOji8YF4emqZJ0JHKTPIB6HNAGNyOidfDqg6Ky2us8VbAUZN3Rje4sIbpDvXuxpaJB6gSwq6Gh0JezoTO4yydcNTn8K+j54QHrI0diAj53YeHlTzyXqBTnlskCVgWqkkim/1hXnMKe6wEvHzh3MHJZ+/xY19DNVXr9feKao3ocJbO+uhzQGjc3onTg8p2H9jhf5fm1Aeuw9YilVpse7TzYGFUZLbqGQttFTBIsRCNEyNcV6c+h9+OD9zvxy8JDwiKVUycHlT2qNkqfkcVc+m1Hf/HzZtsyxuiBcqt4Y6JB5QfYohK6DVHiIiLdmyxPPU5aGjHr0djmqRRCd6pIuPLlz7q+nWonHYejqqbR69FjJUFa9fpufjD6KaJq5DvPJAr3xV4Jv32YBT066FaOkMHy6HPAXXgVkx87lX6iLPQR83Gp64TcYtRoYx2bc5sN+iGnd0gSpfelbngIV6vOy2wOCzLPr0uN/sEvrLoc0CdCBAR2dsff+Kc+3+qfMTJ+ocuxytVcMiCjo28DiGiOdp5uDPaNTXaMyM/vCM5zSopIVRZzOHZJOwXRnD6+0ip5/U4zwFNIEBEYG9//IFz7rFz7vPKH23q37C79DfbN0rni5UGFCFCbwDcFa2HwsOfNm+xODEs3wkMPMCgcHO4nd+t5fVml16bZs5kMYrzHNAkAoRhc+Nav6zzUeoOfFemwCQnmUtOqy9Xuo5ChBa1s0kZHDRXJd191iQswoNdKiGsMtBr12lnsJWXMsEmPT+8Rq/2+vSIUjw0igBh1N7++IHfdahkXOtVNH++C+Hh/O5mTWt1bTFfN/1F//c/b91xzycv2YquiBrXrRwUd5kkfMVOXKaZ603qeV0WuxB6bcIW/S3U84P36b1BJa/0OaBpBAhjfJ/D4yYmLXUiPKhc6Tittc/B+a3mMnTHTaU13F0Kq+h3MD/CU7+XXWykbuh1qd8JzcjndWaH/gbqecG7tDP9YvKKm0swgwBhRK19DpfINlp+eFXDfQ7L0l1yjS/UnSbeMNajOupY7mbm5YMGHkdtGn5dFuOUGWJgh54Pzup4S+FWN5N0UwmwhFdpw5rqc3hH4lw2bO+RIFqc5OVKDa7MVulrUJ22diNmo/le0xuxJB0OZ23K0nUy1Xx3ZIiBhdel8/1HRTMqmqXwUAyVAH0OsI0A0aCm+hwuau3hVXk9dTabLNWwdI3Fv5p+/237D+7lyaF7c3bEm8k1FBy066DPMcl3AbtwCnUDr8vrepC046f/DqNdm6MD/iz3J9WJPgfEgADRAN/n8Mg597GFx9O60qXMT3Gp6BTpZWnnIMSiX2U4eoPVXSmN7WNH4l2xBgfJ+h0ID8ZelxfNJnP1KBVpgMKDrn/X0eeAmBAgauT7HBQcvljnu56kp27YC7hI6rUkQGRzZRGGHAW8q6kGQwUJfShEvD497vwUGS0+VPYQY3DIJbMBBq1l4HVZNsDP6u/79ETUSGWGXS9bos8BMSJA1GCuz+FhiHKlk+lZ2ADRAvlY1knz9dSXUVmEypBC05uuPhQg9MbTpYOx+knvvNE8ph6Hy2Qbvdb2PNQ9Lvkyy74m9JrS75TGKVMuWJ3ZtKUblfxtjAl9DogVAaJivs9Buw5/CfWdtFDcGozyRVQQqkXuR7qCmWazw+BqHv9Ylhb3+qjyTXI2onS2/a/fDe14tDFM6Pd9K99tGLVqSot6H1rH0OtSO7bJkglNu1l/3rrtfj9+1fkdviro9fvHzRvRh/910OeA2BEgKlJ1n4MaakPNytZdwiy2ABHJWFaVGNVJQaUIKwoRepNSoIi1X0ILOe22aaehlaMdey2buGTwdanXwCoBXotbhQj9reXE6nBiGqtcBfoc0BYEiMBC9TlcR/Xv+iMcYhcinz0fy+jIop761Ga50jy9Qeh5akoRJlTXrbtcejz6OE2nZu+qFoFh2B/kn1XmYI0WAKF2/zKDP9+q8h0Hg6/Lo7OTtXYA9XdWAVZjXln0rU6v7S6f8UCfA9qGABFI6D6HMnQXQ+cErC2dLcqzoe3FjIV66mVYmiuvu6nbg/47zYqzMHGWL4j1+Syd1rZToUWEwoFCwqDXy/89loWFQqHuomLG8utSv+MhSkT0u6m/tXrutSPBBLTyFLYVwrrcKE2fA9qIABFAFX0OZejNUX+YQszOzhcAvZ7Nka6pGqTt9jlcRm8W1mundUfwsslFetx6o9PC6yydLZR0PvKyP898o3/xfRQWYq97fnM6CRYgoj55OoLXZehzHbQI3uyP8r+7nMmymG4Q7Ay28vcnizuJdaDPAW1GgFiDhfMctFDV4izE3dvkOHVu01CIiKTP4SIttHWXMlZvf5eY9HUZLQa0MFUzdwh5D1JMZ7FE8rqcHQwXvoSwGKXMmSyXIzjQ54BuIECsoK4+hzJ0B0yTQtTsF+KPdR4ihr3Gy5ms1lNfR8/Hb8cHth8k1nZw8jqvqw+yQNJCPJIAcX6eQwSvy6pLCDmT5V268bC7sdnpUiX6HLCGcWwXjwCxhCb6HMrQHVEtWlWjGyRE6O7iWeLSUVL/eNdp5nqTePoc5hXhgbKG9isWCmoKXVdeAqQeJMvjXCN7XRYTyOoyfyaLdqcUKLrwd0DvNwrS2m3oanN0gT4HrOmb2C4gAaKkpvocytIbV8gQofrm3tFsvGu+G1F1kMhmux8x9TnMK8IDM+O7QwsGlQ+GOOMjPwQxMdiDFOHrsigfaYIW0beGgzxYtvVMliI06EyWrh8C5+hzQCA/f/bh97FdSwLENSz0OZQVPET4u6PJUZbPq9eJufkCJ+AaR/XfTlNczuJ9gyU8dJcWqn/euhNmnLKlHqRI+4/k92MbJ0jPn8mivw0aJ6swEePfCQWjIixfNnihi+hzQNcRIK5gqc9hGUWI0CFzQbeU09ld0mQyO/wqP3hOuxO9/JZUua+R+cktU/854tBQ0PVWDwp3n7pp1oP0Mlz5oELEhnb9eo2dy5KPZZ3E13/k8kD32uQCPR9TPBy4m247/53R6dgn07P8czH1zJIYzmNpCn0OqMC3MV5UAsQFVvsclvE2RNyoZotZYSKd1W2fv630EpcteI+JtTRpEdU6q5mWmtduC73zlzcqT6d5iKh1NyLvc8jycB8jhYcmD24sqygBmv/brBsQOuBRoUL/XJzNUvXfFgWFxCV5wFFY2Oj1ox+zXCX6HFCR6MqXHAHiXdb7HJZR3BlVc5tm1ld+BynNojjIOgRdW014iWGxgnqE70HyvQcVlQ6++72y2dSziHcEYwkPV9Givd/vX3rDZz5IXCyXuep8FpXUXQwCRemRfj+73vC8LPocULHoGqgdAWImpj6HZemOif74qamP2tX18UaCq1TRgzRfOpiHiEEyKx9c98tnvlTpNN4dh0Ls4eE684t9/obXiz4H1IQAEZtY+xyWVSxsatuNaCF2HVCGXmu/Ho3dHzdvBL/Lez5wwM31ISUKFL4P6bKXddF3lM3CSP7PCgwtOPdMr8nnk5cs7hCcfrd00njMB4IiGl/9/NmH0Z0B4boaINrQ57CK4tRUhQiFCZRTNMxR94oyinNZbg13g51W/Z6iD8l1p3RwHsMLUBV621CzJ7Fe8M4FiDb1OayiuJOuU1N1gmplC5wW0BuJ7kCxSMGy9DpT6YPOAdAwA3b9wlGg584wQtNOlt4bGceNGn3782cfRlm+5LoUINrc57AKLYq1wNEb8e7G7BRVFjlvt67fnE4IDlib5v7/6+h5dRPROkQLO6tjWhEv9TmMJ6/z1ypQs0cxX/DWB4iu9DmsSotk3XXRXb3N/igPE12c0KFFiXZljqcTtq4RVDERTQ2wChIhDp3rEubuowr0OaBh/4x598G1PUDs7Y8fda3PYVX6Y6r+CH0oQKi0aWswavViR3eeVGKiUiXuaqJqKpH45fB5vtun8kGCxPWYu48q0OeAhh045x7E/iS0MkD4cqUnXe1zWJcW0wcnZ/nORNvCBKEBTSuCOkHiclrUqZyE/iOERp8DjHgQ6+Slea0LEHv748fOub8aeCitMB8mdDDR1mCYl2IMextR9ExoMXKSnuZvHEdnJyxIYMZ8kOhq6eA8hXtdDyaeITT6HGDI337+7MOv2/CEtOYda29/fM/vOnxk4OG0khbfenMvapEVKBQmNnr9fPGjjyZDhRYdCjyzj2keGggMsG6+dFDjldVs3aWBBlrUKdxzxgpCo88BxujMh6gbp+e1IkDs7Y/v+/BAr0ONtDg/PHt3ga6Fz3yY0OfEJW7Q6wcp1dCdpLN06jI3CwvzoYG7lojZbMrQq/wn0K6EdvvaOrlJP6vKCNkVRFXoc4AxCg/R9z3Miz5A+HMd/mHgocDf8dGd/+tOh9XORVmcNIuuKXYlFMJVLqgeJL1mYu6X0E4DpYSoGn0OMKh14cHFHiAID/EiFADXKxqKi9pt7egpSMxKBwdmA0WxM1j0H/F6R9Xoc4BRrQwPLuYAQXgA0DVFuV7Rh1SUCc4HirqbsYuyQoWFszQ9f4xAHehzgGH/+efPPnzS1icoygBBeACAq0sGNeBg0Ovl/UfD/uzPfNGPVLhu6MHFr6mA4OZ2F4rPQFPoc4BRPznn7v/82Yfft/kJii5A+GlLjw08FAAwST0G0+msz4CSDrQNfQ4w7O/OuUdtOOfhOlEFiL398W3n3NdMW0JsaBoFgPXQ5wDDfvIHxH3TlScpth2IR5wujRjxhgcAq6HPAYYd+B2HzlXGRBMg9vbHn3DCNGJV1It3/bRhAFgGfQ4wrDPlSpeJaTXTmtP70E3afi9/+gUAdBd9DjDsW+fcw7Y3SV8nigDhdx8+NvBQIoVjnwAAIABJREFUgJWdTM9ae7IwYNmsB4n4HgP6HGDYTz44qBe382LZgWD3AQCwEp1+vT3Y5OIZRp8DDFOfw+OfP/uQtegc8wFib3/8AbsPAIBVUQZjG30OMOwrv+vQyT6HRWLYgbhv4DGYMn8YFABgMZXFwB76HGAYfQ7XIEBESJN8qA8FgPKYgmYHfQ4wjD6HkmL4a0r50gW9hB2IGA37kS5eEueyXuJcT/88+5wt+BVMVIVQ3PCdZi5RWcIyN4B7xfdL/Pe+5HsU5/Kt8vXRSZTHNK/oc3h9esTzAWvoc1iS6RXN3v74noGHYQ530eK00evH8bi1aB8kzvUTl/Vni/hlZBe+WP7veajI8oV/cpbl/zwv/36D8t8vO7+Ub79+Ms2cO8tmXx+AKepzUIM0p/LDIPocVmB9JXrbwGMwZ9RnHGFs+knP9RPDAWI+NAwq2OFKnA8kzmXDZLbg10Jf/39j+ZBy2dc/DyH62ifp+dcH0Bz1Obw6Pcw/A8bQ57AG6wHiEwOPwSSdJ0D9aDzMhj6VC230ZovvOivjEh8cqvrao57Lhs4lkzT4joR2AGn6jA87t/VSn4N2HA7Pjrv0YyMO9DkEwF/USG0NCBAxMTeDPvHBIcTdf6v0M272nDvN8iARCj1I8dFzxvNWD/ocYBh9DgERICKlBemsnpTuUetUvmRpB0J9BvnCuiPrqVlI6rnkOMxrZdjboBwjMuw+1IM+BxhGn0Ng/FWN2M3htnsxed31y2CenicrsmFv1oPQMXmJ1qgXZCdCu3+q6UY8VPKJ6tDnAMPoc6iI6QAxzdJfdfcWl2MXwj7d+bRSvqRdh0oapCOR70ScJbNpTWvQc6q/S7zu4qHQh/Doc4Bh9DlUzHSAODqbDHc3tgw8Ertuj3bd78cvu34ZzLo13DHx0PKm4g6Hh4J2X5Kj9euyFQrZhYjDLPBFMkI5EvQ5wDD6HGpi+vb+0dnkmYGHYZq25rcHo65fBpMUfi30Pig4VDbxKDb9JMhfvZ0NXnOx2N0wNsAgcupz+PVonO88EB5gjPocPiA81MP0DsRJevZaW6SUMS12a7jrTtMpoyUN0V1PE7sPfqQp3sqSpDh+bmW6o63grsUU7NJ7h7kJaJGizwGG0efQAPNN1PpjxR32xTSe8M5o1/12fMAdIQP0fPxx84aJx1L7+Q4RSAK9RBTcNUqZ15xdd0Y2Xocxo88BhtHn0CDzAeLobEKAKEF3vP+0eYsQ0TCFBz0PVmquKV26IMsLuIN8KT3XNza23cHJm4APEKGovJNT+1dHnwMMo8/BAPMB4iQ9zf94cQjQ9QgRzSrCg6mZ8z1eN/OS07CvC/W5aBeCsg5bZruy7D6sivMcYBjnORhhPkBoIaw3aHYhyiFENMNieNCBcZgzzVxyEn706h9GN92vRy8Y62qInhNuOi2PPgcYRp+DMVEcJKctVAJEeUWI0HhXFjXV0/VWDwqn3dqVnGVBDpG7zKzn5Sah3Qi9FildWg59DjCMPgejoljxaLqQ7ojwplCeFrN/3rrjnk9ecjepQqqzVqmExbudSZatOWuoBTKX7zqELl26iJ0/GzT5jKlL5dHnAMPoczAumvmOHNq0vKKsxsphZm2j66o7z2ZLJVLfNNxRCg29w2nl4aFQhAhKZ5qhhnYOHi2P8xxgmPoc7hEebIum5kJ30Q+ZyLSS4kCzF5PXnBURQEwlS8k0694J1NPM9SZZsGlLy2Anohl6PbLzUA59DjBMfQ6Pfv7sw294kuyLqmj74OR1XjLCHb7lzUqabudb1XrzYHGzvGJsZ0x3OZOTDgUIlStN0rzfoUnFa+3341cE9ooV05b0voDF6HOAYT/54PCEJykeUQUILXo1c113m7AaLX51p05hjFN0y9N1U3iIKrz2EpdudeAU6mxWrlTFhKXLlBkrrXNAtBPB66w6DC8ohz4HGJb3OfheB8ayRia6v7y6e7I1GHLHaQ3FXbubw21/R4oFzlVUMqfrZOVguNKK8NDyzYfz6Uo1ros0G7+XXP+ns3idbQ1G7sXkFYu3gKIM9A3gPAcY9pXfdfiRJylOUd660ZuxuQO7IqRF8XyQ0HkbLHJmCz8F1CiDgySu/eEhP9Mhy3s8rNPvkkqaxpM3+WsMq+snvfxvFhP5FlPpnHbr6XOAQfQ5tESUK3AtctUQzMSTMIogoeuqHR5tdXfx/AgtTooSr5h/r7JRi8NDTWNZFz+E5b+3XmOa2KUAMZ685nyWJen1uDPYykM9rlaU+dLnAIPoc2iZaG/h6w6LzjhQiEAYepPWAlofur4KEm3flSh2G/Qzt2JHK3GtbZrOdxxO6y1XusxZmrrhiq0l+l37t+0/MMxgCdGWEdZMv0/0OcAg+hxaKuoVk7ZntRNBU3V4swbFG/nXVYg4Opvk17sNd06106ASCNWmN91Lk2ap6yXhGp3bGB7yPgc1SBv51ZtNVlpvnHSx06UFnxpcWfS9j+BQzmxX6w19DrCIPocWi/6Wa7FVS4iojhbZxUK7OBVcHyfpaRQLH+0yDHsbeWjQh6WdhtlEn4BfsE0lfakapG31Oej5CjWaVb+XWiDrQ3/HZs2u3S5tKkqVdjZGBIdr0OcAw+hz6IBWdCETIuqjxbc+irMQ9CY2+5ieh4umFSFho9c/f7xWacE4cCyU3mGgz+EqVTVBazdCH7MDM487NxlNr1ntOHAY3PXoc4Bh9Dl0SGvGGOmPqcpBVHZDY3V9LlugaytddeJFmNBOhfNhI8SOhZ7f4ntqZ8H5Bcig14vyriUnrL91fp6D0Y0tlRxV+fel2CW7Ndx1x9OJOzo7ae3kJr2G9XuvsdzsNpRDnwOMos+hg1o1B1VvtL8dHzCdqWFaDPT7/YWjFpcNE/OhoW1UuhIqQKhfIBtG+Ls/zVxvYqfP4TIKxPq9rWOEqH7fi10JvU4UJvT9Yx9qoGunckhCw3Loc4Bh9Dl0VOtWZHqD/9fRc86JMI7n5i0tCoLtQqTZ7CNoY0WFVK50nEZxnoPu/jZhPky4yPqQFBi0SzjsDzj8cwX0OcAw+hw6rpWrOL2h/no0dreGO+e1+oBl2oXQAivEzpkaj7Mt4wHCcJ/DZQ79FDILLvYhKYCqB+lkenYeKEI1epdV7BDG0ntkHX0OMIw+B+Ra/Re+uHNDXwSs0yJQd7gVeteV380/sVvKlI9lndjtc7hotph7betBzSlKBi/e4S/KBIvP+n/zweIsnV479eli6aBGIBelR0UpF6dCh0WfA4yizwHvaP0tItWOqqTpD6ObvNHBNC0aihrxdeWNyL2erXMh8j4HX2IVER1YGeNirlj483cvDvQ5wDD6HPCeTuwx681fzdWqIdYdXnYjYNWLyatg/TvqLXAbictG4Q6qW4nKlSZpvvMQG+rPUTX6HGAYfQ64UqeKVFVPqmkmGpHI2ExYVITdP2/dyctF1pWPRZ2mLh0lqj+p9yfO5sayRkh9D9oVAqpAnwMMo88B1+pcl5v+aOsur/5o39jYZnsf5uh39Pfjl+HGEaeZ6x1lLusns76IGoJE3udwYnss6yIKD/o7AVSBPgcYRZ8DSuvsmIzZGMRZWdPN4XaQu71AKCpr0E6ETlcPNc1GzdXJ0WzEa6bSJvVHhMwSmf8eEQcHR3hAhehzgGH0OWApnZ+zV5Q1aSSidiQAK4oQEfxMkzTLR70mEzcLE4PEZf3ZPy8dKBQYpsXn+O+mqqSEsiWERp8DDKPPASvpfIBwvmREc/jfnE7c7dEOBx7BjOJME40irqRvR2HiJHubG3rOZSqb0obcZeVTKrlInUv857YoSht1hxgI9/KizwFmqVzpIX0OWBUBYo62lVV7rr4ITWviICRYocWt7l5WPkVM4UC1SHmFRTfqs3V3+PfjV5SVICj6HGDY3+hzwLpYIV9CCzXd9WXsKyzRXczZwYi7NP8HokWedh+BUOhzgGH/9LsO9DlgbQSIBYr+CPVGqEcCaJoWJZxpsj4FsReT1yzyEAx9DjDsBx8c6HNAMASIaxQ1rK9Pj7nzCzNo/l/NNEvdePKaXgcEQ58DDKPPAZUhQJRU3PlVgFBDK2Nf0bT55n+NIuZwxKspOOhaschDSPQ5wDD6HFApAsSStD39y+Hz8zu/lJCgaQq3arLWAnl3YzMvb+L3cobggCpQAgfD6HNALQgQK9JdJy1Kbg13ufMLE7SYUSmF7ooqRCjkdnWnTCVKb06PKVVCUAqkxUQ0wBj6HFArAsQaitnxChNqaKU/Ahbo91K/k/rQ76TChM42afuuhBZ3+pmPzk64M4yg9JoqypUAY+hzQCMIEAEUJwZrkXZ7tEt/BMzQndLibql+P7cGo1aFCb329PMdnk3yfwZCU2hQeKDPAQbR54DGECACUrmE+iPU0Loz2KIOHabo97Mo6dEhiVuDoRv2NqLaOdMi7iQ9zXcZFBzYaUBV6HOAYfQ5oHEEiAowGQfW6W796cnbO/YKEQoVxWcru2haxOWPNZ0SGFAL+hxgGH0OMIMAUZFiMo4arTWtif4IWFaUOs3XeOt3tp/03aDXy0NF4pL8c+idNQUE7Sxo4abXzcn0LP9nSpJQJ/ocYBh9DjCHAFGx2cKMk4MRn9kd2Kvvwl4MxYtC8lmavrN7oMUaAQFW0OcAw+hzgEkEiJpwcjDa5mKJByUfiA19DjCMPgeYRoCo0fzJwbdHO/k0HABAvehzgGH0OSAKBIgG6G7X78cv85IPlTWprhwAUC36HGAYfQ6ICivXBunu169H4/OyJvojAKAa9DnAMPocEB0ChAF6YyumNSlMALDrLKVePib0OcAw+hwQLQKEEbordnDyxr0+PXZ3RruMfQWMKkbMUnpoG30OMIw+B0SPd0BjdJfst+ODPEDcGd0wc6AXgLe0KCVA2ESfAwyjzwGtwTugUVqg/HL4PD/NemewRX8EYAhnWNhEnwMMo88BrUKAME5jX/WmeGu467YHo65fDsAElcfADvocYBh9DmglAkQEdDdNtbyzILFDfwTQMO5w20CfAwz7yTn3gD4HtBUBIiIqm1B/xPZgMy9toj8CaAYlTM2izwGGqc/h0c+fffiYJwltRoCIkEa+Hk8n+chX+iOA+hHem0OfAwz7uw8P9Dmg9QgQkdKbp/oj3pxO8t0I+iOA+gx6fa52zehzgGHf+nIl+hzQGQSIyOnNVDXA2pVQfwSjJeMy6HEnG1iEPgcYRp8DOovVZkvozfXXo3HeH6EgQVlTHPpJP3+uKMeIy7DHIIOq0ecAw+hzQOcRIFpmvj/ixsZ21y9HFLQYPZ6edP0yRIVJaNU6PJu4g5PXBGtYRJ8DOs8RINppvj/i9mjHbfaHXb8kpm0NhgSIiGjHiABRDe2kHpy8YcoVLKLPAZhDgGgx9Uf8fvwyX+zcGd1gcoxRm301wL/u+mWIBoE8PPU5jCevCdKwiD4H4BIEiA7QXb1fDp+flzXRH2GLng9N0VLZBuxTnxHC0G7pm7OjfMcUMIY+B2ABAkSHqBlRPRIKEQoTsEPPBwHCPu3mUb4UBn0OMIw+B+AaBIiO0Zu1aoxfnx67O6NdFkNGaPwuuxD2MZhgffQ5wDD6HICSCBAdpf6I344P8nru26Nd+iMM0IGAqgHnjqxNeq0QuFdHnwMMo88BWBIBouP0Zq7+CC1edwZb9Ec0SGdC6A637s7CFr0uNIgAy6PPAYbR5wCsiACBnN7c1SNxa7ibl9KgGeqFUIkHd2ltUXggXC+PPgcYRp8DsAYCBM7pTf7F5NV5ozXlGs3QYlXlZdSI26DXAqNbl0OfAwyjzwEIgACB9+jNfzI9yMdVqrSJ/oh66U73nzZvuX8dPefObcO0G6fXAMqhzwGG0ecABESAwJW0E3E8neRlNfRH1KsIEdqJIEQ0Q+GBvody6HOAYfQ5ABXg1jIW0sJAi4Jfj8bcVayZRrsqRLADVD/CQ3nqc9BuGeEBBqnP4QPCAxAeOxAoRWNffz9+mfdF3Bru5ItbVE/X+c9bd+iJqJF6Hihbuh59DjCMPgegYqwCsRQtGrQbof4IBQnKmqpXlDNpmg0HzVVH11m/0/rdxtXoc4Bh9DkANSFAYCXz/RGczlu94hwC7QDpri99EWFpp0cns7OzdjX6HGAYfQ5AzXi3xMqK/og3p5N88cXY1+rp7riu84vJ63w3COujZOl6nOcAwzjPAWgAAQJrU3+EavS1sNVdcpp+q6UTq1XSpIP/Xp0esqhbEf0816PPAYapz+Hhz599+D1PElA/3jkRjBYbvxw+Py9roj+iWrrO2pFQiFCYQDkKuNpxoNfhavQ5wLCffHD4micJaA4BAsFpMVucZq1FLqpTNP7ubmzm5WQ0WV9N10rnmeh3knB7OfocYJj6HB7//NmHj3iSgOYRIFAJLURU+qAFrRa49EdUS2VNKh/TnXWCxLu041Ds1hAcrkafAwz7yu860OcAGEGAQKVUO63+iM3+0N0e7dIfUbEiSNwa7p7vBKkcpYsUWnUgHKVKi9HnAMPocwCMIkCgFqqlVn+E7pCrjIQ7wdXS9dW11oeu/dHZJP/c9rvLCqhbg1Fe0qUwhavR5wDD6HMAjCNAoFbF2NdZE+uIi18D7f7ow/kg17YwUYQG/T4xUel6RZ+DdqgoV4Ix9DkAkeDdFrXT2NcXk1fnjdb0R9RnPkyodEUfChMxla9od2XY28h/b7YGQ3YalqA+B4V4vQYBY+hzACJCgEBjZgvYg7xGXTsS9EfUSwtwfdx0s0PUikChMKEPK70T2lXY6PXzz3q87DIsT8+rxv1y+CAMos8BiJD1d+J7Bh4DKqadiOPp5Pz8CDSjCBQFlbcUYUL/fJLOFp9VLEK1q6BgkLjZ50Gvl+8ssDu1HoXA2VSu45h/DLQTfQ5AxKwHiE8MPAbUQAvUoj/i9mjnvMwGzdGi/mKomKcymLP07S5FETQWKYJBQWGBhvrw6HOAYfQ5AC1AgIApWpT+fvwyX7Tq/AjKVexSEOj334YBdgtsoM8BhtHnALREkhm9O3X36TOVL/27gYeCBqk/QkGCu9TAYvQ5wDD6HICWsXx797aBx4CGFf0R6o1QjwSAd9HnAMPocwBaynKAoHwJOdVw66Tc16fH7s5ol1IZgD4H2EafA9ByFJgjGqrp/u34IA8Qd0Y3GPuKzqLPAYbR5wB0AAEC0VGN9y+Hz8/HvtIfga6gzwGG0ecAdAgBAtFS6Ybqvm8Nd932YMQTidaizwGG0ecAdJDlAMH2J66l2u8Xk1d5mNC0Jvoj0Cb0OcAw+hyADrMcINgGRWk6xEz9ETqA7vZol/4IRI8+BxhGnwPQcZYDxI8GHgMiczw9cb8evcj7I3YGW/RHIDr0OcAw+hwA5MweJOdmh8np7sYtAw8FEdJJyTeH2/RHIAr0OcAw+hwAvMN6E/U3zrnPDTwOREilH+qP0IJM05roj4BF9DnAMPocAFzKeqE4dzuwNpWCqD/ixeQ1CzSYoj6HX4/G+c4Dv5swRn0O9wgPAC4Tww4EEIR2Io6nk/PzI4Cm0OcAw9Tn8Ojnzz7k/RfAlUz3QLhZH8TXlDEhNPVH3B7t5FObgLrQ5wDDfvLB4QlPEoDrxDDrkj9mCE79Eb8fv8xLmzQCFqiSypO046AJYYQHGKM+h7/5ciXebwGUYn4Hws12ITTS9S8GHgpaqihrYuwrQuM8Bxj2ld91YGw6gKVY74EoqInrHzYeCtpIE3CKaU0KE8C6tLN1cPKGPgdYRJ8DgLVEsQPhZrsQ+kP3sYGHgpZTf8Sd0S5jX7ESlSspOFCqBIPocwAQRCw7EPLQOffvBh4HWk6lJuqNUIP17dGu6ycxtArBAvU5cJ4DDMrPc/BnOox5ggCsK5odCDfbhVAp05cGHgo6RKdZ7wy26I/AlY6nJ248eUOfAyyizwFAcFEFCDcLEd875z4y8FDQIQoPt4a7bnsw4mnHOfocYBh9DgAqE1MJU+GBP2Dulo2Hgy5QScqLyau8POXWcIf+iI6jzwGG0ecAoHLR7UC42S7EfefcfzXwUNBR24PNvLSJ/ojuoc8BRtHnAKA2UQYINwsRDxjtiiaprEkjX+mP6Ab6HGAYfQ4AahVtgHCzEKEt2i8MPBR0mMa+ajeC/oh2os8BhtHnAKARUQcIR4iAIeqLUH/ERi/G1iJcRJ8DDKPPAUCjog8QjhABY9QfoSBBWVO86HOAUfQ5ADChFQHCcUYEjCn6I25sbPPURIQ+BxhGnwMAM1oTIByN1TBI/RG3Rzv5qdawiz4HGEafAwBzWhUg3CxE3OOcCFij/og7oxuMfTWGPgcYRp8DALNaFyDcLER84Jz7mhOrYQ39EXbQ5wCj6HMAYF4rA0Th7tNn+iP8VxuPBpjh/Ihm0ecAw+hzABCFVgcINwsRnzjntAX8FwMPBzhHkKgXfQ4wjD4HAFFpfYBwsxBxW3+c2Y2ARQoPm/1RfhgdPRLh0ecAw+hzABClTgSIgt+NeExvBKzStKadjU2mNgWg4PDm7Ig+B1j1N/ocAMSqUwGicPfps4d+R4JJTTBJ4193NkZ50zW7EsshOMC4fzrnHtLnACBmnQwQjrImREQjYBUktCtBr8TVplmahwaVKhEcYNAPPjjQ5wAgep0NEAU/8lX1px/beETA1RQitgYjwsScw7NJHhpojoZRBz440OcAoDU6HyAKTGtCbDZ6A7c9GOU7FPrnLtEo1qOzE3c8nbDbAMvocwDQSgSIC+4+faaypof0RyAm2o0Y9jbyMNHGQKHyJO0wHJ1N3El6SmiAdfQ5AGg1AsQlfH+EpjV9Ye7BASUoUChEFGFCHzE1Y+vMhtN0mocGfXDoGyJBnwOATiBALHD36bN7PkjQH4HoFaGiCBP6POj1Gw0W2kmYhYWzfJdBn+llQITocwDQKQSIEu4+fXbfBwn6I9BKGhs76PVc4hI37M/Kn/SfzYeLZcKGwsBZ+nbXQMEgc9l5YBCCAlqCPgcAnUOAKMmXNT2kPwIAQJ8DgC4jQCzJj319RH8EAHQSfQ4AOo8AsSI/9lVlTR9F+QMAAJZBnwMAeASINd19+uyBDxKUNQFAO9HnAABzCBABzPVHfBn9DwMAKNDnAACXIEAE5PsjtBvxeWt+KADoHvocAGABAkQFfH/EE8a+AkBU6HMAgBIIEBW6+/TZQz+xif4IALCNPgcAKIkAUTHfH6EQ8ddW/6AAECf6HABgSQSImvj+CG2Lf9yJHxgAbKPPAQBWRICo2d2nz+77Rmv6IwCgfvQ5AMCaCBANufv02SM/+pX+CACoB30OABAAAaJBvj9CuxFfdPYiAED16HMAgIAIEAbcffrsng8S9EcAQDj0OQBABQgQhtx9+uyBn9hEfwQArE59Do9+/uzDx1xDAAiPAGGML2t6SH8EAKzk7z480OcAABUhQBjlx77q7tnnXb8WAFDCt865B/Q5AED1CBDG3X367BMfJD7q+rUAgEv85IMDfQ4AUBMCRCR8f8RjypoAIEefAwA0pMeFj4M/9OgDP8ccALpMfQ4fEB4AoBnsQETI90c8YewrgI6hzwEADCBARMz3Rzxh7CuAlqPPAQAMIUC0wN2nzx768yPojwDQJvQ5AIBB9EC0gH9z/cDXBQNAG9DnAABGsQPRMnefPrvnpzXRHwEgRvQ5AIBxBIiWuvv02X0fJOiPABAD+hwAIBIEiJa7+/SZeiMe0h8BwCj6HAAgMgSIDrj79NltvxvxRdevBQBT/u7Dw5inBQDiQYDoED/29RH9EQAaRp8DAESMANFBd58+e+CDBP0RAOpEnwMAtAABoqN8WZN6I77s+rUAUDn6HACgRQgQHXf36bMPfH/E512/FgAqQZ8DALQMAQI53x+hIPERVwRAAPQ5AEBLESDwDt8f8ZixrwBWRJ8DALQcAQLv8f0RarL+K1cHQEn0OQBARxAgcCXfH/GEsa8ArkGfAwB0CAEC1/L9EU8Y+wrgAvocAKCDCBAo7e7TZw99aRP9EUC3qc/h4c+fffh11y8EAHQRAQJL8f0RqnH+gisHdI76HB7//NmHj3jqAaC7CBBYyd2nz+75IEF/BNANX/ldB/ocAKDjCBBYy92nz+77IEF/BNBO3/rg8D3PLwDAESAQyt2nz1TS8JD+CKA16HMAAFyKAIFg/NjXR/RHAFGjzwEAsBABAsH5sa+P6I8AokOfAwDgWgQIVObu02cPfH8EZU2AbfQ5AABKI0CgUn7sq3ojvuRKA+bQ5wAAWBoBArXw/RHajficKw40jj4HAMDKCBCole+PUJD4iCsPNII+BwDAWggQaMTdp88e+kZr+iOAetDnAAAIggCBxvj+CIWIv/IsAJWhzwEAEBQBAo3z/RFPGPsKBEWfAwCgEgQImOH7IxQk/sKzAqyFPgcAQGUIEDDn7tNnj/zoV/ojgOXQ5wAAqBwBAib5/ghNa/qCZwi4Fn0OAIDaECBg2t2nz+75IEF/BPA++hwAALUjQCAKd58+e+AnNtEfAczQ5wAAaAQBAtHwZU0P6Y9Ax9HnAABoFAEC0fFjXx/RH4GOoc8BAGACAQLR8mNf1R/xEc8iWow+BwCAKQQIRM/3RzymrAktRJ8DAMAcAgRaYa4/4kueUbSA+hwe/fzZh9/wZAIArCFAoFV8f4R2Iz7nmUWEfvLB4QlPHgDAKgIEWsn3Rzxh7CsiceCD72PKlQAA1hEg0Gp3nz576Cc20R8Bq77yuw4/8gwBAGJAgEDr+f4IhYi/8mzDEPocAABRIkCgM3x/hMqaPuZZR4PocwAARI0Agc65+/TZfV9vTn8E6kSfAwCgFQgQ6Ky7T5898qNf6Y9A1ehzAAC0BgECneb7I3RX+IuuXwtUgj4HAEDrECCAt2NfH9EfgUDocwAAtBYBAphz9+mzBz5I0B+BVdDnAABoPQIEcIEva3pIfwSWRJ8DAKATCBDAFfzYV91N/pxrhAXocwAAdAoBAriG749QkPj92xPMAAADC0lEQVSIa4U59DkAADqJAAGU5PsjHlPW1Hn0OQAAOo0AASxhrj/iS65bJ9HnAADoPAIEsALfH/GEsa+dQZ8DAAAeAQJYg++PeMLY19aizwEAgAsIEEAAd58+e+jPj6A/oh3ocwAA4AoECCAQ3x+hEPFXrmnU6HMAAGABAgQQ2N2nz+75u9f0R8SFPgcAAEogQAAVufv02X0fJOiPsI0+BwAAlkCAACp29+mzR370K/0R9vyNPgcAAJZDgABq4PsjtBvxBdfbhH8q1NHnAADA8ggQQI38+RGPCBKN+cEHB/ocAABYEQECaABBonYHPjjQ5wAAwJoIEECDCBK1oM8BAICACBCAAb5HQo3WD5jaFAznOQAAUAECBGCMH/+qIPE5z81KCA4AAFSIAAEY5cubijDxEc/TQupxeOJLlQgOAABUiAABRIAwcaUf/Hjcr+lxwP/f3r2cNgyEURgd0kA6CF6oAHUQF6BitUgBdgcqwCtVkBLCwCwGguFCINbjHBg8G4Msrz5+PQD4HwICdqaLietJL3Oqb46eTRsA4DUEBOzcx9fj2mKirs+D/p/3Fg2zaACA1xIQcDAtKMYWFONOn+pUg6G+7G1Zp2HewPEAAI2AgINrj4gd27p0+/cN/PJ68/PSr3Ualg0cFwDwhICAE2vTitKmFaUFxqXb/3V6ce/2t/ZZA+F7nYbbk+8AABsmIIBYN834RRAAwDkICAAAIPbmVAEAACkBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAEBMQAAAADEBAQAAxAQEAAAQExAAAECmlPIDmb9AJu2dyFAAAAAASUVORK5CYII=\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"59862206-fc69-4291-9db8-31d9511d650c\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b7380b49-0878-419a-88dc-bf0bed72d977\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b7380b49-0878-419a-88dc-bf0bed72d977\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"3fd3d15b-5514-4a0f-aab5-2614fa30dcac\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:50.778211003Z\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"11d588ca-efc7-4b4e-b04c-0f927aa412db\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/3fd3d15b-5514-4a0f-aab5-2614fa30dcac\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/3fd3d15b-5514-4a0f-aab5-2614fa30dcac/purge\"\n }\n }\n}", "code" : 201 - } ] - }, { - "id" : "meshBuildingBlockPostV2", - "name" : "/api/meshobjects/meshbuildingblocks", - "description" : "Create a new meshBuildingBlock with specified inputs, parent relationships, and target configuration\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblocks", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"b205ad0c-6740-4b06-b6cc-647e54914e96\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"e7b0e5ad-0ad7-4b8a-aec0-3f57d7ffa91c\"\n }]\n }\n} ", - "urlencoded" : [ ] - } - }, - "response" : [ { + }, { "id" : "meshBuildingBlockPostV2", "name" : "meshBuildingBlockPostV2", "originalRequest" : { @@ -641,7 +677,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"b205ad0c-6740-4b06-b6cc-647e54914e96\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"e7b0e5ad-0ad7-4b8a-aec0-3f57d7ffa91c\"\n }]\n }\n} ", + "raw" : "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"6b78e4b1-2c9d-48f5-9304-d0cd2f702b59\"\n }]\n }\n} ", "urlencoded" : [ ] } }, @@ -651,43 +687,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"63d87d66-1991-4976-b0b8-6002ec651544\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.955713604Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"e7b0e5ad-0ad7-4b8a-aec0-3f57d7ffa91c\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/63d87d66-1991-4976-b0b8-6002ec651544\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/63d87d66-1991-4976-b0b8-6002ec651544/purge\"\n }\n }\n}", - "code" : 201 - }, { - "id" : "meshBuildingBlockPost", - "name" : "meshBuildingBlockPost", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblocks", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1\",\n \"kind\" : \"meshBuildingBlock\",\n \"metadata\" : {\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"dff6f800-abea-40ee-9783-976918e6090d\"\n }]\n }\n} ", - "urlencoded" : [ ] - } - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"12dbd12d-eda4-4a55-8000-36f500ea9295\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:30.378030123Z\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"dff6f800-abea-40ee-9783-976918e6090d\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/12dbd12d-eda4-4a55-8000-36f500ea9295\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/12dbd12d-eda4-4a55-8000-36f500ea9295/purge\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5629debb-176c-4e15-9f92-e2f7f8886d6e\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:53.441602337Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"6b78e4b1-2c9d-48f5-9304-d0cd2f702b59\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5629debb-176c-4e15-9f92-e2f7f8886d6e\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5629debb-176c-4e15-9f92-e2f7f8886d6e/purge\"\n }\n }\n}", "code" : 201 } ] }, { @@ -837,7 +837,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.076297498Z\"\n },\n \"spec\" : {\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.096812698Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.070856495Z\"\n },\n \"spec\" : {\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.091152405Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 }, { "id" : "meshBuildingBlockListV2", @@ -916,81 +916,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.007073002Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"a2d98a3e-0acb-4b9d-ba85-b110d058ecfd\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.017007172Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.517761Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"68b6df08-3a6c-443d-a39e-1d065bb13b5f\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.528351150Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { - "id" : "meshCommunicationDefinitionPost", + "id" : "meshCommunicationDefinitionList", "name" : "/api/meshobjects/meshcommunicationdefinitions", - "description" : "Create a new meshCommunicationDefinition with the specified communication details.\nA meshCommunication is attached to a meshCommunicationDefinition, therefore,\na meshCommunicationDefinition must exist before you can create a meshCommunication.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshcommunicationdefinitions", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." - }, { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshCommunicationDefinition\",\n \"spec\": {\n \"communication\": {\n \"title\": \"Important Update\",\n \"message\": \"This is a test communication.\",\n \"type\": \"ACTION_REQUIRED\",\n \"dueDate\": \"2099-04-30\"\n }\n }\n}", - "urlencoded" : [ ] - } - }, - "response" : [ { - "id" : "meshCommunicationDefinitionPost", - "name" : "meshCommunicationDefinitionPost", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshcommunicationdefinitions", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." - }, { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshCommunicationDefinition\",\n \"spec\": {\n \"communication\": {\n \"title\": \"Important Update\",\n \"message\": \"This is a test communication.\",\n \"type\": \"ACTION_REQUIRED\",\n \"dueDate\": \"2099-04-30\"\n }\n }\n}", - "urlencoded" : [ ] - } - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"3c72812e-455d-4d3b-a0c7-925287dfccab\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Important Update\",\n \"message\" : \"This is a test communication.\",\n \"dueDate\" : \"2099-04-30\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/3c72812e-455d-4d3b-a0c7-925287dfccab\"\n }\n }\n}", - "code" : 201 - } ] - }, { - "id" : "meshCommunicationDefinitionList", - "name" : "/api/meshobjects/meshcommunicationdefinitions", - "description" : "List all meshCommunicationDefinitions with optional filtering and pagination support.\n\n**Note**: the meshCommunication endpoint is still in preview mode, which means it is subject to change\nand we are planning to introduce a new version without support for backwards compatibility, meaning,\nthe preview version will disappear without prior warning! If this is not acceptable, please wait until\nthe final meshCommunication endpoints are announced in the release notes. These endpoints will be\nreleased in the next few weeks. From then on, we will provide backwards-compatible communication\nendpoints, meaning, once new versions are introduced, you can continue to use older versions\nby setting the correct Accept header.\n\nThe meshCommunication endpoints are only available if the developer portal module is activated\nin your meshStack. If you would like to enable this feature, please contact us at support@meshcloud.io\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "List all meshCommunicationDefinitions with optional filtering and pagination support.\n\n**Note**: the meshCommunication endpoint is still in preview mode, which means it is subject to change\nand we are planning to introduce a new version without support for backwards compatibility, meaning,\nthe preview version will disappear without prior warning! If this is not acceptable, please wait until\nthe final meshCommunication endpoints are announced in the release notes. These endpoints will be\nreleased in the next few weeks. From then on, we will provide backwards-compatible communication\nendpoints, meaning, once new versions are introduced, you can continue to use older versions\nby setting the correct Accept header.\n\nThe meshCommunication endpoints are only available if the developer portal module is activated\nin your meshStack. If you would like to enable this feature, please contact us at support@meshcloud.io\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -1054,7 +986,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-04\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"49572687-98d7-4989-9d52-b396898de316\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-05\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/49572687-98d7-4989-9d52-b396898de316\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-06\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 5,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-10\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-11\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0c49a952-fd55-4893-aa55-19918203c085\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-12\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/0c49a952-fd55-4893-aa55-19918203c085\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 5,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 }, { "id" : "meshCommunicationDefinitionListFilteredByType", @@ -1085,98 +1017,76 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"49572687-98d7-4989-9d52-b396898de316\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-05\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/49572687-98d7-4989-9d52-b396898de316\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-06\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-11\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0c49a952-fd55-4893-aa55-19918203c085\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-12\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/0c49a952-fd55-4893-aa55-19918203c085\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { - "id" : "meshCommunicationList", - "name" : "/api/meshobjects/meshcommunications", - "description" : "List all meshCommunications with optional filtering by definition, status, and type\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshCommunicationDefinitionPost", + "name" : "/api/meshobjects/meshcommunicationdefinitions", + "description" : "Create a new meshCommunicationDefinition with the specified communication details.\nA meshCommunication is attached to a meshCommunicationDefinition, therefore,\na meshCommunicationDefinition must exist before you can create a meshCommunication.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshcommunications", - "port" : "8080", - "query" : [ { - "key" : "communicationDefinitionUuid", - "disabled" : false, - "description" : "Filter for communications that belong to the definition with the given uuid." - }, { - "key" : "resolutionStatus", - "disabled" : false, - "description" : "Filter for communications with the given resolution status (OPEN, RESOLVED)." - }, { - "key" : "communicationType", - "disabled" : false, - "description" : "Filter for communications where the associated definition has the given communication type (ACTION_REQUIRED, NOTIFICATION)." - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } ] + "path" : "/api/meshobjects/meshcommunicationdefinitions", + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", "disabled" : false, - "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json` as an `Accept` header to be guaranteed the V1 response format of this endpoint. New versions will be added in future." - } ] + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." + }, { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshCommunicationDefinition\",\n \"spec\": {\n \"communication\": {\n \"title\": \"Important Update\",\n \"message\": \"This is a test communication.\",\n \"type\": \"ACTION_REQUIRED\",\n \"dueDate\": \"2099-04-30\"\n }\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshCommunicationList", - "name" : "meshCommunicationList", + "id" : "meshCommunicationDefinitionPost", + "name" : "meshCommunicationDefinitionPost", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshcommunications", - "port" : "8080", - "query" : [ { - "key" : "communicationDefinitionUuid", - "disabled" : false, - "description" : "Filter for communications that belong to the definition with the given uuid." - }, { - "key" : "resolutionStatus", - "disabled" : false, - "description" : "Filter for communications with the given resolution status (OPEN, RESOLVED)." - }, { - "key" : "communicationType", - "disabled" : false, - "description" : "Filter for communications where the associated definition has the given communication type (ACTION_REQUIRED, NOTIFICATION)." - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } ] + "path" : "/api/meshobjects/meshcommunicationdefinitions", + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", "disabled" : false, - "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json` as an `Accept` header to be guaranteed the V1 response format of this endpoint. New versions will be added in future." - } ] + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." + }, { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshCommunicationDefinition\",\n \"spec\": {\n \"communication\": {\n \"title\": \"Important Update\",\n \"message\": \"This is a test communication.\",\n \"type\": \"ACTION_REQUIRED\",\n \"dueDate\": \"2099-04-30\"\n }\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=9758d157-eefe-4a5c-bf65-5f7d28b3271c&resolutionStatus=OPEN&communicationType=ACTION_REQUIRED&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", - "code" : 200 + "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"6e8a9609-3fdf-41d3-9b2b-3ffb8181496b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Important Update\",\n \"message\" : \"This is a test communication.\",\n \"dueDate\" : \"2099-04-30\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/6e8a9609-3fdf-41d3-9b2b-3ffb8181496b\"\n }\n }\n}", + "code" : 201 } ] }, { "id" : "meshCommunicationPost", @@ -1205,7 +1115,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", + "raw" : "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", "urlencoded" : [ ] } }, @@ -1233,7 +1143,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", + "raw" : "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", "urlencoded" : [ ] } }, @@ -1243,9 +1153,99 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n}", "code" : 201 } ] + }, { + "id" : "meshCommunicationList", + "name" : "/api/meshobjects/meshcommunications", + "description" : "List all meshCommunications with optional filtering by definition, status, and type\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshcommunications", + "port" : "8080", + "query" : [ { + "key" : "communicationDefinitionUuid", + "disabled" : false, + "description" : "Filter for communications that belong to the definition with the given uuid." + }, { + "key" : "resolutionStatus", + "disabled" : false, + "description" : "Filter for communications with the given resolution status (OPEN, RESOLVED)." + }, { + "key" : "communicationType", + "disabled" : false, + "description" : "Filter for communications where the associated definition has the given communication type (ACTION_REQUIRED, NOTIFICATION)." + }, { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } ] + }, + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "disabled" : false, + "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json` as an `Accept` header to be guaranteed the V1 response format of this endpoint. New versions will be added in future." + } ] + }, + "response" : [ { + "id" : "meshCommunicationList", + "name" : "meshCommunicationList", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshcommunications", + "port" : "8080", + "query" : [ { + "key" : "communicationDefinitionUuid", + "disabled" : false, + "description" : "Filter for communications that belong to the definition with the given uuid." + }, { + "key" : "resolutionStatus", + "disabled" : false, + "description" : "Filter for communications with the given resolution status (OPEN, RESOLVED)." + }, { + "key" : "communicationType", + "disabled" : false, + "description" : "Filter for communications where the associated definition has the given communication type (ACTION_REQUIRED, NOTIFICATION)." + }, { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } ] + }, + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "disabled" : false, + "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json` as an `Accept` header to be guaranteed the V1 response format of this endpoint. New versions will be added in future." + } ] + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=eb662d24-2525-4691-a202-a5e2b52fd81c&resolutionStatus=OPEN&communicationType=ACTION_REQUIRED&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "code" : 200 + } ] }, { "id" : "meshEventLogList", "name" : "/api/meshobjects/mesheventlogs", @@ -1377,7 +1377,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"055b1f56-4768-472b-908e-d0f6d994c185\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/055b1f56-4768-472b-908e-d0f6d994c185\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f89b35b1-07a4-424d-87e1-b9a4cf751bc8\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/f89b35b1-07a4-424d-87e1-b9a4cf751bc8\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -1407,7 +1407,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n }\n }\n }\n }\n}", "urlencoded" : [ ] } }, @@ -1435,7 +1435,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n }\n }\n }\n }\n}", "urlencoded" : [ ] } }, @@ -1445,7 +1445,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}", "code" : 201 }, { "id" : "meshIntegration-Post-github", @@ -1471,7 +1471,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitHub Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n },\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\"\n }\n }\n }\n}", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitHub Integration\",\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n }\n }\n }\n }\n}", "urlencoded" : [ ] } }, @@ -1481,7 +1481,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}", "code" : 201 }, { "id" : "meshIntegration-Post-gitlab", @@ -1507,7 +1507,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitLab Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n },\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\"\n }\n }\n }\n}", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitLab Integration\",\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n }\n }\n }\n }\n}", "urlencoded" : [ ] } }, @@ -1517,13 +1517,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}", "code" : 201 } ] }, { "id" : "meshIntegration-List", "name" : "/api/meshobjects/meshintegrations", - "description" : "List all integrations accessible by the user with optional pagination and filtering.\n\nIntegrations enable building blocks to interact with external systems like GitHub, GitLab, \nand Azure DevOps for pipeline automation and repository management.\n\nUsers can only see integrations that belong to their workspace (workspace-scoped access).\nPlatform administrators can see all integrations across all workspaces.\n\nThe response includes pagination information and HAL links for navigation.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "List all integrations accessible by the user with optional pagination and filtering.\n\nIntegrations enable building blocks to interact with external systems like GitHub, GitLab, \nand Azure DevOps for pipeline automation and repository management.\n\nmeshStack provides two built-in integrations:\n- **meshStack Replicator (Built-in)**: System integration for the meshStack Replicator component\n- **meshStack Metering (Built-in)**: System integration for the meshStack Metering/Kraken component\n\nBuilt-in integrations are:\n- Read-only (cannot be created, updated, or deleted via the API)\n- Visible to all users with the list permission for integrations\n- Include a `status` field with Workload Identity Federation (WIF) information for cloud provider authentication\n\nRegular (user-created) integrations do not provide the `WIF` information and can be fully managed via the API.\n\nUsers can only see integrations that belong to their workspace (workspace-scoped access) plus the built-in integrations.\nPlatform administrators can see all integrations across all workspaces.\n\nThe response includes pagination information and HAL links for navigation.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -1551,7 +1551,7 @@ }, { "key" : "type", "disabled" : false, - "description" : "Filter integrations by type. Valid values: GITLAB, GITHUB, AZURE_DEVOPS" + "description" : "Filter integrations by type. This includes user-created integration types as well as built-in integration types.\n\nAll available types: GITLAB, GITHUB, AZURE_DEVOPS, REPLICATOR, METERING" } ] }, "method" : "GET", @@ -1590,7 +1590,7 @@ }, { "key" : "type", "disabled" : false, - "description" : "Filter integrations by type. Valid values: GITLAB, GITHUB, AZURE_DEVOPS" + "description" : "Filter integrations by type. This includes user-created integration types as well as built-in integration types.\n\nAll available types: GITLAB, GITHUB, AZURE_DEVOPS, REPLICATOR, METERING" } ] }, "method" : "GET", @@ -1607,11 +1607,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshIntegrations\" : [ {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshIntegrations\" : [ {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Replicator (Built-in)\",\n \"config\" : {\n \"type\" : \"replicator\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:replicator\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Metering (Built-in)\",\n \"config\" : {\n \"type\" : \"metering\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:kraken-worker\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 5,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { - "id" : "meshLandingZone-Post-aks", + "id" : "meshLandingZone-Post-azurerg", "name" : "/api/meshobjects/meshlandingzones", "description" : "Create a new meshLandingZone\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], @@ -1637,13 +1637,13 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aks\",\n \"description\" : \"A new aks landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azurerg\",\n \"description\" : \"A new azurerg landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded" : [ ] } }, "response" : [ { - "id" : "meshLandingZone-Post-aks", - "name" : "meshLandingZone-Post-aks", + "id" : "meshLandingZone-Post-azurerg", + "name" : "meshLandingZone-Post-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -1665,7 +1665,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aks\",\n \"description\" : \"A new aks landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azurerg\",\n \"description\" : \"A new azurerg landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded" : [ ] } }, @@ -1675,11 +1675,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshLandingZone-Post-azurerg", - "name" : "meshLandingZone-Post-azurerg", + "id" : "meshLandingZone-Post-aks", + "name" : "meshLandingZone-Post-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -1701,7 +1701,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azurerg\",\n \"description\" : \"A new azurerg landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aks\",\n \"description\" : \"A new aks landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", "urlencoded" : [ ] } }, @@ -1711,11 +1711,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshLandingZone-Post-azure", - "name" : "meshLandingZone-Post-azure", + "id" : "meshLandingZone-Post-aws", + "name" : "meshLandingZone-Post-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -1737,7 +1737,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azure\",\n \"description\" : \"A new azure landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aws\",\n \"description\" : \"A new aws landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded" : [ ] } }, @@ -1747,11 +1747,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshLandingZone-Post-gcp", - "name" : "meshLandingZone-Post-gcp", + "id" : "meshLandingZone-Post-kubernetes", + "name" : "meshLandingZone-Post-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -1773,7 +1773,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone gcp\",\n \"description\" : \"A new gcp landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", "urlencoded" : [ ] } }, @@ -1783,11 +1783,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshLandingZone-Post-aws", - "name" : "meshLandingZone-Post-aws", + "id" : "meshLandingZone-Post-openshift", + "name" : "meshLandingZone-Post-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -1809,7 +1809,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aws\",\n \"description\" : \"A new aws landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone openshift\",\n \"description\" : \"A new openshift landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", "urlencoded" : [ ] } }, @@ -1819,11 +1819,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshLandingZone-Post-kubernetes", - "name" : "meshLandingZone-Post-kubernetes", + "id" : "meshLandingZone-Post-azure", + "name" : "meshLandingZone-Post-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -1845,7 +1845,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azure\",\n \"description\" : \"A new azure landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded" : [ ] } }, @@ -1855,11 +1855,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshLandingZone-Post-openshift", - "name" : "meshLandingZone-Post-openshift", + "id" : "meshLandingZone-Post-gcp", + "name" : "meshLandingZone-Post-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -1881,7 +1881,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone openshift\",\n \"description\" : \"A new openshift landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone gcp\",\n \"description\" : \"A new gcp landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded" : [ ] } }, @@ -1891,7 +1891,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", "code" : 201 } ] }, { @@ -1957,81 +1957,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", - "code" : 200 - } ] - }, { - "id" : "meshLocation-List", - "name" : "/api/meshobjects/meshlocations", - "description" : "List all meshLocations with optional pagination and filtering.\n\nLocations represent geographical or logical groupings of platform instances within meshStack.\nThey help organize cloud platforms by region, data center, or any other logical grouping.\n\nNo specific permission is required to read meshLocations – every API Key can list all available meshLocations.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshlocations", - "port" : "8080", - "query" : [ { - "key" : "displayName", - "disabled" : false, - "description" : "Filter by exact display name (case-sensitive)" - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } ] - }, - "method" : "GET", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - } ] - }, - "response" : [ { - "id" : "meshLocation-List", - "name" : "meshLocation-List", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshlocations", - "port" : "8080", - "query" : [ { - "key" : "displayName", - "disabled" : false, - "description" : "Filter by exact display name (case-sensitive)" - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } ] - }, - "method" : "GET", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - } ] - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshLocations\" : [ {\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations?displayName=My%20Location\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -2099,76 +2025,82 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9de4799c-cb6d-43ea-95a1-9ee6473d3ee5\",\n \"name\" : \"new-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New Location\",\n \"description\" : \"A new location created via API\"\n },\n \"status\" : {\n \"isPublic\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/new-location\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7b8db13e-4135-473e-a649-d366d27fca11\",\n \"name\" : \"new-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New Location\",\n \"description\" : \"A new location created via API\"\n },\n \"status\" : {\n \"isPublic\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/new-location\"\n }\n }\n}", "code" : 201 } ] }, { - "id" : "meshPaymentMethodV2Post", - "name" : "/api/meshobjects/meshpaymentmethods", - "description" : "Create a new meshPaymentMethod\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshLocation-List", + "name" : "/api/meshobjects/meshlocations", + "description" : "List all meshLocations with optional pagination and filtering.\n\nLocations represent geographical or logical groupings of platform instances within meshStack.\nThey help organize cloud platforms by region, data center, or any other logical grouping.\n\nNo specific permission is required to read meshLocations – every API Key can list all available meshLocations.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshpaymentmethods", - "port" : "8080" + "path" : "/api/meshobjects/meshlocations", + "port" : "8080", + "query" : [ { + "key" : "displayName", + "disabled" : false, + "description" : "Filter by exact display name (case-sensitive)" + }, { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } ] }, - "method" : "POST", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshPaymentMethod\",\n \"metadata\": {\n \"name\": \"new-payment-method\",\n \"ownedByWorkspace\": \"payment-workspace\"\n },\n \"spec\": {\n \"displayName\": \"New Payment Method\",\n \"amount\": 1000.00,\n \"expirationDate\": \"2025-12-31\",\n \"tags\": {}\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + } ] }, "response" : [ { - "id" : "meshPaymentMethodV2Post", - "name" : "meshPaymentMethodV2Post", + "id" : "meshLocation-List", + "name" : "meshLocation-List", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshpaymentmethods", - "port" : "8080" + "path" : "/api/meshobjects/meshlocations", + "port" : "8080", + "query" : [ { + "key" : "displayName", + "disabled" : false, + "description" : "Filter by exact display name (case-sensitive)" + }, { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } ] }, - "method" : "POST", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshPaymentMethod\",\n \"metadata\": {\n \"name\": \"new-payment-method\",\n \"ownedByWorkspace\": \"payment-workspace\"\n },\n \"spec\": {\n \"displayName\": \"New Payment Method\",\n \"amount\": 1000.00,\n \"expirationDate\": \"2025-12-31\",\n \"tags\": {}\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"new-payment-method\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"New Payment Method\",\n \"tags\" : { },\n \"amount\" : 1000,\n \"expirationDate\" : \"2025-12-31\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/new-payment-method\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=new-payment-method\"\n }\n }\n}", - "code" : 201 + "body" : "{\n \"_embedded\" : {\n \"meshLocations\" : [ {\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations?displayName=My%20Location\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "code" : 200 } ] }, { "id" : "meshPaymentMethodListV2", @@ -2245,75 +2177,107 @@ "code" : 200 } ] }, { - "id" : "meshPlatform-Post-V1-azurerg", - "name" : "/api/meshobjects/meshplatforms", - "description" : "Create a new platform including its full configuration. The examples show all available configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshPaymentMethodV2Post", + "name" : "/api/meshobjects/meshpaymentmethods", + "description" : "Create a new meshPaymentMethod\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshplatforms", + "path" : "/api/meshobjects/meshpaymentmethods", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshPaymentMethod\",\n \"metadata\": {\n \"name\": \"new-payment-method\",\n \"ownedByWorkspace\": \"payment-workspace\"\n },\n \"spec\": {\n \"displayName\": \"New Payment Method\",\n \"amount\": 1000.00,\n \"expirationDate\": \"2025-12-31\",\n \"tags\": {}\n }\n}", "urlencoded" : [ ] } }, "response" : [ { - "id" : "meshPlatform-Post-V1-azurerg", - "name" : "meshPlatform-Post-V1-azurerg", + "id" : "meshPaymentMethodV2Post", + "name" : "meshPaymentMethodV2Post", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshplatforms", + "path" : "/api/meshobjects/meshpaymentmethods", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshPaymentMethod\",\n \"metadata\": {\n \"name\": \"new-payment-method\",\n \"ownedByWorkspace\": \"payment-workspace\"\n },\n \"spec\": {\n \"displayName\": \"New Payment Method\",\n \"amount\": 1000.00,\n \"expirationDate\": \"2025-12-31\",\n \"tags\": {}\n }\n}", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"new-payment-method\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"New Payment Method\",\n \"tags\" : { },\n \"amount\" : 1000,\n \"expirationDate\" : \"2025-12-31\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/new-payment-method\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=new-payment-method\"\n }\n }\n}", "code" : 201 - }, { - "id" : "meshPlatform-Post-V1-openshift", - "name" : "meshPlatform-Post-V1-openshift", + } ] + }, { + "id" : "meshPlatform-Post-V1-kubernetes", + "name" : "/api/meshobjects/meshplatforms", + "description" : "Create a new platform including its full configuration. The examples show all available configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshplatforms", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } + }, + "response" : [ { + "id" : "meshPlatform-Post-V1-kubernetes", + "name" : "meshPlatform-Post-V1-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -2335,7 +2299,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"roleMappings\":{\"admin\":\"admin\",\"member\":\"edit\",\"reader\":\"view\"},\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, @@ -2345,11 +2309,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V2-aws", - "name" : "meshPlatform-Post-V2-aws", + "id" : "meshPlatform-Post-V1-aks", + "name" : "meshPlatform-Post-V1-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -2360,32 +2324,32 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"awsRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"ReaderRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}],\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false},\"metering\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"filter\":\"NONE\",\"reservedInstanceFairChargeback\":false,\"savingsPlanFairChargeback\":false,\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"*****\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V1-aks", - "name" : "meshPlatform-Post-V1-aks", + "id" : "meshPlatform-Post-V1-azurerg", + "name" : "meshPlatform-Post-V1-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -2407,7 +2371,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, @@ -2417,11 +2381,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V2-aks", - "name" : "meshPlatform-Post-V2-aks", + "id" : "meshPlatform-Post-V2-openshift", + "name" : "meshPlatform-Post-V2-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -2443,7 +2407,7 @@ } ], "body" : { "mode" : "raw", - "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, @@ -2453,11 +2417,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:27135b23908ca4e4d1d7e6cd2496214bb0bc16450f9d714af13359d36df5bb7e\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:da85f516ba791aa9ee4c9d187305fd54e8c847b3623af33a733133f8db83bc99\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V1-gcp", - "name" : "meshPlatform-Post-V1-gcp", + "id" : "meshPlatform-Post-V2-aks", + "name" : "meshPlatform-Post-V2-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -2468,28 +2432,28 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"roleMappings\":{\"admin\":\"roles/owner\",\"member\":\"roles/editor\",\"reader\":\"roles/viewer\"},\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a1f72da6be7aaaedaa39b63860dc190a56fd64d94f8d5bc4a80b698e8b309230\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:5d7406fc2a2264d7ebb154517cf272e5d8f321afa904674014aac1b03be19a0f\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:67961182f8b064537dca0b39318b9343008cec2a261fc7bf7639db4613c37a91\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { "id" : "meshPlatform-Post-V2-gcp", @@ -2515,7 +2479,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"gcpRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/owner\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/editor\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/viewer\"}],\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false},\"metering\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"bigqueryTable\":\"project.dataset.table\",\"bigqueryTableForCarbonFootprint\":\"project.dataset.carbon_table\",\"carbonFootprintDataCollectionStartMonth\":\"2023-01\",\"partitionTimeColumn\":\"export_time\",\"additionalFilter\":\"project.id != 'excluded-project'\",\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, @@ -2525,11 +2489,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:c388b5b964d03e444aa285be9e2a2d2fea916835636c772a814c7066ebbf4a63\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1937bbff04ba7d18f8bb151ecae3c5ea101ab3fc71f2d89b29ae5dd195ffe8dc\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V2-azure", - "name" : "meshPlatform-Post-V2-azure", + "id" : "meshPlatform-Post-V1-openshift", + "name" : "meshPlatform-Post-V1-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -2540,32 +2504,32 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"azureRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"}},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"}},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}}],\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true},\"metering\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V1-kubernetes", - "name" : "meshPlatform-Post-V1-kubernetes", + "id" : "meshPlatform-Post-V1-azure", + "name" : "meshPlatform-Post-V1-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -2587,7 +2551,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, @@ -2597,11 +2561,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V2-openshift", - "name" : "meshPlatform-Post-V2-openshift", + "id" : "meshPlatform-Post-V2-aws", + "name" : "meshPlatform-Post-V2-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -2623,7 +2587,7 @@ } ], "body" : { "mode" : "raw", - "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"openshiftRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"admin\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"edit\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"view\"}],\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}},\"metering\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"plaintext\" : \"sso-access-token-value\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, @@ -2633,11 +2597,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:2776d45cbb61bd0a228a5c4c0c437f2d4cbb4caa3fa7c87d4a248a3c995f5481\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:1c9240a05e5aa0c1b5119968c64df5e03239166d5ded8a6078d4c6ed3faaafae\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:8d2d90614f1a7c0015d4d088d63a12816330a2f45fdcf80353ed0a1b0fecce15\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V2-kubernetes", - "name" : "meshPlatform-Post-V2-kubernetes", + "id" : "meshPlatform-Post-V1-gcp", + "name" : "meshPlatform-Post-V1-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -2648,32 +2612,32 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"*****\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V1-aws", - "name" : "meshPlatform-Post-V1-aws", + "id" : "meshPlatform-Post-V2-azure", + "name" : "meshPlatform-Post-V2-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -2684,32 +2648,32 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"roleMappings\":{\"admin\":{\"awsRoleName\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},\"member\":{\"awsRoleName\":\"MemberRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}},\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:4650f4aba4b817cf0ae3dd1238839b15ba81e7a04be745a7c5ddf28d10dbe411\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:159df31e7949bee5c5792d00ada5de8a3f603c7ecea6e64433f16e38e06a265d\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4514fe9857aa65a9241c491e058729a1a1b43cf05048294e29ad9e8098934de\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatform-Post-V1-azure", - "name" : "meshPlatform-Post-V1-azure", + "id" : "meshPlatform-Post-V2-kubernetes", + "name" : "meshPlatform-Post-V2-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -2720,28 +2684,28 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"roleMappings\":{\"admin\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"},\"member\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"},\"reader\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}},\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:54e2ab41e5df6d248233086f225d1cb3026afe1076c95f55d54688cb575554a7\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:591f84d517295002cedad1f76e550f48e27388275faf699cb3bec6d721fe0d26\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { "id" : "meshPlatform-Post-V2-azurerg", @@ -2767,7 +2731,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }", "urlencoded" : [ ] } }, @@ -2777,11 +2741,47 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:da6cd6c64a1a0e762673381a3de53ba2e8d3b660e9fcc82847aa5d386a976149\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code" : 201 + }, { + "id" : "meshPlatform-Post-V1-aws", + "name" : "meshPlatform-Post-V1-aws", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshplatforms", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"*****\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"sso-access-token-value\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 } ] }, { - "id" : "meshPlatform-List-V2", + "id" : "meshPlatform-List-V1", "name" : "/api/meshobjects/meshplatforms", "description" : "List all meshPlatforms with pagination support. This example shows a paginated list response containing platforms of various types. Each platform in the list has the same structure as documented in the GET single platform response.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], @@ -2809,14 +2809,14 @@ "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ] }, "response" : [ { - "id" : "meshPlatform-List-V2", - "name" : "meshPlatform-List-V2", + "id" : "meshPlatform-List-V1", + "name" : "meshPlatform-List-V1", "originalRequest" : { "url" : { "protocol" : "http", @@ -2840,22 +2840,22 @@ "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-List-V1", - "name" : "meshPlatform-List-V1", + "id" : "meshPlatform-List-V2", + "name" : "meshPlatform-List-V2", "originalRequest" : { "url" : { "protocol" : "http", @@ -2879,100 +2879,18 @@ "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", - "code" : 200 - } ] - }, { - "id" : "meshPlatformTypeListV1", - "name" : "/api/meshobjects/meshplatformtypes", - "description" : "List all meshPlatformTypes with optional pagination and filtering.\n\nPlatform types define the available cloud platform technologies that can be used within meshStack.\nThis includes both built-in platform types (AWS, Azure, GCP, etc.) and custom platform types.\n\nYou can optionally filter the results by category and/or lifecycle status.\nFor example, use `category=CUSTOM` to retrieve only custom platform types, \nor `lifecycleStatus=ACTIVE` to retrieve only active platform types.\nBoth filters can be combined to further refine the results.\n\nNo specific permission is required to read meshPlatformTypes – every API Key can list all available meshPlatformTypes.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshplatformtypes", - "port" : "8080", - "query" : [ { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "category", - "disabled" : false, - "description" : "Optional filter by platform category. Only platform types matching the specified category will be returned. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." - }, { - "key" : "lifecycleStatus", - "disabled" : false, - "description" : "Optional filter by lifecycle status. Only platform types matching the specified lifecycle status will be returned. Possible values: ACTIVE, DEACTIVATED." - } ] - }, - "method" : "GET", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." - } ] - }, - "response" : [ { - "id" : "meshPlatformTypeListV1", - "name" : "meshPlatformTypeListV1", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshplatformtypes", - "port" : "8080", - "query" : [ { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "category", - "disabled" : false, - "description" : "Optional filter by platform category. Only platform types matching the specified category will be returned. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." - }, { - "key" : "lifecycleStatus", - "disabled" : false, - "description" : "Optional filter by lifecycle status. Only platform types matching the specified lifecycle status will be returned. Possible values: ACTIVE, DEACTIVATED." - } ] - }, - "method" : "GET", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshPlatformTypes\" : [ {\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes?category=CUSTOM&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:16e9a895bf1cf8a122fd5204acbbaf0f5766fd85855002f20ebe350f40a28458\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:28b4d3aea334447442394eb4e77122e397318b5b2570726c4a5bb48de387321a\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:ed80c632e4b93c6145fcdfe19fb2ba09265a344ef4d09839e7c5c1847dd85876\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:bad878c0be2657848e1d7709b2fdd649ce0b0cb752e014f580f4559eb484f3c2\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:a19540d809291fe9606393b6f7a6f1f05056b9b07f2cedd814478bbe2d00b9d3\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:ae9a969772f48321dc12d5b31cc029645df18f198e2504d2a9a449302f89feab\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:049e0d064434ba93556313dbe6bb597d1cfc2948be688f3f9806bbd8da3ab8f2\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:314caa0f25d395036055c3ec1003405991b7efbb80cb245212a88fa1288747aa\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4304402aa902a654c0675f6c26fe44759e4a09ee4dc1444a0436f38270bcc9d\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1b3e9e472822c72a8829f0821f1b8bb90d3a80ad7c08ec29fa3d77004cebf486\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1eaea39884dcb242658a81115f6f14aa704a2a512d5fb92c8c38b1a7aad25227\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:76c87a86da241399b90bba832c161cd20f08dcdab4f9f8d208e74bb2233052ec\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:b3a6cdd668be75a6cb239fda82fc5ea8249fa36d9b46331af8f074e3d0606676\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a356420aa3bd1a0bfb66c77d6f944efbd6998550a926738ae1296ccf2ffad001\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:3930d71d901339c705db68c6c9e936b786bd2109deba5dc2a291656e042e84fc\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:23bd866e9f3a693d32937fbe1eace4c4b58f3f450823fa9bd7251ad3c617f4a1\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -3040,20 +2958,20 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c5df09f4-dd5b-4523-8625-5370a13930e6\",\n \"name\" : \"my-new-platform\",\n \"createdOn\" : \"2025-12-03T13:49:57.980291893Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My New Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://platform.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-new-platform\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"411ee54b-70f5-4db9-937b-e7fe9720845e\",\n \"name\" : \"my-new-platform\",\n \"createdOn\" : \"2025-12-09T14:58:23.265731587Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My New Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://platform.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-new-platform\"\n }\n }\n}", "code" : 201 } ] }, { - "id" : "meshProjectRoleListV1", - "name" : "/api/meshobjects/meshprojectroles", - "description" : "List all meshProjectRoles with optional filtering and pagination.\n\nNo specific permission is required to read meshProjectRoles – every API Key can list all available meshProjectRoles.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshPlatformTypeListV1", + "name" : "/api/meshobjects/meshplatformtypes", + "description" : "List all meshPlatformTypes with optional pagination and filtering.\n\nPlatform types define the available cloud platform technologies that can be used within meshStack.\nThis includes both built-in platform types (AWS, Azure, GCP, etc.) and custom platform types.\n\nYou can optionally filter the results by category and/or lifecycle status.\nFor example, use `category=CUSTOM` to retrieve only custom platform types, \nor `lifecycleStatus=ACTIVE` to retrieve only active platform types.\nBoth filters can be combined to further refine the results.\n\nNo specific permission is required to read meshPlatformTypes – every API Key can list all available meshPlatformTypes.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshprojectroles", + "path" : "/api/meshobjects/meshplatformtypes", "port" : "8080", "query" : [ { "key" : "page", @@ -3063,19 +2981,101 @@ "key" : "size", "disabled" : false, "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "category", + "disabled" : false, + "description" : "Optional filter by platform category. Only platform types matching the specified category will be returned. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." + }, { + "key" : "lifecycleStatus", + "disabled" : false, + "description" : "Optional filter by lifecycle status. Only platform types matching the specified lifecycle status will be returned. Possible values: ACTIVE, DEACTIVATED." } ] }, "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." } ] }, "response" : [ { - "id" : "meshProjectRoleListV1", - "name" : "meshProjectRoleListV1", + "id" : "meshPlatformTypeListV1", + "name" : "meshPlatformTypeListV1", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshplatformtypes", + "port" : "8080", + "query" : [ { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "category", + "disabled" : false, + "description" : "Optional filter by platform category. Only platform types matching the specified category will be returned. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." + }, { + "key" : "lifecycleStatus", + "disabled" : false, + "description" : "Optional filter by lifecycle status. Only platform types matching the specified lifecycle status will be returned. Possible values: ACTIVE, DEACTIVATED." + } ] + }, + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." + } ] + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"_embedded\" : {\n \"meshPlatformTypes\" : [ {\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes?category=CUSTOM&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "code" : 200 + } ] + }, { + "id" : "meshProjectRoleListV1", + "name" : "/api/meshobjects/meshprojectroles", + "description" : "List all meshProjectRoles with optional filtering and pagination.\n\nNo specific permission is required to read meshProjectRoles – every API Key can list all available meshProjectRoles.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshprojectroles", + "port" : "8080", + "query" : [ { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } ] + }, + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." + } ] + }, + "response" : [ { + "id" : "meshProjectRoleListV1", + "name" : "meshProjectRoleListV1", "originalRequest" : { "url" : { "protocol" : "http", @@ -3177,6 +3177,74 @@ "body" : "{\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-viewer\",\n \"tags\" : {\n \"priority\" : [ \"low\" ],\n \"access\" : [ \"user\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Viewer\",\n \"description\" : \"Read-only access to project resources\",\n \"rank\" : 10\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-viewer\"\n }\n }\n}", "code" : 201 } ] + }, { + "id" : "meshProjectPost", + "name" : "/api/meshobjects/meshprojects", + "description" : "Create a new meshProject\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshprojects", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}", + "urlencoded" : [ ] + } + }, + "response" : [ { + "id" : "meshProjectPost", + "name" : "meshProjectPost", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshprojects", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}", + "urlencoded" : [ ] + } + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2025-12-09T14:58:26.533077586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}", + "code" : 201 + } ] }, { "id" : "meshProjectListV2", "name" : "/api/meshobjects/meshprojects", @@ -3264,76 +3332,76 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { - "id" : "meshProjectPost", - "name" : "/api/meshobjects/meshprojects", - "description" : "Create a new meshProject\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshServiceInstancePost", + "name" : "/api/meshobjects/meshserviceinstances", + "description" : "Create a Service Instance\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshprojects", + "path" : "/api/meshobjects/meshserviceinstances", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded" : [ ] } }, "response" : [ { - "id" : "meshProjectPost", - "name" : "meshProjectPost", + "id" : "meshServiceInstancePost", + "name" : "meshServiceInstancePost", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshprojects", + "path" : "/api/meshobjects/meshserviceinstances", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2025-12-03T13:50:00.946882645Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}", - "code" : 201 + "body" : "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "code" : 200 } ] }, { "id" : "meshServiceInstanceListV2", @@ -3438,75 +3506,73 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"m6tf7mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"m6tf7mtdg1\",\n \"instanceId\" : \"m6tf7mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mtdg12\",\n \"serviceId\" : \"m6tf7mtdg5\",\n \"planId\" : \"m6tf7mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/m6tf7mtdg9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=2&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 3,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"tlyz1mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"tlyz1mtdg1\",\n \"instanceId\" : \"tlyz1mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mtdg12\",\n \"serviceId\" : \"tlyz1mtdg5\",\n \"planId\" : \"tlyz1mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/tlyz1mtdg9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=2&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 3,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { - "id" : "meshServiceInstancePost", - "name" : "/api/meshobjects/meshserviceinstances", - "description" : "Create a Service Instance\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshTagDefinitionList", + "name" : "/api/meshobjects/meshtagdefinitions", + "description" : "List all meshTagDefinitions with pagination support.\n\nA meshTagDefinition defines additional metadata (tags) attached to all meshObjects of a specific kind.\nThe meshTagDefinition describes a schema for this metadata.\n\n**Note**: Reading meshTagDefinitions does not require any special permissions. All API Keys and API\nUsers set up via meshPanel have read access to meshTagDefinitions by default.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshserviceinstances", - "port" : "8080" + "path" : "/api/meshobjects/meshtagdefinitions", + "port" : "8080", + "query" : [ { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } ] }, - "method" : "POST", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." + } ] }, "response" : [ { - "id" : "meshServiceInstancePost", - "name" : "meshServiceInstancePost", + "id" : "meshTagDefinitionList", + "name" : "meshTagDefinitionList", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshserviceinstances", - "port" : "8080" + "path" : "/api/meshobjects/meshtagdefinitions", + "port" : "8080", + "query" : [ { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } ] }, - "method" : "POST", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." + } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshTagDefinitions\" : [ {\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Must be exactly 4 digits.\",\n \"displayName\" : \"Cost Center\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n }, {\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.workspaceOwner\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"workspaceOwner\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"Anna Admin\"\n }\n },\n \"description\" : \"Person responsible for this workspace.\",\n \"displayName\" : \"Workspace Owner\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"owner\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.workspaceOwner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=2&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 5,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -3576,75 +3642,113 @@ "code" : 201 } ] }, { - "id" : "meshTagDefinitionList", - "name" : "/api/meshobjects/meshtagdefinitions", - "description" : "List all meshTagDefinitions with pagination support.\n\nA meshTagDefinition defines additional metadata (tags) attached to all meshObjects of a specific kind.\nThe meshTagDefinition describes a schema for this metadata.\n\n**Note**: Reading meshTagDefinitions does not require any special permissions. All API Keys and API\nUsers set up via meshPanel have read access to meshTagDefinitions by default.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshTenantPostV4", + "name" : "/api/meshobjects/meshtenants", + "description" : "Create a new meshTenant.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshtagdefinitions", - "port" : "8080", - "query" : [ { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } ] + "path" : "/api/meshobjects/meshtenants", + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "disabled" : false, + "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as a `Content-Type` header." + }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." - } ] + "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the expected response format of this endpoint. New versions might be added in future." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v4-preview\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\": \"stage-dev\",\n \"platformTenantId\": \"cloud-tenant-4763-4526189\"\n }\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshTagDefinitionList", - "name" : "meshTagDefinitionList", + "id" : "meshTenantPostV4", + "name" : "meshTenantPostV4", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshtagdefinitions", - "port" : "8080", - "query" : [ { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } ] + "path" : "/api/meshobjects/meshtenants", + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "disabled" : false, + "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as a `Content-Type` header." + }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." - } ] + "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the expected response format of this endpoint. New versions might be added in future." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v4-preview\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\": \"stage-dev\",\n \"platformTenantId\": \"cloud-tenant-4763-4526189\"\n }\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshTagDefinitions\" : [ {\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Must be exactly 4 digits.\",\n \"displayName\" : \"Cost Center\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n }, {\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.workspaceOwner\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"workspaceOwner\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"Anna Admin\"\n }\n },\n \"description\" : \"Person responsible for this workspace.\",\n \"displayName\" : \"Workspace Owner\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"owner\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.workspaceOwner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=2&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 5,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", - "code" : 200 + "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"beebf115-3da5-4857-9abd-cb98df35c0cb\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:34.462896039Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"cloud-tenant-4763-4526189\",\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\",\n \"platformTypeIdentifier\" : \"AZURE\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/beebf115-3da5-4857-9abd-cb98df35c0cb\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}", + "code" : 201 + }, { + "id" : "meshTenantPostV3", + "name" : "meshTenantPostV3", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshtenants", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\",\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\"\n }, \n \"spec\": {\n \"landingZoneIdentifier\": \"stage-dev\"\n }\n } \n} ", + "urlencoded" : [ ] + } + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"spec\" : {\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}", + "code" : 201 } ] }, { - "id" : "meshTenantListV4", + "id" : "meshTenantListV3", "name" : "/api/meshobjects/meshtenants", - "description" : "Provides a paged list of meshTenants. By default, list all active meshTenants (neither deleted\nnor submitted for deletion).\n\n**Note**: If the state is not specified as a request parameter, only active meshTenants are returned.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "List all meshTenants with filtering and pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -3665,6 +3769,18 @@ "key" : "platformIdentifier", "disabled" : false, "description" : "Filter for meshTenants that belong to the meshPlatform with given identifier. (optional)" + }, { + "key" : "deletionState", + "disabled" : false, + "description" : "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion" + }, { + "key" : "page", + "disabled" : false, + "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, { + "key" : "size", + "disabled" : false, + "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" }, { "key" : "platformTypeIdentifier", "disabled" : false, @@ -3681,31 +3797,19 @@ "key" : "state", "disabled" : false, "description" : "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms." - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - }, { - "key" : "deletionState", - "disabled" : false, - "description" : "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion" } ] }, "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", "disabled" : false, - "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the V4 response format of this endpoint. New versions might be added in future." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." } ] }, "response" : [ { - "id" : "meshTenantListV4", - "name" : "meshTenantListV4", + "id" : "meshTenantListV3", + "name" : "meshTenantListV3", "originalRequest" : { "url" : { "protocol" : "http", @@ -3725,21 +3829,9 @@ "disabled" : false, "description" : "Filter for meshTenants that belong to the meshPlatform with given identifier. (optional)" }, { - "key" : "platformTypeIdentifier", - "disabled" : false, - "description" : "Filter for meshTenants that belong to the platform type with given identifier. (optional)" - }, { - "key" : "landingZoneIdentifier", - "disabled" : false, - "description" : "Filter for meshTenants that belong to a certain landing zone. (optional)" - }, { - "key" : "platformTenantId", - "disabled" : false, - "description" : "Filter for meshTenants with a given platformTenantId. (optional)" - }, { - "key" : "state", + "key" : "deletionState", "disabled" : false, - "description" : "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms." + "description" : "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion" }, { "key" : "page", "disabled" : false, @@ -3753,22 +3845,22 @@ "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", "disabled" : false, - "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the V4 response format of this endpoint. New versions might be added in future." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.835644642Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n }, {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"07b0f057-5fba-444e-9796-4292573a6d22\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.829359902Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"2f3561e8-51f4-451f-bc92-9e5c8c6dd98f\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.aws.aws-meshstack-dev\",\n \"platformTypeIdentifier\" : \"AWS\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/07b0f057-5fba-444e-9796-4292573a6d22\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 3,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-10T14:58:32.700446663Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"fe177f6a-0e92-45fd-94cc-327d475ab2a8\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code" : 200 }, { - "id" : "meshTenantListV3", - "name" : "meshTenantListV3", + "id" : "meshTenantListV4", + "name" : "meshTenantListV4", "originalRequest" : { "url" : { "protocol" : "http", @@ -3788,9 +3880,21 @@ "disabled" : false, "description" : "Filter for meshTenants that belong to the meshPlatform with given identifier. (optional)" }, { - "key" : "deletionState", + "key" : "platformTypeIdentifier", "disabled" : false, - "description" : "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion" + "description" : "Filter for meshTenants that belong to the platform type with given identifier. (optional)" + }, { + "key" : "landingZoneIdentifier", + "disabled" : false, + "description" : "Filter for meshTenants that belong to a certain landing zone. (optional)" + }, { + "key" : "platformTenantId", + "disabled" : false, + "description" : "Filter for meshTenants with a given platformTenantId. (optional)" + }, { + "key" : "state", + "disabled" : false, + "description" : "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms." }, { "key" : "page", "disabled" : false, @@ -3803,115 +3907,11 @@ }, "method" : "GET", "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - } ] - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-04T13:50:04.839868061Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"a2a34b5f-654e-448a-90d7-8134c81d47f3\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", - "code" : 200 - } ] - }, { - "id" : "meshTenantPostV3", - "name" : "/api/meshobjects/meshtenants", - "description" : "Create a new meshTenant\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshtenants", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\",\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\"\n }, \n \"spec\": {\n \"landingZoneIdentifier\": \"stage-dev\"\n }\n } \n} ", - "urlencoded" : [ ] - } - }, - "response" : [ { - "id" : "meshTenantPostV3", - "name" : "meshTenantPostV3", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshtenants", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\",\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\"\n }, \n \"spec\": {\n \"landingZoneIdentifier\": \"stage-dev\"\n }\n } \n} ", - "urlencoded" : [ ] - } - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"spec\" : {\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}", - "code" : 201 - }, { - "id" : "meshTenantPostV4", - "name" : "meshTenantPostV4", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshtenants", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", - "disabled" : false, - "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as a `Content-Type` header." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled" : false, - "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the expected response format of this endpoint. New versions might be added in future." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v4-preview\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\": \"stage-dev\",\n \"platformTenantId\": \"cloud-tenant-4763-4526189\"\n }\n }\n}", - "urlencoded" : [ ] - } + "description" : "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the V4 response format of this endpoint. New versions might be added in future." + } ] }, "header" : [ { "key" : "Content-Type", @@ -3919,8 +3919,8 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"7403c240-09ab-4a0a-984f-602bbf390c0d\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:06.516306259Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"cloud-tenant-4763-4526189\",\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\",\n \"platformTypeIdentifier\" : \"AZURE\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/7403c240-09ab-4a0a-984f-602bbf390c0d\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}", - "code" : 201 + "body" : "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"53277734-8b43-4e4e-a70b-76aeb244c38c\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.757443327Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/53277734-8b43-4e4e-a70b-76aeb244c38c\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n }, {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"dcce5c72-302e-49f9-baec-7bef99105688\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.750131427Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"2f3561e8-51f4-451f-bc92-9e5c8c6dd98f\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.aws.aws-meshstack-dev\",\n \"platformTypeIdentifier\" : \"AWS\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/dcce5c72-302e-49f9-baec-7bef99105688\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 3,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "code" : 200 } ] }, { "id" : "meshUserListV2", @@ -4061,7 +4061,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"0f0c0a0c-b40c-4bc4-81be-eadebb04b3c6\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"ce61d42a-5e96-42cd-99ff-be4607a2560f\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"a69e8734-0952-49e0-9a8a-1cf0ec4384a1\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"4a00028c-186e-4399-8a53-cc036c015aa5\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -4117,7 +4117,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"1a8deb65-324a-46fe-85bd-6d7024cef0a4\",\n \"name\" : \"new\"\n },\n \"spec\" : {\n \"email\" : \"new@example.com\",\n \"firstName\" : \"New\",\n \"lastName\" : \"User\",\n \"euid\" : \"new123\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/new\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=new\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"e5b770e9-1bc9-4a65-8ed7-6e75fc4dea53\",\n \"name\" : \"new\"\n },\n \"spec\" : {\n \"email\" : \"new@example.com\",\n \"firstName\" : \"New\",\n \"lastName\" : \"User\",\n \"euid\" : \"new123\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/new\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=new\"\n }\n }\n}", "code" : 201 } ] }, { @@ -4183,7 +4183,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshWorkspaces\" : [ {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-customer\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-partner\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-partner\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-partner\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-partner\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-partner\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-partner\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-partner\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-partner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 6,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshWorkspaces\" : [ {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-customer\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-partner\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-partner\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-partner\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-partner\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-partner\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-partner\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-partner\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-partner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 6,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -4251,7 +4251,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-03T13:50:10.541598661Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Workspace\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-09T14:58:38.731585303Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Workspace\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}", "code" : 201 } ] }, { @@ -4333,7 +4333,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshWorkspaceUserGroups\" : [ {\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"11284a3b-df7c-4185-863f-7715a9ea12be\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=sample-user&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshWorkspaceUserGroups\" : [ {\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"aeddeef1-873b-4433-91e7-a45418d6576a\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=sample-user&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -4392,6 +4392,48 @@ "body" : "{\n \"project-identifier\" : \"test-project-identifier\",\n \"project-display-name\" : \"test-project\",\n \"customer-identifier\" : \"test-customer-identifier\",\n \"customer-display-name\" : \"test-customer\",\n \"tags\" : {\n \"costCenter\" : [ \"1235\" ],\n \"customNumber\" : [ \"1645789\" ]\n }\n}", "code" : 200 } ] + }, { + "id" : "meshBuildingBlockDefinitionDeleteV1", + "name" : "/api/meshobjects/meshbuildingblockdefinitions/{uuid}", + "description" : "Delete a specific meshBuildingBlockDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshbuildingblockdefinitions/:uuid", + "port" : "8080", + "variable" : [ { + "key" : "uuid", + "description" : "The unique UUID of the meshBuildingBlockDefinition.", + "system" : false, + "disabled" : false + } ] + }, + "method" : "DELETE" + }, + "response" : [ { + "id" : "meshBuildingBlockDefinitionDeleteV1", + "name" : "meshBuildingBlockDefinitionDeleteV1", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshbuildingblockdefinitions/:uuid", + "port" : "8080", + "variable" : [ { + "key" : "uuid", + "description" : "The unique UUID of the meshBuildingBlockDefinition.", + "system" : false, + "disabled" : false + } ] + }, + "method" : "DELETE" + }, + "cookie" : [ ], + "code" : 202 + } ] }, { "id" : "meshBuildingBlockDefinitionPutV1", "name" : "/api/meshobjects/meshbuildingblockdefinitions/{uuid}", @@ -4419,7 +4461,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", "urlencoded" : [ ] } }, @@ -4435,72 +4477,30 @@ }, "method" : "PUT", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", - "urlencoded" : [ ] - } - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:28.175870586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description - updated\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"59862206-fc69-4291-9db8-31d9511d650c\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b7380b49-0878-419a-88dc-bf0bed72d977\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b7380b49-0878-419a-88dc-bf0bed72d977\"\n }\n }\n}", - "code" : 200 - } ] - }, { - "id" : "meshBuildingBlockDefinitionDeleteV1", - "name" : "/api/meshobjects/meshbuildingblockdefinitions/{uuid}", - "description" : "Delete a specific meshBuildingBlockDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblockdefinitions/:uuid", - "port" : "8080", - "variable" : [ { - "key" : "uuid", - "description" : "The unique UUID of the meshBuildingBlockDefinition.", - "system" : false, - "disabled" : false - } ] - }, - "method" : "DELETE" - }, - "response" : [ { - "id" : "meshBuildingBlockDefinitionDeleteV1", - "name" : "meshBuildingBlockDefinitionDeleteV1", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblockdefinitions/:uuid", - "port" : "8080", - "variable" : [ { - "key" : "uuid", - "description" : "The unique UUID of the meshBuildingBlockDefinition.", - "system" : false, - "disabled" : false - } ] - }, - "method" : "DELETE" + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "urlencoded" : [ ] + } }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 202 + "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:48.150361348Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description - updated\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"f6bff195-bf12-450b-bce4-1c813fa59139\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/69738ff0-1eb0-4609-b580-44e9e420325b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=69738ff0-1eb0-4609-b580-44e9e420325b\"\n }\n }\n}", + "code" : 200 } ] }, { "id" : "meshBuildingBlockDefinitionV1", @@ -4559,7 +4559,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:27.345384782Z\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"e4b4931c-cf55-4a73-a08b-7789efc9ad76\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:47.273824500Z\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"65553088-f3b0-49c0-98dc-a9977fd68b83\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n}", "code" : 200 } ] }, { @@ -4621,9 +4621,9 @@ "code" : 201 } ] }, { - "id" : "meshBuildingBlockV2", + "id" : "meshBuildingBlockDelete", "name" : "/api/meshobjects/meshbuildingblocks/{uuid}", - "description" : "Retrieve detailed information about a specific meshBuildingBlock including inputs, outputs, and parent relationships\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Delete a meshBuildingBlock and mark it for removal. Depending on the deletion mode of the\nmeshBuildingBlock's version, the meshBuildingBlock will either be removed (including potential\ncloud resources) or purged (removed from meshStack only).\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -4634,22 +4634,16 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID of the meshBuildingBlock to retrieve.", + "description" : "The unique UUID of the meshBuildingBlock.", "system" : false, "disabled" : false } ] }, - "method" : "GET", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." - } ] + "method" : "DELETE" }, "response" : [ { - "id" : "meshBuildingBlockV2", - "name" : "meshBuildingBlockV2", + "id" : "meshBuildingBlockDelete", + "name" : "meshBuildingBlockDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -4658,28 +4652,44 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID of the meshBuildingBlock to retrieve.", + "description" : "The unique UUID of the meshBuildingBlock.", "system" : false, "disabled" : false } ] }, - "method" : "GET", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." + "method" : "DELETE" + }, + "cookie" : [ ], + "code" : 202 + } ] + }, { + "id" : "meshBuildingBlock", + "name" : "/api/meshobjects/meshbuildingblocks/{uuid}", + "description" : "Retrieve detailed information about a specific meshBuildingBlock including inputs, outputs, and parent relationships\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshbuildingblocks/:uuid", + "port" : "8080", + "variable" : [ { + "key" : "uuid", + "description" : "The UUID that uniquely identifies the meshBuildingBlock.", + "system" : false, + "disabled" : false } ] }, + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.017007172Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}", - "code" : 200 - }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." + } ] + }, + "response" : [ { "id" : "meshBuildingBlock", "name" : "meshBuildingBlock", "originalRequest" : { @@ -4709,33 +4719,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.096812698Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.091152405Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}", "code" : 200 - } ] - }, { - "id" : "meshBuildingBlockDelete", - "name" : "/api/meshobjects/meshbuildingblocks/{uuid}", - "description" : "Delete a meshBuildingBlock and mark it for removal. Depending on the deletion mode of the\nmeshBuildingBlock's version, the meshBuildingBlock will either be removed (including potential\ncloud resources) or purged (removed from meshStack only).\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblocks/:uuid", - "port" : "8080", - "variable" : [ { - "key" : "uuid", - "description" : "The unique UUID of the meshBuildingBlock.", - "system" : false, - "disabled" : false - } ] - }, - "method" : "DELETE" - }, - "response" : [ { - "id" : "meshBuildingBlockDelete", - "name" : "meshBuildingBlockDelete", + }, { + "id" : "meshBuildingBlockV2", + "name" : "meshBuildingBlockV2", "originalRequest" : { "url" : { "protocol" : "http", @@ -4744,15 +4732,27 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The unique UUID of the meshBuildingBlock.", + "description" : "The UUID of the meshBuildingBlock to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "DELETE" + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." + } ] }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 202 + "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.528351150Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}", + "code" : 200 } ] }, { "id" : "meshCommunicationDefinitionPut", @@ -4831,13 +4831,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"my-new-title\",\n \"message\" : \"my-new-message\",\n \"dueDate\" : \"2099-05-31\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"my-new-title\",\n \"message\" : \"my-new-message\",\n \"dueDate\" : \"2099-05-31\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshCommunicationDefinition", + "id" : "meshCommunicationDefinitionDelete", "name" : "/api/meshobjects/meshcommunicationdefinitions/{uuid}", - "description" : "Retrieve detailed information about a specific meshCommunicationDefinition\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Delete a specific meshCommunicationDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -4853,7 +4853,7 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", @@ -4862,8 +4862,8 @@ } ] }, "response" : [ { - "id" : "meshCommunicationDefinition", - "name" : "meshCommunicationDefinition", + "id" : "meshCommunicationDefinitionDelete", + "name" : "meshCommunicationDefinitionDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -4877,7 +4877,7 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", @@ -4885,19 +4885,13 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." } ] }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-04\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n}", - "code" : 200 + "code" : 204 } ] }, { - "id" : "meshCommunicationDefinitionDelete", + "id" : "meshCommunicationDefinition", "name" : "/api/meshobjects/meshcommunicationdefinitions/{uuid}", - "description" : "Delete a specific meshCommunicationDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Retrieve detailed information about a specific meshCommunicationDefinition\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -4913,7 +4907,7 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", @@ -4922,8 +4916,8 @@ } ] }, "response" : [ { - "id" : "meshCommunicationDefinitionDelete", - "name" : "meshCommunicationDefinitionDelete", + "id" : "meshCommunicationDefinition", + "name" : "meshCommunicationDefinition", "originalRequest" : { "url" : { "protocol" : "http", @@ -4937,7 +4931,7 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", @@ -4945,8 +4939,14 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." } ] }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 204 + "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-10\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n}", + "code" : 200 } ] }, { "id" : "meshCommunicationDelete", @@ -5047,7 +5047,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n}", "code" : 200 } ] }, { @@ -5095,13 +5095,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"055b1f56-4768-472b-908e-d0f6d994c185\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/055b1f56-4768-472b-908e-d0f6d994c185\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f89b35b1-07a4-424d-87e1-b9a4cf751bc8\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/f89b35b1-07a4-424d-87e1-b9a4cf751bc8\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshIntegration-Put-azure_devops", + "id" : "meshIntegration-Get-gitlab", "name" : "/api/meshobjects/meshintegrations/{uuid}", - "description" : "Update an existing integration.\n\nYou can update the integration display name, configuration, and runner association.\nThe integration type cannot be changed after creation.\n\nFor sensitive fields (appPrivateKey, personalAccessToken), you can either:\n- Provide a new value to update the secret\n- Use '' to keep the existing value unchanged\n\nUsers can only update integrations that belong to their workspace unless they have admin permissions.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Retrieve detailed information about a integration by its UUID.\n\nThe response includes all integration configuration except for sensitive fields, \nwhich are masked with '' for security purposes.\n\nUsers can only retrieve integrations that belong to their workspace as well as built-in integrations (replicator and metering).\nPlatform administrators can retrieve any integration.\n\nTo get the built-in integrations, use the following UUIDs:\n- Replicator: c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\n- Metering: a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -5112,32 +5112,22 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the integration to update.", + "description" : "The UUID that uniquely identifies the integration.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}", - "urlencoded" : [ ] - } + } ] }, "response" : [ { - "id" : "meshIntegration-Put-azure_devops", - "name" : "meshIntegration-Put-azure_devops", + "id" : "meshIntegration-Get-gitlab", + "name" : "meshIntegration-Get-gitlab", "originalRequest" : { "url" : { "protocol" : "http", @@ -5146,28 +5136,50 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the integration to update.", + "description" : "The UUID that uniquely identifies the integration.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", + "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - }, { + } ] + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}", + "code" : 200 + }, { + "id" : "meshIntegration-Get-builtin-replicator", + "name" : "meshIntegration-Get-builtin-replicator", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshintegrations/:uuid", + "port" : "8080", + "variable" : [ { + "key" : "uuid", + "description" : "The UUID that uniquely identifies the integration.", + "system" : false, + "disabled" : false + } ] + }, + "method" : "GET", + "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5175,11 +5187,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Replicator (Built-in)\",\n \"config\" : {\n \"type\" : \"replicator\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:replicator\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshIntegration-Put-gitlab", - "name" : "meshIntegration-Put-gitlab", + "id" : "meshIntegration-Get-builtin-metering", + "name" : "meshIntegration-Get-builtin-metering", "originalRequest" : { "url" : { "protocol" : "http", @@ -5188,28 +5200,50 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the integration to update.", + "description" : "The UUID that uniquely identifies the integration.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + } ] + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Metering (Built-in)\",\n \"config\" : {\n \"type\" : \"metering\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:kraken-worker\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\"\n }\n }\n}", + "code" : 200 + }, { + "id" : "meshIntegration-Get-azure_devops", + "name" : "meshIntegration-Get-azure_devops", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshintegrations/:uuid", + "port" : "8080", + "variable" : [ { + "key" : "uuid", + "description" : "The UUID that uniquely identifies the integration.", + "system" : false, + "disabled" : false + } ] + }, + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitLab Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n },\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\"\n }\n }\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5217,11 +5251,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshIntegration-Put-github", - "name" : "meshIntegration-Put-github", + "id" : "meshIntegration-Get-github", + "name" : "meshIntegration-Get-github", "originalRequest" : { "url" : { "protocol" : "http", @@ -5230,28 +5264,18 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the integration to update.", + "description" : "The UUID that uniquely identifies the integration.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitHub Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n },\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\"\n }\n }\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5259,13 +5283,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshIntegration-Get-azure_devops", + "id" : "meshIntegration-Put-github", "name" : "/api/meshobjects/meshintegrations/{uuid}", - "description" : "Retrieve detailed information about a integration by its UUID.\n\nThe response includes all integration configuration except for sensitive fields, \nwhich are masked with '' for security purposes.\n\nUsers can only retrieve integrations that belong to their workspace.\nPlatform administrators can retrieve any integration.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Update an existing integration.\n\nYou can update the integration display name, configuration, and runner association.\nThe integration type cannot be changed after creation.\n\nFor sensitive fields (appPrivateKey, personalAccessToken), you can either:\n- Provide a new value to update the secret\n- Use '' to keep the existing value unchanged\n\nUsers can only update integrations that belong to their workspace unless they have admin permissions.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -5276,22 +5300,32 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the integration.", + "description" : "The UUID that uniquely identifies the integration to update.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitHub Integration\",\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n }\n }\n }\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshIntegration-Get-azure_devops", - "name" : "meshIntegration-Get-azure_devops", + "id" : "meshIntegration-Put-github", + "name" : "meshIntegration-Put-github", "originalRequest" : { "url" : { "protocol" : "http", @@ -5300,18 +5334,28 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the integration.", + "description" : "The UUID that uniquely identifies the integration to update.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitHub Integration\",\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n }\n }\n }\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5319,11 +5363,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshIntegration-Get-gitlab", - "name" : "meshIntegration-Get-gitlab", + "id" : "meshIntegration-Put-azure_devops", + "name" : "meshIntegration-Put-azure_devops", "originalRequest" : { "url" : { "protocol" : "http", @@ -5332,18 +5376,28 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the integration.", + "description" : "The UUID that uniquely identifies the integration to update.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Azure DevOps Integration\",\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n }\n }\n }\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5351,11 +5405,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshIntegration-Get-github", - "name" : "meshIntegration-Get-github", + "id" : "meshIntegration-Put-gitlab", + "name" : "meshIntegration-Put-gitlab", "originalRequest" : { "url" : { "protocol" : "http", @@ -5364,18 +5418,28 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the integration.", + "description" : "The UUID that uniquely identifies the integration to update.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitLab Integration\",\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n }\n }\n }\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5383,7 +5447,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}", "code" : 200 } ] }, { @@ -5441,9 +5505,9 @@ "code" : 204 } ] }, { - "id" : "meshLandingZone-Put-aws", + "id" : "meshLandingZone-Get-aws", "name" : "/api/meshobjects/meshlandingzones/{identifier}", - "description" : "Update an existing meshLandingZone. If a landing zone with the given identifier exists,\nit will be updated, otherwise, a new landing zone will be created.\n\nPlease note that changing the platform reference(`spec.platformRef`) is not supported.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Get a specific meshLandingZone by its identifier.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -5454,32 +5518,22 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The landing zone identifier.", + "description" : "The identifier of the meshLandingZone to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded" : [ ] - } + } ] }, "response" : [ { - "id" : "meshLandingZone-Put-aws", - "name" : "meshLandingZone-Put-aws", + "id" : "meshLandingZone-Get-aws", + "name" : "meshLandingZone-Get-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -5488,28 +5542,18 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The landing zone identifier.", + "description" : "The identifier of the meshLandingZone to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5517,11 +5561,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Put-kubernetes", - "name" : "meshLandingZone-Put-kubernetes", + "id" : "meshLandingZone-Get-aks", + "name" : "meshLandingZone-Get-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -5530,28 +5574,18 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The landing zone identifier.", + "description" : "The identifier of the meshLandingZone to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"description\" : \"An updated kubernetes landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5559,11 +5593,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Put-azurerg", - "name" : "meshLandingZone-Put-azurerg", + "id" : "meshLandingZone-Get-azurerg", + "name" : "meshLandingZone-Get-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -5572,28 +5606,18 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The landing zone identifier.", + "description" : "The identifier of the meshLandingZone to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"description\" : \"An updated azurerg landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5601,11 +5625,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Put-aks", - "name" : "meshLandingZone-Put-aks", + "id" : "meshLandingZone-Get-kubernetes", + "name" : "meshLandingZone-Get-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -5614,28 +5638,18 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The landing zone identifier.", + "description" : "The identifier of the meshLandingZone to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aks\",\n \"description\" : \"An updated aks landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5643,11 +5657,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Put-azure", - "name" : "meshLandingZone-Put-azure", + "id" : "meshLandingZone-Get-openshift", + "name" : "meshLandingZone-Get-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -5656,28 +5670,18 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The landing zone identifier.", + "description" : "The identifier of the meshLandingZone to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azure\",\n \"description\" : \"An updated azure landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5685,11 +5689,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Put-openshift", - "name" : "meshLandingZone-Put-openshift", + "id" : "meshLandingZone-Get-gcp", + "name" : "meshLandingZone-Get-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -5698,28 +5702,18 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The landing zone identifier.", + "description" : "The identifier of the meshLandingZone to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"description\" : \"An updated openshift landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5727,11 +5721,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Put-gcp", - "name" : "meshLandingZone-Put-gcp", + "id" : "meshLandingZone-Get-azure", + "name" : "meshLandingZone-Get-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -5740,28 +5734,18 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The landing zone identifier.", + "description" : "The identifier of the meshLandingZone to retrieve.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"description\" : \"An updated gcp landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -5769,13 +5753,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshLandingZone-Get-aks", + "id" : "meshLandingZone-Put-aws", "name" : "/api/meshobjects/meshlandingzones/{identifier}", - "description" : "Get a specific meshLandingZone by its identifier.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Update an existing meshLandingZone. If a landing zone with the given identifier exists,\nit will be updated, otherwise, a new landing zone will be created.\n\nPlease note that changing the platform reference(`spec.platformRef`) is not supported.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -5786,22 +5770,32 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier of the meshLandingZone to retrieve.", + "description" : "The landing zone identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshLandingZone-Get-aks", - "name" : "meshLandingZone-Get-aks", + "id" : "meshLandingZone-Put-aws", + "name" : "meshLandingZone-Put-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -5810,18 +5804,28 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier of the meshLandingZone to retrieve.", + "description" : "The landing zone identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5829,11 +5833,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Get-azurerg", - "name" : "meshLandingZone-Get-azurerg", + "id" : "meshLandingZone-Put-azure", + "name" : "meshLandingZone-Put-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -5842,18 +5846,28 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier of the meshLandingZone to retrieve.", + "description" : "The landing zone identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azure\",\n \"description\" : \"An updated azure landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5861,11 +5875,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Get-kubernetes", - "name" : "meshLandingZone-Get-kubernetes", + "id" : "meshLandingZone-Put-openshift", + "name" : "meshLandingZone-Put-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -5874,18 +5888,28 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier of the meshLandingZone to retrieve.", + "description" : "The landing zone identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"description\" : \"An updated openshift landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5893,11 +5917,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Get-gcp", - "name" : "meshLandingZone-Get-gcp", + "id" : "meshLandingZone-Put-kubernetes", + "name" : "meshLandingZone-Put-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -5906,18 +5930,28 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier of the meshLandingZone to retrieve.", + "description" : "The landing zone identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"description\" : \"An updated kubernetes landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5925,11 +5959,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Get-aws", - "name" : "meshLandingZone-Get-aws", + "id" : "meshLandingZone-Put-gcp", + "name" : "meshLandingZone-Put-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -5938,18 +5972,28 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier of the meshLandingZone to retrieve.", + "description" : "The landing zone identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"description\" : \"An updated gcp landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5957,11 +6001,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Get-azure", - "name" : "meshLandingZone-Get-azure", + "id" : "meshLandingZone-Put-aks", + "name" : "meshLandingZone-Put-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -5970,18 +6014,28 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier of the meshLandingZone to retrieve.", + "description" : "The landing zone identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aks\",\n \"description\" : \"An updated aks landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -5989,11 +6043,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshLandingZone-Get-openshift", - "name" : "meshLandingZone-Get-openshift", + "id" : "meshLandingZone-Put-azurerg", + "name" : "meshLandingZone-Put-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -6002,18 +6056,28 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier of the meshLandingZone to retrieve.", + "description" : "The landing zone identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"description\" : \"An updated azurerg landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -6021,7 +6085,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", "code" : 200 } ] }, { @@ -6078,6 +6142,86 @@ "cookie" : [ ], "code" : 204 } ] + }, { + "id" : "meshLocation-Put", + "name" : "/api/meshobjects/meshlocations/{identifier}", + "description" : "Update an existing meshLocation. This endpoint requires save permissions for platforms (there is no dedicated permission for locations as platforms and locations are closely related).\n\nYou can update the display name and description of a location. The identifier cannot be changed.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshlocations/:identifier", + "port" : "8080", + "variable" : [ { + "key" : "identifier", + "description" : "The identifier that uniquely identifies the meshLocation.", + "system" : false, + "disabled" : false + } ] + }, + "method" : "PUT", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"my-location\"\n },\n \"spec\": {\n \"displayName\": \"Updated Location Name\",\n \"description\": \"An updated description\"\n }\n}", + "urlencoded" : [ ] + } + }, + "response" : [ { + "id" : "meshLocation-Put", + "name" : "meshLocation-Put", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshlocations/:identifier", + "port" : "8080", + "variable" : [ { + "key" : "identifier", + "description" : "The identifier that uniquely identifies the meshLocation.", + "system" : false, + "disabled" : false + } ] + }, + "method" : "PUT", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"my-location\"\n },\n \"spec\": {\n \"displayName\": \"Updated Location Name\",\n \"description\": \"An updated description\"\n }\n}", + "urlencoded" : [ ] + } + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Location Name\",\n \"description\" : \"An updated description\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}", + "code" : 200 + } ] }, { "id" : "meshLocation-Get", "name" : "/api/meshobjects/meshlocations/{identifier}", @@ -6135,88 +6279,62 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshLocation-Put", - "name" : "/api/meshobjects/meshlocations/{identifier}", - "description" : "Update an existing meshLocation. This endpoint requires save permissions for platforms (there is no dedicated permission for locations as platforms and locations are closely related).\n\nYou can update the display name and description of a location. The identifier cannot be changed.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshPaymentMethodV2Delete", + "name" : "/api/meshobjects/meshpaymentmethods/{identifier}", + "description" : "Delete a specific meshPaymentMethod by identifier. meshStack currently only allows soft deletion of payment methods.\n\nPlease note that it is possible to retrieve a payment method via the GET meshPaymentMethod endpoint after deletion.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshlocations/:identifier", + "path" : "/api/meshobjects/meshpaymentmethods/:identifier", "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier that uniquely identifies the meshLocation.", + "description" : "The payment method identifier.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "DELETE", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"my-location\"\n },\n \"spec\": {\n \"displayName\": \"Updated Location Name\",\n \"description\": \"An updated description\"\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." + } ] }, "response" : [ { - "id" : "meshLocation-Put", - "name" : "meshLocation-Put", + "id" : "meshPaymentMethodV2Delete", + "name" : "meshPaymentMethodV2Delete", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshlocations/:identifier", + "path" : "/api/meshobjects/meshpaymentmethods/:identifier", "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier that uniquely identifies the meshLocation.", + "description" : "The payment method identifier.", "system" : false, "disabled" : false } ] }, - "method" : "PUT", + "method" : "DELETE", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"my-location\"\n },\n \"spec\": {\n \"displayName\": \"Updated Location Name\",\n \"description\": \"An updated description\"\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." + } ] }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Location Name\",\n \"description\" : \"An updated description\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}", - "code" : 200 + "code" : 204 } ] }, { "id" : "meshPaymentMethodV2Put", @@ -6299,25 +6417,19 @@ "code" : 200 } ] }, { - "id" : "meshPaymentMethodV2Delete", - "name" : "/api/meshobjects/meshpaymentmethods/{identifier}", - "description" : "Delete a specific meshPaymentMethod by identifier. meshStack currently only allows soft deletion of payment methods.\n\nPlease note that it is possible to retrieve a payment method via the GET meshPaymentMethod endpoint after deletion.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshPaymentMethodV2", + "name" : "/api/meshobjects/meshpaymentmethods/{paymentMethodIdentifier}", + "description" : "Get a specific meshPaymentMethod by its identifier. Deleted meshPaymentMethods can also be requested\nvia this endpoint. A future version of the meshPaymentMethod object will include additional fields to\nindicate the deletion state of a payment method.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshpaymentmethods/:identifier", - "port" : "8080", - "variable" : [ { - "key" : "identifier", - "description" : "The payment method identifier.", - "system" : false, - "disabled" : false - } ] + "path" : "/api/meshobjects/meshpaymentmethods/:paymentMethodIdentifier", + "port" : "8080" }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", @@ -6326,22 +6438,16 @@ } ] }, "response" : [ { - "id" : "meshPaymentMethodV2Delete", - "name" : "meshPaymentMethodV2Delete", + "id" : "meshPaymentMethodV2", + "name" : "meshPaymentMethodV2", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshpaymentmethods/:identifier", - "port" : "8080", - "variable" : [ { - "key" : "identifier", - "description" : "The payment method identifier.", - "system" : false, - "disabled" : false - } ] + "path" : "/api/meshobjects/meshpaymentmethods/:paymentMethodIdentifier", + "port" : "8080" }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", @@ -6349,61 +6455,99 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } ] }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 204 + "body" : "{\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-payment-method-1\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Payment Method 1\",\n \"tags\" : { },\n \"amount\" : 1000\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment-method-1\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=test-payment-method-1\"\n }\n }\n}", + "code" : 200 } ] }, { - "id" : "meshPaymentMethodV2", - "name" : "/api/meshobjects/meshpaymentmethods/{paymentMethodIdentifier}", - "description" : "Get a specific meshPaymentMethod by its identifier. Deleted meshPaymentMethods can also be requested\nvia this endpoint. A future version of the meshPaymentMethod object will include additional fields to\nindicate the deletion state of a payment method.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshPlatform-Delete-V2", + "name" : "/api/meshobjects/meshplatforms/{uuid}", + "description" : "Delete a meshPlatform by its UUID. WARNING: Deleting a meshPlatform has significant consequences. All associated meshTenants will be automatically purged in meshStack, but the actual cloud resources remain untouched. Usage reports for the current month will not be finalized and will not be included in chargeback statements. Users will lose access to platform tenants via meshStack but can still access them directly in the cloud platform. You cannot create a new meshPlatform with the same identifier in the same location. This operation cannot be undone. Ensure you have proper backups and have communicated the impact to affected users.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshpaymentmethods/:paymentMethodIdentifier", - "port" : "8080" + "path" : "/api/meshobjects/meshplatforms/:uuid", + "port" : "8080", + "variable" : [ { + "key" : "uuid", + "description" : "The UUID of the meshPlatform.", + "system" : false, + "disabled" : false + } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ] }, "response" : [ { - "id" : "meshPaymentMethodV2", - "name" : "meshPaymentMethodV2", + "id" : "meshPlatform-Delete-V2", + "name" : "meshPlatform-Delete-V2", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshpaymentmethods/:paymentMethodIdentifier", - "port" : "8080" + "path" : "/api/meshobjects/meshplatforms/:uuid", + "port" : "8080", + "variable" : [ { + "key" : "uuid", + "description" : "The UUID of the meshPlatform.", + "system" : false, + "disabled" : false + } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ] }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-payment-method-1\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Payment Method 1\",\n \"tags\" : { },\n \"amount\" : 1000\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment-method-1\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=test-payment-method-1\"\n }\n }\n}", - "code" : 200 + "code" : 204 + }, { + "id" : "meshPlatform-Delete-V1", + "name" : "meshPlatform-Delete-V1", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshplatforms/:uuid", + "port" : "8080", + "variable" : [ { + "key" : "uuid", + "description" : "The UUID of the meshPlatform.", + "system" : false, + "disabled" : false + } ] + }, + "method" : "DELETE", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + } ] + }, + "cookie" : [ ], + "code" : 204 } ] }, { - "id" : "meshPlatform-Put-V1-aks", + "id" : "meshPlatform-Get-V2-aks", "name" : "/api/meshobjects/meshplatforms/{uuid}", - "description" : "Update an existing platform. The examples show all available configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Get a platform. The examples show the complete response including all configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -6419,27 +6563,17 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"}}}\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + } ] }, "response" : [ { - "id" : "meshPlatform-Put-V1-aks", - "name" : "meshPlatform-Put-V1-aks", + "id" : "meshPlatform-Get-V2-aks", + "name" : "meshPlatform-Get-V2-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -6453,35 +6587,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"}}}\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a1f72da6be7aaaedaa39b63860dc190a56fd64d94f8d5bc4a80b698e8b309230\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:5d7406fc2a2264d7ebb154517cf272e5d8f321afa904674014aac1b03be19a0f\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:67961182f8b064537dca0b39318b9343008cec2a261fc7bf7639db4613c37a91\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V2-kubernetes", - "name" : "meshPlatform-Put-V2-kubernetes", + "id" : "meshPlatform-Get-V2-azurerg", + "name" : "meshPlatform-Get-V2-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -6495,23 +6619,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"84e38de6-17bd-4975-acc2-2f337100c1b7\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6519,11 +6633,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:da6cd6c64a1a0e762673381a3de53ba2e8d3b660e9fcc82847aa5d386a976149\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V2-azure", - "name" : "meshPlatform-Put-V2-azure", + "id" : "meshPlatform-Get-V2-kubernetes", + "name" : "meshPlatform-Get-V2-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -6537,23 +6651,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"azureRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"}},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"}},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}}],\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true},\"metering\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6561,11 +6665,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:54e2ab41e5df6d248233086f225d1cb3026afe1076c95f55d54688cb575554a7\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:591f84d517295002cedad1f76e550f48e27388275faf699cb3bec6d721fe0d26\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V2-aks", - "name" : "meshPlatform-Put-V2-aks", + "id" : "meshPlatform-Get-V1-openshift", + "name" : "meshPlatform-Get-V1-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -6579,35 +6683,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"6b5ea37b-1aaf-4967-858a-f35d6b562474\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V1-gcp", - "name" : "meshPlatform-Put-V1-gcp", + "id" : "meshPlatform-Get-V1-gcp", + "name" : "meshPlatform-Get-V1-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -6621,23 +6715,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"64aebcac-7320-48ac-ba2a-4478af7878ad\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"roleMappings\":{\"admin\":\"roles/owner\",\"member\":\"roles/editor\",\"reader\":\"roles/viewer\"},\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false}}}\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6645,11 +6729,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V2-aws", - "name" : "meshPlatform-Put-V2-aws", + "id" : "meshPlatform-Get-V1-azure", + "name" : "meshPlatform-Get-V1-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -6663,35 +6747,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"awsRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"ReaderRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}],\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false},\"metering\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"filter\":\"NONE\",\"reservedInstanceFairChargeback\":false,\"savingsPlanFairChargeback\":false,\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V1-azurerg", - "name" : "meshPlatform-Put-V1-azurerg", + "id" : "meshPlatform-Get-V1-azurerg", + "name" : "meshPlatform-Get-V1-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -6705,23 +6779,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"50931c5d-a94f-465c-8ada-7aadeffc267d\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6729,11 +6793,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V1-aws", - "name" : "meshPlatform-Put-V1-aws", + "id" : "meshPlatform-Get-V1-kubernetes", + "name" : "meshPlatform-Get-V1-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -6747,23 +6811,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"dc86975b-1098-4c96-92b6-43f9423263db\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"roleMappings\":{\"admin\":{\"awsRoleName\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},\"member\":{\"awsRoleName\":\"MemberRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}},\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false}}}\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6771,11 +6825,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V2-openshift", - "name" : "meshPlatform-Put-V2-openshift", + "id" : "meshPlatform-Get-V2-openshift", + "name" : "meshPlatform-Get-V2-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -6789,23 +6843,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"openshiftRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"admin\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"edit\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"view\"}],\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}},\"metering\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6813,11 +6857,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:27135b23908ca4e4d1d7e6cd2496214bb0bc16450f9d714af13359d36df5bb7e\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:da85f516ba791aa9ee4c9d187305fd54e8c847b3623af33a733133f8db83bc99\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V2-gcp", - "name" : "meshPlatform-Put-V2-gcp", + "id" : "meshPlatform-Get-V2-gcp", + "name" : "meshPlatform-Get-V2-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -6831,23 +6875,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"86f970c9-a042-48b2-8a72-0f86da488c33\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"gcpRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/owner\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/editor\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/viewer\"}],\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false},\"metering\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"bigqueryTable\":\"project.dataset.table\",\"bigqueryTableForCarbonFootprint\":\"project.dataset.carbon_table\",\"carbonFootprintDataCollectionStartMonth\":\"2023-01\",\"partitionTimeColumn\":\"export_time\",\"additionalFilter\":\"project.id != 'excluded-project'\",\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6855,11 +6889,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:c388b5b964d03e444aa285be9e2a2d2fea916835636c772a814c7066ebbf4a63\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1937bbff04ba7d18f8bb151ecae3c5ea101ab3fc71f2d89b29ae5dd195ffe8dc\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V2-azurerg", - "name" : "meshPlatform-Put-V2-azurerg", + "id" : "meshPlatform-Get-V2-aws", + "name" : "meshPlatform-Get-V2-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -6873,23 +6907,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6897,11 +6921,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:2776d45cbb61bd0a228a5c4c0c437f2d4cbb4caa3fa7c87d4a248a3c995f5481\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:1c9240a05e5aa0c1b5119968c64df5e03239166d5ded8a6078d4c6ed3faaafae\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:8d2d90614f1a7c0015d4d088d63a12816330a2f45fdcf80353ed0a1b0fecce15\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V1-openshift", - "name" : "meshPlatform-Put-V1-openshift", + "id" : "meshPlatform-Get-V1-aws", + "name" : "meshPlatform-Get-V1-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -6915,23 +6939,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"30c27412-18d0-4068-b309-071d988f3d39\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"roleMappings\":{\"admin\":\"admin\",\"member\":\"edit\",\"reader\":\"view\"},\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}}}}\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6939,11 +6953,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V1-kubernetes", - "name" : "meshPlatform-Put-V1-kubernetes", + "id" : "meshPlatform-Get-V1-aks", + "name" : "meshPlatform-Get-V1-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -6957,23 +6971,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"}}}\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -6981,11 +6985,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Put-V1-azure", - "name" : "meshPlatform-Put-V1-azure", + "id" : "meshPlatform-Get-V2-azure", + "name" : "meshPlatform-Get-V2-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -6999,37 +7003,27 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"roleMappings\":{\"admin\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"},\"member\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"},\"reader\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}},\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true}}}\n }\n}", - "urlencoded" : [ ] - } + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:4650f4aba4b817cf0ae3dd1238839b15ba81e7a04be745a7c5ddf28d10dbe411\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:159df31e7949bee5c5792d00ada5de8a3f603c7ecea6e64433f16e38e06a265d\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4514fe9857aa65a9241c491e058729a1a1b43cf05048294e29ad9e8098934de\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshPlatform-Get-V2-azure", + "id" : "meshPlatform-Put-V2-gcp", "name" : "/api/meshobjects/meshplatforms/{uuid}", - "description" : "Get a platform. The examples show the complete response including all configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Update an existing platform. The examples show all available configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -7045,81 +7039,27 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"624e2f32-7bd2-4544-946b-9d2844a44ae7\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshPlatform-Get-V2-azure", - "name" : "meshPlatform-Get-V2-azure", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshplatforms/:uuid", - "port" : "8080", - "variable" : [ { - "key" : "uuid", - "description" : "The UUID of the meshPlatform.", - "system" : false, - "disabled" : false - } ] - }, - "method" : "GET", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", - "code" : 200 - }, { - "id" : "meshPlatform-Get-V2-gcp", - "name" : "meshPlatform-Get-V2-gcp", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshplatforms/:uuid", - "port" : "8080", - "variable" : [ { - "key" : "uuid", - "description" : "The UUID of the meshPlatform.", - "system" : false, - "disabled" : false - } ] - }, - "method" : "GET", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", - "code" : 200 - }, { - "id" : "meshPlatform-Get-V2-kubernetes", - "name" : "meshPlatform-Get-V2-kubernetes", + "id" : "meshPlatform-Put-V2-gcp", + "name" : "meshPlatform-Put-V2-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -7133,13 +7073,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"624e2f32-7bd2-4544-946b-9d2844a44ae7\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -7147,11 +7097,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1eaea39884dcb242658a81115f6f14aa704a2a512d5fb92c8c38b1a7aad25227\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:76c87a86da241399b90bba832c161cd20f08dcdab4f9f8d208e74bb2233052ec\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V1-openshift", - "name" : "meshPlatform-Get-V1-openshift", + "id" : "meshPlatform-Put-V2-azure", + "name" : "meshPlatform-Put-V2-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -7165,25 +7115,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"72093497-42d1-4627-b3eb-9b473144e77a\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:049e0d064434ba93556313dbe6bb597d1cfc2948be688f3f9806bbd8da3ab8f2\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:314caa0f25d395036055c3ec1003405991b7efbb80cb245212a88fa1288747aa\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4304402aa902a654c0675f6c26fe44759e4a09ee4dc1444a0436f38270bcc9d\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V1-gcp", - "name" : "meshPlatform-Get-V1-gcp", + "id" : "meshPlatform-Put-V2-openshift", + "name" : "meshPlatform-Put-V2-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -7197,25 +7157,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:3930d71d901339c705db68c6c9e936b786bd2109deba5dc2a291656e042e84fc\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:23bd866e9f3a693d32937fbe1eace4c4b58f3f450823fa9bd7251ad3c617f4a1\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V2-azurerg", - "name" : "meshPlatform-Get-V2-azurerg", + "id" : "meshPlatform-Put-V2-kubernetes", + "name" : "meshPlatform-Put-V2-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -7229,13 +7199,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"67d9d50e-4647-400d-b1ab-77d92d64a215\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -7243,11 +7223,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:b3a6cdd668be75a6cb239fda82fc5ea8249fa36d9b46331af8f074e3d0606676\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a356420aa3bd1a0bfb66c77d6f944efbd6998550a926738ae1296ccf2ffad001\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V1-kubernetes", - "name" : "meshPlatform-Get-V1-kubernetes", + "id" : "meshPlatform-Put-V1-aks", + "name" : "meshPlatform-Put-V1-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -7261,13 +7241,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"ca370346-86b3-4816-8ec4-c912f087a52d\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"*****\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -7275,11 +7265,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V2-aks", - "name" : "meshPlatform-Get-V2-aks", + "id" : "meshPlatform-Put-V2-azurerg", + "name" : "meshPlatform-Put-V2-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -7293,13 +7283,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -7307,11 +7307,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1b3e9e472822c72a8829f0821f1b8bb90d3a80ad7c08ec29fa3d77004cebf486\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V1-aws", - "name" : "meshPlatform-Get-V1-aws", + "id" : "meshPlatform-Put-V1-aws", + "name" : "meshPlatform-Put-V1-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -7325,13 +7325,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4a867d38-a799-4abe-8d57-b695fb945d37\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"*****\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"sso-access-token-value\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -7339,11 +7349,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V2-aws", - "name" : "meshPlatform-Get-V2-aws", + "id" : "meshPlatform-Put-V2-aws", + "name" : "meshPlatform-Put-V2-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -7357,13 +7367,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"plaintext\" : \"sso-access-token-value\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -7371,11 +7391,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:bad878c0be2657848e1d7709b2fdd649ce0b0cb752e014f580f4559eb484f3c2\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:a19540d809291fe9606393b6f7a6f1f05056b9b07f2cedd814478bbe2d00b9d3\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:ae9a969772f48321dc12d5b31cc029645df18f198e2504d2a9a449302f89feab\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V1-aks", - "name" : "meshPlatform-Get-V1-aks", + "id" : "meshPlatform-Put-V2-aks", + "name" : "meshPlatform-Put-V2-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -7389,25 +7409,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:16e9a895bf1cf8a122fd5204acbbaf0f5766fd85855002f20ebe350f40a28458\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:28b4d3aea334447442394eb4e77122e397318b5b2570726c4a5bb48de387321a\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:ed80c632e4b93c6145fcdfe19fb2ba09265a344ef4d09839e7c5c1847dd85876\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V1-azurerg", - "name" : "meshPlatform-Get-V1-azurerg", + "id" : "meshPlatform-Put-V1-azure", + "name" : "meshPlatform-Put-V1-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -7421,13 +7451,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4c7d9602-4002-48c1-8613-6c17c93d1d66\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -7435,11 +7475,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V2-openshift", - "name" : "meshPlatform-Get-V2-openshift", + "id" : "meshPlatform-Put-V1-gcp", + "name" : "meshPlatform-Put-V1-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -7453,25 +7493,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"*****\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatform-Get-V1-azure", - "name" : "meshPlatform-Get-V1-azure", + "id" : "meshPlatform-Put-V1-kubernetes", + "name" : "meshPlatform-Put-V1-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -7485,13 +7535,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"a8e75ec6-7d27-4046-9db2-313e4034bf94\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -7499,39 +7559,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", - "code" : 200 - } ] - }, { - "id" : "meshPlatform-Delete-V1", - "name" : "/api/meshobjects/meshplatforms/{uuid}", - "description" : "Delete a meshPlatform by its UUID. WARNING: Deleting a meshPlatform has significant consequences. All associated meshTenants will be automatically purged in meshStack, but the actual cloud resources remain untouched. Usage reports for the current month will not be finalized and will not be included in chargeback statements. Users will lose access to platform tenants via meshStack but can still access them directly in the cloud platform. You cannot create a new meshPlatform with the same identifier in the same location. This operation cannot be undone. Ensure you have proper backups and have communicated the impact to affected users.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshplatforms/:uuid", - "port" : "8080", - "variable" : [ { - "key" : "uuid", - "description" : "The UUID of the meshPlatform.", - "system" : false, - "disabled" : false - } ] - }, - "method" : "DELETE", - "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] - }, - "response" : [ { - "id" : "meshPlatform-Delete-V1", - "name" : "meshPlatform-Delete-V1", + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code" : 200 + }, { + "id" : "meshPlatform-Put-V1-azurerg", + "name" : "meshPlatform-Put-V1-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -7545,19 +7577,35 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"d9660c03-dd72-4eca-b126-407fa78a2cad\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 204 + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code" : 200 }, { - "id" : "meshPlatform-Delete-V2", - "name" : "meshPlatform-Delete-V2", + "id" : "meshPlatform-Put-V1-openshift", + "name" : "meshPlatform-Put-V1-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -7571,21 +7619,37 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } ] + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n}\n }\n }", + "urlencoded" : [ ] + } }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 204 + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code" : 200 } ] }, { - "id" : "meshPlatformTypeV1", + "id" : "meshPlatformTypeV1Delete", "name" : "/api/meshobjects/meshplatformtypes/{identifier}", - "description" : "Retrieve detailed information about a specific meshPlatformType\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Deactivate a specific meshPlatformType by identifier. Only platform types of category 'CUSTOM' can be\ndeactivated. Deactivating a meshPlatformType will set its status to 'DEACTIVATED', preventing new \nplatforms from being created of this type. Existing platforms will not be affected.\n\nOnly admin users with delete permissions on platforms can deactivate platform types.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -7596,12 +7660,12 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier that uniquely identifies the meshPlatformType.", + "description" : "The platform type identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", @@ -7610,8 +7674,8 @@ } ] }, "response" : [ { - "id" : "meshPlatformTypeV1", - "name" : "meshPlatformTypeV1", + "id" : "meshPlatformTypeV1Delete", + "name" : "meshPlatformTypeV1Delete", "originalRequest" : { "url" : { "protocol" : "http", @@ -7620,12 +7684,12 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier that uniquely identifies the meshPlatformType.", + "description" : "The platform type identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", @@ -7633,14 +7697,8 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." } ] }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}", - "code" : 200 + "code" : 204 } ] }, { "id" : "meshPlatformTypeV1Put", @@ -7719,13 +7777,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Custom Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://updated.example.com\",\n \"icon\" : \"updated-icon\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Custom Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://updated.example.com\",\n \"icon\" : \"updated-icon\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshPlatformTypeV1Delete", + "id" : "meshPlatformTypeV1", "name" : "/api/meshobjects/meshplatformtypes/{identifier}", - "description" : "Deactivate a specific meshPlatformType by identifier. Only platform types of category 'CUSTOM' can be\ndeactivated. Deactivating a meshPlatformType will set its status to 'DEACTIVATED', preventing new \nplatforms from being created of this type. Existing platforms will not be affected.\n\nOnly admin users with delete permissions on platforms can deactivate platform types.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Retrieve detailed information about a specific meshPlatformType\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -7736,12 +7794,12 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The platform type identifier.", + "description" : "The identifier that uniquely identifies the meshPlatformType.", "system" : false, "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", @@ -7750,8 +7808,8 @@ } ] }, "response" : [ { - "id" : "meshPlatformTypeV1Delete", - "name" : "meshPlatformTypeV1Delete", + "id" : "meshPlatformTypeV1", + "name" : "meshPlatformTypeV1", "originalRequest" : { "url" : { "protocol" : "http", @@ -7760,12 +7818,12 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The platform type identifier.", + "description" : "The identifier that uniquely identifies the meshPlatformType.", "system" : false, "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", @@ -7773,76 +7831,14 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." } ] }, - "cookie" : [ ], - "code" : 204 - } ] - }, { - "id" : "meshProjectGroupBindingCreateV3", - "name" : "/api/meshobjects/meshprojectbindings/groupbindings", - "description" : "Create a new meshProjectGroupBinding to assign a group to a project with a specific role\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshprojectbindings/groupbindings", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshProjectGroupBinding\",\n \"metadata\": {\n \"name\": \"group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-project-1\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Project Reader\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", - "urlencoded" : [ ] - } - }, - "response" : [ { - "id" : "meshProjectGroupBindingCreateV3", - "name" : "meshProjectGroupBindingCreateV3", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshprojectbindings/groupbindings", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshProjectGroupBinding\",\n \"metadata\": {\n \"name\": \"group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-project-1\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Project Reader\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", - "urlencoded" : [ ] - } - }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", + "value" : "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"group-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Project Reader\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/group-binding-name\"\n }\n }\n}", - "code" : 201 + "body" : "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}", + "code" : 200 } ] }, { "id" : "meshProjectGroupBindingListV3", @@ -7907,75 +7903,75 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { - "id" : "meshProjectUserBindingCreateV3", - "name" : "/api/meshobjects/meshprojectbindings/userbindings", - "description" : "Create a new meshProjectUserBinding to assign a user to a project with a specific role, which grants\nthem the corresponding permissions within the cloud platform. Before users can be assigned to a project,\nthey must first be added to the workspace that owns that project.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshProjectGroupBindingCreateV3", + "name" : "/api/meshobjects/meshprojectbindings/groupbindings", + "description" : "Create a new meshProjectGroupBinding to assign a group to a project with a specific role\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshprojectbindings/userbindings", + "path" : "/api/meshobjects/meshprojectbindings/groupbindings", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshProjectUserBinding\",\n \"metadata\": {\n \"name\": \"user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-project-1\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Project Reader\" },\n \"subject\": {\n \"name\" : \"username3\"\n }\n} ", + "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshProjectGroupBinding\",\n \"metadata\": {\n \"name\": \"group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-project-1\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Project Reader\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", "urlencoded" : [ ] } }, "response" : [ { - "id" : "meshProjectUserBindingCreateV3", - "name" : "meshProjectUserBindingCreateV3", + "id" : "meshProjectGroupBindingCreateV3", + "name" : "meshProjectGroupBindingCreateV3", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshprojectbindings/userbindings", + "path" : "/api/meshobjects/meshprojectbindings/groupbindings", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshProjectUserBinding\",\n \"metadata\": {\n \"name\": \"user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-project-1\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Project Reader\" },\n \"subject\": {\n \"name\" : \"username3\"\n }\n} ", + "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshProjectGroupBinding\",\n \"metadata\": {\n \"name\": \"group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-project-1\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Project Reader\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "value" : "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Project Reader\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username3\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/user-binding-name\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"group-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Project Reader\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/group-binding-name\"\n }\n }\n}", "code" : 201 } ] }, { @@ -8006,34 +8002,102 @@ "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." - } ] + } ] + }, + "response" : [ { + "id" : "meshProjectUserBindingListV3", + "name" : "meshProjectUserBindingListV3", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshprojectbindings/userbindings", + "port" : "8080", + "query" : [ { + "key" : "workspaceIdentifier", + "disabled" : false, + "description" : "The identifier of the workspace the project with the bindings belongs to. (Optional)" + }, { + "key" : "projectIdentifier", + "disabled" : false, + "description" : "The project identifier of the project that contains the requested bindings. (Optional)" + } ] + }, + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + } ] + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "code" : 200 + } ] + }, { + "id" : "meshProjectUserBindingCreateV3", + "name" : "/api/meshobjects/meshprojectbindings/userbindings", + "description" : "Create a new meshProjectUserBinding to assign a user to a project with a specific role, which grants\nthem the corresponding permissions within the cloud platform. Before users can be assigned to a project,\nthey must first be added to the workspace that owns that project.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshprojectbindings/userbindings", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshProjectUserBinding\",\n \"metadata\": {\n \"name\": \"user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-project-1\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Project Reader\" },\n \"subject\": {\n \"name\" : \"username3\"\n }\n} ", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshProjectUserBindingListV3", - "name" : "meshProjectUserBindingListV3", + "id" : "meshProjectUserBindingCreateV3", + "name" : "meshProjectUserBindingCreateV3", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", "path" : "/api/meshobjects/meshprojectbindings/userbindings", - "port" : "8080", - "query" : [ { - "key" : "workspaceIdentifier", - "disabled" : false, - "description" : "The identifier of the workspace the project with the bindings belongs to. (Optional)" - }, { - "key" : "projectIdentifier", - "disabled" : false, - "description" : "The project identifier of the project that contains the requested bindings. (Optional)" - } ] + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshProjectUserBinding\",\n \"metadata\": {\n \"name\": \"user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-project-1\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Project Reader\" },\n \"subject\": {\n \"name\" : \"username3\"\n }\n} ", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -8041,13 +8105,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", - "code" : 200 + "body" : "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Project Reader\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username3\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/user-binding-name\"\n }\n }\n}", + "code" : 201 } ] }, { - "id" : "meshProjectRoleV1Delete", + "id" : "meshProjectRoleV1", "name" : "/api/meshobjects/meshprojectroles/{identifier}", - "description" : "Delete a meshProjectRole to remove it from the system.\nDeleting a project role is only possible if no users are assigned to the given role.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Retrieve detailed information about a specific meshProjectRole\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8058,12 +8122,12 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The project role identifier.", + "description" : "The identifier that uniquely identifies the meshProjectRole.", "system" : false, "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", @@ -8072,8 +8136,8 @@ } ] }, "response" : [ { - "id" : "meshProjectRoleV1Delete", - "name" : "meshProjectRoleV1Delete", + "id" : "meshProjectRoleV1", + "name" : "meshProjectRoleV1", "originalRequest" : { "url" : { "protocol" : "http", @@ -8082,12 +8146,12 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The project role identifier.", + "description" : "The identifier that uniquely identifies the meshProjectRole.", "system" : false, "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", @@ -8095,13 +8159,19 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." } ] }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 204 + "body" : "{\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-admin\",\n \"tags\" : {\n \"priority\" : [ \"high\" ],\n \"access\" : [ \"admin\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Administrator\",\n \"description\" : \"Full administrative access to projects\",\n \"rank\" : 100\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-admin\"\n }\n }\n}", + "code" : 200 } ] }, { - "id" : "meshProjectRoleV1", + "id" : "meshProjectRoleV1Delete", "name" : "/api/meshobjects/meshprojectroles/{identifier}", - "description" : "Retrieve detailed information about a specific meshProjectRole\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Delete a meshProjectRole to remove it from the system.\nDeleting a project role is only possible if no users are assigned to the given role.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8112,12 +8182,12 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier that uniquely identifies the meshProjectRole.", + "description" : "The project role identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", @@ -8126,8 +8196,8 @@ } ] }, "response" : [ { - "id" : "meshProjectRoleV1", - "name" : "meshProjectRoleV1", + "id" : "meshProjectRoleV1Delete", + "name" : "meshProjectRoleV1Delete", "originalRequest" : { "url" : { "protocol" : "http", @@ -8136,12 +8206,12 @@ "port" : "8080", "variable" : [ { "key" : "identifier", - "description" : "The identifier that uniquely identifies the meshProjectRole.", + "description" : "The project role identifier.", "system" : false, "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", @@ -8149,14 +8219,8 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." } ] }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-admin\",\n \"tags\" : {\n \"priority\" : [ \"high\" ],\n \"access\" : [ \"admin\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Administrator\",\n \"description\" : \"Full administrative access to projects\",\n \"rank\" : 100\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-admin\"\n }\n }\n}", - "code" : 200 + "code" : 204 } ] }, { "id" : "meshProjectRoleV1Put", @@ -8283,7 +8347,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-12-03T13:50:01.674801462Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-12-09T14:58:27.338005716Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", "code" : 200 } ] }, { @@ -8319,7 +8383,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}", "urlencoded" : [ ] } }, @@ -8353,7 +8417,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}", + "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}", "urlencoded" : [ ] } }, @@ -8363,13 +8427,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshServiceInstancePut", + "id" : "meshServiceInstanceDelete", "name" : "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", - "description" : "Update a specific mesh instance\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Delete a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8379,27 +8443,11 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "PUT", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded" : [ ] - } + "method" : "DELETE" }, "response" : [ { - "id" : "meshServiceInstancePut", - "name" : "meshServiceInstancePut", + "id" : "meshServiceInstanceDelete", + "name" : "meshServiceInstanceDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -8407,31 +8455,15 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "PUT", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded" : [ ] - } + "method" : "DELETE" }, "cookie" : [ ], "code" : 202 } ] }, { - "id" : "meshServiceInstanceDelete", + "id" : "meshServiceInstanceGet", "name" : "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", - "description" : "Delete a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Get a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8441,11 +8473,17 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "DELETE" + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + } ] }, "response" : [ { - "id" : "meshServiceInstanceDelete", - "name" : "meshServiceInstanceDelete", + "id" : "meshServiceInstanceGet", + "name" : "meshServiceInstanceGet", "originalRequest" : { "url" : { "protocol" : "http", @@ -8453,15 +8491,27 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "DELETE" + "method" : "GET", + "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + } ] }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 202 + "body" : "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "code" : 200 } ] }, { - "id" : "meshServiceInstanceGet", + "id" : "meshServiceInstancePut", "name" : "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", - "description" : "Get a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Update a specific mesh instance\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8471,17 +8521,27 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshServiceInstanceGet", - "name" : "meshServiceInstanceGet", + "id" : "meshServiceInstancePut", + "name" : "meshServiceInstancePut", "originalRequest" : { "url" : { "protocol" : "http", @@ -8489,27 +8549,31 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + }, { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - } ] + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", + "urlencoded" : [ ] + } }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", - "code" : 200 + "code" : 202 } ] }, { - "id" : "meshTagDefinitionDelete", + "id" : "meshTagDefinition", "name" : "/api/meshobjects/meshtagdefinitions/{name}", - "description" : "Delete a specific meshTagDefinition by name.\nPlease note that deleting a meshTagDefinition will also remove all tag values for the `key` from\nall meshObjects specified by its `targetKind`.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Get a specific meshTagDefinition by its name\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8525,7 +8589,7 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", @@ -8534,8 +8598,8 @@ } ] }, "response" : [ { - "id" : "meshTagDefinitionDelete", - "name" : "meshTagDefinitionDelete", + "id" : "meshTagDefinition", + "name" : "meshTagDefinition", "originalRequest" : { "url" : { "protocol" : "http", @@ -8549,7 +8613,7 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", @@ -8557,13 +8621,19 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." } ] }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 204 + "body" : "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Must be exactly 4 digits.\",\n \"displayName\" : \"Cost Center\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n}", + "code" : 200 } ] }, { - "id" : "meshTagDefinitionPut", + "id" : "meshTagDefinitionDelete", "name" : "/api/meshobjects/meshtagdefinitions/{name}", - "description" : "Create or update an existing meshTagDefinition by name\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Delete a specific meshTagDefinition by name.\nPlease note that deleting a meshTagDefinition will also remove all tag values for the `key` from\nall meshObjects specified by its `targetKind`.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8579,26 +8649,17 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." - }, { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", - "disabled" : false - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n },\n \"email\" : null,\n \"integer\" : null,\n \"number\" : null,\n \"singleSelect\" : null,\n \"multiSelect\" : null\n },\n \"description\" : \"Updated description\",\n \"displayName\" : \"Updated display name\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"updatedReplicationKey\"\n }\n}", - "urlencoded" : [ ] - } + } ] }, "response" : [ { - "id" : "meshTagDefinitionPut", - "name" : "meshTagDefinitionPut", + "id" : "meshTagDefinitionDelete", + "name" : "meshTagDefinitionDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -8612,36 +8673,21 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." - }, { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", - "disabled" : false - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n },\n \"email\" : null,\n \"integer\" : null,\n \"number\" : null,\n \"singleSelect\" : null,\n \"multiSelect\" : null\n },\n \"description\" : \"Updated description\",\n \"displayName\" : \"Updated display name\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"updatedReplicationKey\"\n }\n}", - "urlencoded" : [ ] - } + } ] }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Updated description\",\n \"displayName\" : \"Updated display name\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"updatedReplicationKey\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n}", - "code" : 200 + "code" : 204 } ] }, { - "id" : "meshTagDefinition", + "id" : "meshTagDefinitionPut", "name" : "/api/meshobjects/meshtagdefinitions/{name}", - "description" : "Get a specific meshTagDefinition by its name\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Create or update an existing meshTagDefinition by name\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8657,17 +8703,26 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." - } ] + }, { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "disabled" : false + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n },\n \"email\" : null,\n \"integer\" : null,\n \"number\" : null,\n \"singleSelect\" : null,\n \"multiSelect\" : null\n },\n \"description\" : \"Updated description\",\n \"displayName\" : \"Updated display name\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"updatedReplicationKey\"\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshTagDefinition", - "name" : "meshTagDefinition", + "id" : "meshTagDefinitionPut", + "name" : "meshTagDefinitionPut", "originalRequest" : { "url" : { "protocol" : "http", @@ -8681,13 +8736,22 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled" : false, "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." - } ] + }, { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "disabled" : false + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n },\n \"email\" : null,\n \"integer\" : null,\n \"number\" : null,\n \"singleSelect\" : null,\n \"multiSelect\" : null\n },\n \"description\" : \"Updated description\",\n \"displayName\" : \"Updated display name\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"updatedReplicationKey\"\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -8695,7 +8759,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Must be exactly 4 digits.\",\n \"displayName\" : \"Cost Center\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Updated description\",\n \"displayName\" : \"Updated display name\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"updatedReplicationKey\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n}", "code" : 200 } ] }, { @@ -8807,7 +8871,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-04T13:50:04.839868061Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"a2a34b5f-654e-448a-90d7-8134c81d47f3\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-10T14:58:32.700446663Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"fe177f6a-0e92-45fd-94cc-327d475ab2a8\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n}", "code" : 200 } ] }, { @@ -8867,7 +8931,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.835644642Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"53277734-8b43-4e4e-a70b-76aeb244c38c\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.757443327Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/53277734-8b43-4e4e-a70b-76aeb244c38c\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n}", "code" : 200 } ] }, { @@ -8967,7 +9031,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"0f0c0a0c-b40c-4bc4-81be-eadebb04b3c6\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"ce61d42a-5e96-42cd-99ff-be4607a2560f\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"a69e8734-0952-49e0-9a8a-1cf0ec4384a1\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"4a00028c-186e-4399-8a53-cc036c015aa5\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n}", "code" : 200 } ] }, { @@ -9039,7 +9103,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"f11dc0f3-70a9-4509-9017-c49d30c2073e\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"1a7747bd-0fa9-4c8c-b53c-ac54f1b1ed20\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", "urlencoded" : [ ] } }, @@ -9067,7 +9131,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"f11dc0f3-70a9-4509-9017-c49d30c2073e\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"1a7747bd-0fa9-4c8c-b53c-ac54f1b1ed20\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", "urlencoded" : [ ] } }, @@ -9077,9 +9141,77 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"13c9ae80-b95b-4e96-b8c4-10cb0812bf52\",\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"f11dc0f3-70a9-4509-9017-c49d30c2073e\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/samira-johnson\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=samira-johnson\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"20079969-2223-4dab-b895-5f6fec0b86a4\",\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"1a7747bd-0fa9-4c8c-b53c-ac54f1b1ed20\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/samira-johnson\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=samira-johnson\"\n }\n }\n}", "code" : 200 } ] + }, { + "id" : "meshWorkspaceGroupBindingCreate", + "name" : "/api/meshobjects/meshworkspacebindings/groupbindings", + "description" : "This creates a new group binding and associates a user group together with a workspace role to a workspace.\n\n**Authentication:** This endpoint supports API User authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshworkspacebindings/groupbindings", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceGroupBinding\",\n \"metadata\": {\n \"name\": \"my-group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", + "urlencoded" : [ ] + } + }, + "response" : [ { + "id" : "meshWorkspaceGroupBindingCreate", + "name" : "meshWorkspaceGroupBindingCreate", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshworkspacebindings/groupbindings", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + }, { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + } ], + "body" : { + "mode" : "raw", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceGroupBinding\",\n \"metadata\": {\n \"name\": \"my-group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", + "urlencoded" : [ ] + } + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-group-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Member\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/my-group-binding-name\"\n }\n }\n}", + "code" : 201 + } ] }, { "id" : "meshWorkspaceGroupBindingList", "name" : "/api/meshobjects/meshworkspacebindings/groupbindings", @@ -9143,75 +9275,75 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"77d986cc-ac85-46b2-ae00-b3a70b094644\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/77d986cc-ac85-46b2-ae00-b3a70b094644\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { - "id" : "meshWorkspaceGroupBindingCreate", - "name" : "/api/meshobjects/meshworkspacebindings/groupbindings", - "description" : "This creates a new group binding and associates a user group together with a workspace role to a workspace.\n\n**Authentication:** This endpoint supports API User authentication.", + "id" : "meshWorkspaceUserBindingCreate", + "name" : "/api/meshobjects/meshworkspacebindings/userbindings", + "description" : "Creating a meshWorkspaceUserBinding assigns the user to a workspace with a specified workspace role.\n\n**Authentication:** This endpoint supports API User authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshworkspacebindings/groupbindings", + "path" : "/api/meshobjects/meshworkspacebindings/userbindings", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceGroupBinding\",\n \"metadata\": {\n \"name\": \"my-group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceUserBinding\",\n \"metadata\": {\n \"name\": \"another-user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"john.doe49a0\"\n }\n} ", "urlencoded" : [ ] } }, "response" : [ { - "id" : "meshWorkspaceGroupBindingCreate", - "name" : "meshWorkspaceGroupBindingCreate", + "id" : "meshWorkspaceUserBindingCreate", + "name" : "meshWorkspaceUserBindingCreate", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshworkspacebindings/groupbindings", + "path" : "/api/meshobjects/meshworkspacebindings/userbindings", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." }, { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceGroupBinding\",\n \"metadata\": {\n \"name\": \"my-group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceUserBinding\",\n \"metadata\": {\n \"name\": \"another-user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"john.doe49a0\"\n }\n} ", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-group-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Member\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/my-group-binding-name\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshWorkspaceUserBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"another-user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Member\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"john.doe49a0\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings/another-user-binding-name\"\n }\n }\n}", "code" : 201 } ] }, { @@ -9289,77 +9421,9 @@ "code" : 200 } ] }, { - "id" : "meshWorkspaceUserBindingCreate", - "name" : "/api/meshobjects/meshworkspacebindings/userbindings", - "description" : "Creating a meshWorkspaceUserBinding assigns the user to a workspace with a specified workspace role.\n\n**Authentication:** This endpoint supports API User authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshworkspacebindings/userbindings", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceUserBinding\",\n \"metadata\": {\n \"name\": \"another-user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"john.doe49a0\"\n }\n} ", - "urlencoded" : [ ] - } - }, - "response" : [ { - "id" : "meshWorkspaceUserBindingCreate", - "name" : "meshWorkspaceUserBindingCreate", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshworkspacebindings/userbindings", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." - }, { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceUserBinding\",\n \"metadata\": {\n \"name\": \"another-user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"john.doe49a0\"\n }\n} ", - "urlencoded" : [ ] - } - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshWorkspaceUserBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"another-user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Member\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"john.doe49a0\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings/another-user-binding-name\"\n }\n }\n}", - "code" : 201 - } ] - }, { - "id" : "meshWorkspaceDelete", + "id" : "meshWorkspace", "name" : "/api/meshobjects/meshworkspaces/{identifier}", - "description" : "Delete a meshWorkspace by identifier. This operation marks the workspace as deleted and removes or\ndisconnects all attached objects (e.g. users, workspace user groups and payment methods). Workspace\ndeletion is only possible if the workspace contains no projects and no tenants.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Get a specific meshWorkspace by identifier\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -9375,7 +9439,7 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", @@ -9384,8 +9448,8 @@ } ] }, "response" : [ { - "id" : "meshWorkspaceDelete", - "name" : "meshWorkspaceDelete", + "id" : "meshWorkspace", + "name" : "meshWorkspace", "originalRequest" : { "url" : { "protocol" : "http", @@ -9399,7 +9463,7 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", @@ -9407,8 +9471,14 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspace.v2.hal+json` for this version of the endpoint." } ] }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", + "disabled" : false + } ], "cookie" : [ ], - "code" : 204 + "body" : "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n}", + "code" : 200 } ] }, { "id" : "meshWorkspacePut", @@ -9487,13 +9557,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-03T13:50:10.541598661Z\"\n },\n \"spec\" : {\n \"displayName\" : \"updated workspace name\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-09T14:58:38.731585303Z\"\n },\n \"spec\" : {\n \"displayName\" : \"updated workspace name\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshWorkspace", + "id" : "meshWorkspaceDelete", "name" : "/api/meshobjects/meshworkspaces/{identifier}", - "description" : "Get a specific meshWorkspace by identifier\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Delete a meshWorkspace by identifier. This operation marks the workspace as deleted and removes or\ndisconnects all attached objects (e.g. users, workspace user groups and payment methods). Workspace\ndeletion is only possible if the workspace contains no projects and no tenants.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -9509,7 +9579,7 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", @@ -9518,8 +9588,8 @@ } ] }, "response" : [ { - "id" : "meshWorkspace", - "name" : "meshWorkspace", + "id" : "meshWorkspaceDelete", + "name" : "meshWorkspaceDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -9533,7 +9603,7 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", @@ -9541,14 +9611,8 @@ "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspace.v2.hal+json` for this version of the endpoint." } ] }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n}", - "code" : 200 + "code" : 204 } ] }, { "id" : "meshWorkspaceUserGroup", @@ -9607,7 +9671,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"11284a3b-df7c-4185-863f-7715a9ea12be\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"aeddeef1-873b-4433-91e7-a45418d6576a\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n}", "code" : 200 } ] }, { @@ -9697,7 +9761,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n }\n }\n}", "code" : 200 } ] }, { @@ -9799,7 +9863,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n }\n }\n}", "code" : 200 } ] }, { @@ -9901,7 +9965,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"77d986cc-ac85-46b2-ae00-b3a70b094644\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/77d986cc-ac85-46b2-ae00-b3a70b094644\"\n }\n }\n}", "code" : 200 } ] }, { diff --git a/static/api/meshstack-postman-collection.json b/static/api/meshstack-postman-collection.json index 2a7109087..53e3d1372 100644 --- a/static/api/meshstack-postman-collection.json +++ b/static/api/meshstack-postman-collection.json @@ -61,13 +61,13 @@ "cookie": [ ], - "body": "{\n \"_links\" : {\n \"meshobjects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n },\n \"metadata\" : {\n \"href\" : \"https://mesh-backend-url/api/metadata\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api\"\n }\n }\n}", + "body": "{\n \"_links\" : {\n \"metadata\" : {\n \"href\" : \"https://mesh-backend-url/api/metadata\"\n },\n \"meshobjects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api\"\n }\n }\n}", "code": 200 } ] }, { - "id": "apiKeyLoginResponseRedirect", + "id": "apiKeyLoginResponse", "name": "/api/login", "description": "To call the API with an API Key, first issue an API call to the backend to receive a short-lived bearer token.\nSend a request to `/api/login` with the following keys in the body of the request. You can use either the `x-www-form-urlencoded` format or the `application/json` format:\n\n- For `x-www-form-urlencoded`, provide the parameters `client_id`, `client_secret`, and `grant_type` in the\n request body. This variant will respond with a redirect to meshStack's IdP. You must configure your client to\n follow the redirect or handle it manually.\n- For `application/json`, provide a JSON object with `clientId` and `clientSecret` fields. This variant will\n respond directly with an access token and related fields, without a redirect. **We recommend using the JSON\n variant for most integrations.**\n\nChoose the format that best fits your integration scenario, but prefer the JSON variant for simplicity and direct access to the token.", "variable": [ @@ -86,13 +86,13 @@ "header": [ { "key": "Content-Type", - "value": "application/x-www-form-urlencoded", + "value": "application/json", "disabled": false } ], "body": { "mode": "raw", - "raw": "client_id=301a8e20-6403-4167-804d-fa22bfbecbb4&client_secret=VROxgAmQDjjUq2j20UhfhtARL7cQwLV8&grant_type=client_credentials", + "raw": "{\n \"clientId\" : \"72fa4be7-7e45-47b1-948b-419ddba40931\",\n \"clientSecret\" : \"s3bXpsxilCyDe1EgDBbcvhUT1wlAR6TX\"\n} ", "urlencoded": [ ] @@ -100,8 +100,8 @@ }, "response": [ { - "id": "apiKeyLoginResponseRedirect", - "name": "apiKeyLoginResponseRedirect", + "id": "apiKeyLoginResponse", + "name": "apiKeyLoginResponse", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -112,26 +112,34 @@ "header": [ { "key": "Content-Type", - "value": "application/x-www-form-urlencoded", + "value": "application/json", "disabled": false } ], "body": { "mode": "raw", - "raw": "client_id=301a8e20-6403-4167-804d-fa22bfbecbb4&client_secret=VROxgAmQDjjUq2j20UhfhtARL7cQwLV8&grant_type=client_credentials", + "raw": "{\n \"clientId\" : \"72fa4be7-7e45-47b1-948b-419ddba40931\",\n \"clientSecret\" : \"s3bXpsxilCyDe1EgDBbcvhUT1wlAR6TX\"\n} ", "urlencoded": [ ] } }, + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "disabled": false + } + ], "cookie": [ ], - "code": 307 + "body": "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjUyOTI1NTksImlhdCI6MTc2NTI5MjI1OSwianRpIjoiNmQ0ZmZlY2ItZDc3NS00M2Y0LTljNTMtMzg5ODBhOGY2NDc1IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDUwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiMDIzODVmOTUtNzY2OS00MTkyLWFjMWItZjM3NGY0OTY0MGVhIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiNzJmYTRiZTctN2U0NS00N2IxLTk0OGItNDE5ZGRiYTQwOTMxIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiY2xpZW50SG9zdCI6IjEyNy4wLjAuMSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTcyZmE0YmU3LTdlNDUtNDdiMS05NDhiLTQxOWRkYmE0MDkzMSIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiI3MmZhNGJlNy03ZTQ1LTQ3YjEtOTQ4Yi00MTlkZGJhNDA5MzEifQ.VgEXj-Gd8i_o1iFfq7ZGg5SDpWsi_UHxyV2Rrnk4ASo2H8r08X94MJ_8GlqI3nlw_uM-cUX01gJQoBIWKo6agx0I96eBKO15PnCnkvPDAGdgHFDWpO9K8vLQf7Nk67gX0d1ZAzTnSY-lDfMRhvj2z904jpNAq7fKvYuZea8rQXSjKMaYu4aKPOPOEaqZ3_Ri8aU0LOYYDaX1N3wQI0a2ARZfu3u8SlZVQHIlqgkMQZc42UHWVCaPXNGyIOgHjJhetGVoMRz7h5lAaPtv42bcI-GDBojmgVj9yEFkoB6ZUZRdQ-WITFXnSBQW7cLdlBn1IgxonSIuIn-wBzY3hTAX6g\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}", + "code": 200 }, { - "id": "apiKeyLoginResponse", - "name": "apiKeyLoginResponse", + "id": "apiKeyLoginResponseRedirect", + "name": "apiKeyLoginResponseRedirect", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -142,37 +150,29 @@ "header": [ { "key": "Content-Type", - "value": "application/json", + "value": "application/x-www-form-urlencoded", "disabled": false } ], "body": { "mode": "raw", - "raw": "{\n \"clientId\" : \"301a8e20-6403-4167-804d-fa22bfbecbb4\",\n \"clientSecret\" : \"VROxgAmQDjjUq2j20UhfhtARL7cQwLV8\"\n} ", + "raw": "client_id=72fa4be7-7e45-47b1-948b-419ddba40931&client_secret=s3bXpsxilCyDe1EgDBbcvhUT1wlAR6TX&grant_type=client_credentials", "urlencoded": [ ] } }, - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "disabled": false - } - ], "cookie": [ ], - "body": "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjQ3NzAwNjAsImlhdCI6MTc2NDc2OTc2MCwianRpIjoiMWZkYTJhZGUtZjE0Yy00ZGRjLTg2YzEtOWJhODZjOTJjZjNlIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDUwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiODI5YzFmODQtOWM4MS00NmNhLWFmODgtOThmZDI0YTYzZDBjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiMzAxYThlMjAtNjQwMy00MTY3LTgwNGQtZmEyMmJmYmVjYmI0IiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJjbGllbnRIb3N0IjoiMTI3LjAuMC4xIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTMwMWE4ZTIwLTY0MDMtNDE2Ny04MDRkLWZhMjJiZmJlY2JiNCIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiIzMDFhOGUyMC02NDAzLTQxNjctODA0ZC1mYTIyYmZiZWNiYjQifQ.QXjG-l1ke5cdgfCxm1U-KsW7zG14aiOa03wSsXX2S5TwPbWKZy6zD_N-e5ZUyrxAk4BYZWjlSYQ-hJqe7TD9lD602SMXNvsfrc6viVz18Dpv7DP76wTcAS_USdvbf5zRu2Mne_BQpznrbCDmwnMPocsrJe_6NctbnPiSj0gNd80OU3i7gbMBCLX2KzvcuYlYsHfr5t8tFi9xwDPQPEsNVUh7UHpNXEg7v6kkGtSZLWeFtkFp2thLRr1XwWXnt6ebI-wUJ4fIXNyoRr5ZprR6bx_w3v06vflG6hcVFPDjwtfNE7e0ofbtVDzMYyGNa64JhaCYYeH7smsT-ZbdngEh2g\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}", - "code": 200 + "code": 307 } ] }, { - "id": "createMeshObjectCollection", + "id": "deleteMeshObjectCollection", "name": "/api/meshobjectcollections", - "description": "This endpoint will create a new empty meshObjectCollection. You can use collections for declarative deletion.\nCurrently supported objects are: meshWorkspaceUserGroup, meshWorkspaceUserBinding & meshWorkspaceGroupBinding.\nDeclarative deletion means that a previously imported resource will be deleted, if it is not specified in a subsequent import.\n\n**Authentication:** This endpoint supports API User authentication.", + "description": "This endpoint can be used to delete an existing meshObjectCollection. It will not remove any meshObjects\nand works only for empty meshObjectCollections. To delete a meshObjectCollection and all assigned\nmeshObjects, those have to be deleted manually before calling this endpoint.\n\n**Authentication:** This endpoint supports API User authentication.", "variable": [ ], @@ -185,7 +185,7 @@ "path": "/api/meshobjectcollections", "raw": "{{baseUrl}}/api/meshobjectcollections" }, - "method": "POST", + "method": "DELETE", "header": [ { "key": "Content-Type", @@ -196,7 +196,7 @@ ], "body": { "mode": "raw", - "raw": "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\",\n \"description\": \"This is a meshObjectCollection.\"\n }\n ", + "raw": "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\"\n }\n ", "urlencoded": [ ] @@ -204,15 +204,15 @@ }, "response": [ { - "id": "createMeshObjectCollection", - "name": "createMeshObjectCollection", + "id": "deleteMeshObjectCollection", + "name": "deleteMeshObjectCollection", "originalRequest": { "url": { "host": "{{baseUrl}}", "path": "/api/meshobjectcollections", "raw": "{{baseUrl}}/api/meshobjectcollections" }, - "method": "POST", + "method": "DELETE", "header": [ { "key": "Content-Type", @@ -223,7 +223,7 @@ ], "body": { "mode": "raw", - "raw": "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\",\n \"description\": \"This is a meshObjectCollection.\"\n }\n ", + "raw": "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\"\n }\n ", "urlencoded": [ ] @@ -232,14 +232,14 @@ "cookie": [ ], - "code": 201 + "code": 200 } ] }, { - "id": "deleteMeshObjectCollection", + "id": "createMeshObjectCollection", "name": "/api/meshobjectcollections", - "description": "This endpoint can be used to delete an existing meshObjectCollection. It will not remove any meshObjects\nand works only for empty meshObjectCollections. To delete a meshObjectCollection and all assigned\nmeshObjects, those have to be deleted manually before calling this endpoint.\n\n**Authentication:** This endpoint supports API User authentication.", + "description": "This endpoint will create a new empty meshObjectCollection. You can use collections for declarative deletion.\nCurrently supported objects are: meshWorkspaceUserGroup, meshWorkspaceUserBinding & meshWorkspaceGroupBinding.\nDeclarative deletion means that a previously imported resource will be deleted, if it is not specified in a subsequent import.\n\n**Authentication:** This endpoint supports API User authentication.", "variable": [ ], @@ -252,7 +252,7 @@ "path": "/api/meshobjectcollections", "raw": "{{baseUrl}}/api/meshobjectcollections" }, - "method": "DELETE", + "method": "POST", "header": [ { "key": "Content-Type", @@ -263,7 +263,7 @@ ], "body": { "mode": "raw", - "raw": "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\"\n }\n ", + "raw": "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\",\n \"description\": \"This is a meshObjectCollection.\"\n }\n ", "urlencoded": [ ] @@ -271,15 +271,15 @@ }, "response": [ { - "id": "deleteMeshObjectCollection", - "name": "deleteMeshObjectCollection", + "id": "createMeshObjectCollection", + "name": "createMeshObjectCollection", "originalRequest": { "url": { "host": "{{baseUrl}}", "path": "/api/meshobjectcollections", "raw": "{{baseUrl}}/api/meshobjectcollections" }, - "method": "DELETE", + "method": "POST", "header": [ { "key": "Content-Type", @@ -290,7 +290,7 @@ ], "body": { "mode": "raw", - "raw": "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\"\n }\n ", + "raw": "\n {\n \"name\": \"collection-name\",\n \"owner\": \"collection-owner\",\n \"description\": \"This is a meshObjectCollection.\"\n }\n ", "urlencoded": [ ] @@ -299,7 +299,7 @@ "cookie": [ ], - "code": 200 + "code": 201 } ] }, @@ -415,9 +415,9 @@ ] }, { - "id": "meshObjectsRootV2", + "id": "meshObjectsRootV1", "name": "/api/meshobjects", - "description": "Access the root endpoint of the meshObjects API to discover available mesh object types\n\n**Authentication:** This endpoint supports multiple authentication methods: API User authentication or API Key authentication.", + "description": "Get the meshObjects root resource with available links\n\n**Authentication:** This endpoint supports multiple authentication methods: API User authentication or API Key authentication.", "variable": [ ], @@ -434,16 +434,16 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshobjects.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshobjects.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v1.hal+json` for this version of the endpoint." } ] }, "response": [ { - "id": "meshObjectsRootV2", - "name": "meshObjectsRootV2", + "id": "meshObjectsRootV1", + "name": "meshObjectsRootV1", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -454,28 +454,28 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshobjects.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshobjects.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v1.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshobjects.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshobjects.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_links\" : {\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?uuid,workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"meshplatforms\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms{?searchTerm}\",\n \"templated\" : true\n },\n \"meshbuildingblockdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshbuildingblockruns\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockruns/create?forRunnerUuid={forRunnerUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks{?workspaceIdentifier,projectIdentifier,platformIdentifier,name,definitionUuid,versionUuid,tenantUuid,targetRefKind,status,managedByWorkspaceIdentifier,managedByDefinitionUuid}\",\n \"templated\" : true\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,authorType,authorIdentifier,eventType,workspaceName,workspaceIdentifier,excludeTitle}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?workspaceIdentifier,paymentIdentifier,state}\",\n \"templated\" : true\n },\n \"meshintegrations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations{?displayName,ownedByWorkspace,type}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups{?workspaceIdentifier,username}\",\n \"templated\" : true\n },\n \"meshworkspaceuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspacegroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"meshlocations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations{?displayName}\",\n \"templated\" : true\n },\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshplatformtypes\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes{?category,lifecycleStatus}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", + "body": "{\n \"_links\" : {\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?customerIdentifier,paymentIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", "code": 200 }, { - "id": "meshObjectsRootV1", - "name": "meshObjectsRootV1", + "id": "meshObjectsRootV2", + "name": "meshObjectsRootV2", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -486,23 +486,23 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshobjects.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshobjects.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshobjects.v2.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshobjects.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshobjects.v2.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_links\" : {\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?customerIdentifier,paymentIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", + "body": "{\n \"_links\" : {\n \"meshbuildingblockruns\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockruns/create?forRunnerUuid={forRunnerUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks{?workspaceIdentifier,projectIdentifier,platformIdentifier,name,definitionUuid,versionUuid,tenantUuid,targetRefKind,status,managedByWorkspaceIdentifier,managedByDefinitionUuid}\",\n \"templated\" : true\n },\n \"meshbuildingblockdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshplatforms\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms{?searchTerm}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshlocations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations{?displayName}\",\n \"templated\" : true\n },\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"meshintegrations\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations{?displayName,ownedByWorkspace,type}\",\n \"templated\" : true\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshplatformtypes\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes{?category,lifecycleStatus}\",\n \"templated\" : true\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,authorType,authorIdentifier,eventType,workspaceName,workspaceIdentifier,excludeTitle}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"meshworkspaceuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspacegroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings{?username,workspaceRole,workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups{?workspaceIdentifier,username}\",\n \"templated\" : true\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?uuid,workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects{?workspaceIdentifier,paymentIdentifier,state}\",\n \"templated\" : true\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings{?workspaceIdentifier,projectIdentifier}\",\n \"templated\" : true\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", "code": 200 } ] @@ -568,6 +568,93 @@ } ] }, + { + "id": "meshBuildingBlockDefinitionPostV1", + "name": "/api/meshobjects/meshbuildingblockdefinitions", + "description": "Create a new meshBuildingBlockDefinition with specified configuration and workspace ownership\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshbuildingblockdefinitions", + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblockdefinitions" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "urlencoded": [ + + ] + } + }, + "response": [ + { + "id": "meshBuildingBlockDefinitionPostV1", + "name": "meshBuildingBlockDefinitionPostV1", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshbuildingblockdefinitions", + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblockdefinitions" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "urlencoded": [ + + ] + } + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:48.150361348Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"f6bff195-bf12-450b-bce4-1c813fa59139\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/69738ff0-1eb0-4609-b580-44e9e420325b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=69738ff0-1eb0-4609-b580-44e9e420325b\"\n }\n }\n}", + "code": 201 + } + ] + }, { "id": "meshBuildingBlockDefinitionListV1", "name": "/api/meshobjects/meshbuildingblockdefinitions", @@ -658,15 +745,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshBuildingBlockDefinitions\" : [ {\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:27.345384782Z\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"e4b4931c-cf55-4a73-a08b-7789efc9ad76\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions?workspaceIdentifier=my-workspace&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshBuildingBlockDefinitions\" : [ {\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:47.273824500Z\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"65553088-f3b0-49c0-98dc-a9977fd68b83\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions?workspaceIdentifier=my-workspace&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] }, { - "id": "meshBuildingBlockDefinitionPostV1", - "name": "/api/meshobjects/meshbuildingblockdefinitions", - "description": "Create a new meshBuildingBlockDefinition with specified configuration and workspace ownership\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshBuildingBlockPost", + "name": "/api/meshobjects/meshbuildingblocks", + "description": "Create a new meshBuildingBlock with inputs and parent building block relationships\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -676,27 +763,27 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblockdefinitions", - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblockdefinitions" + "path": "/api/meshobjects/meshbuildingblocks", + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" }, "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "raw": "{\n \"apiVersion\" : \"v1\",\n \"kind\" : \"meshBuildingBlock\",\n \"metadata\" : {\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"11d588ca-efc7-4b4e-b04c-0f927aa412db\"\n }]\n }\n} ", "urlencoded": [ ] @@ -704,32 +791,32 @@ }, "response": [ { - "id": "meshBuildingBlockDefinitionPostV1", - "name": "meshBuildingBlockDefinitionPostV1", + "id": "meshBuildingBlockPost", + "name": "meshBuildingBlockPost", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblockdefinitions", - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblockdefinitions" + "path": "/api/meshobjects/meshbuildingblocks", + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" }, "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "raw": "{\n \"apiVersion\" : \"v1\",\n \"kind\" : \"meshBuildingBlock\",\n \"metadata\" : {\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"11d588ca-efc7-4b4e-b04c-0f927aa412db\"\n }]\n }\n} ", "urlencoded": [ ] @@ -738,58 +825,16 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:28.175870586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"59862206-fc69-4291-9db8-31d9511d650c\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b7380b49-0878-419a-88dc-bf0bed72d977\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b7380b49-0878-419a-88dc-bf0bed72d977\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"3fd3d15b-5514-4a0f-aab5-2614fa30dcac\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:50.778211003Z\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"11d588ca-efc7-4b4e-b04c-0f927aa412db\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/3fd3d15b-5514-4a0f-aab5-2614fa30dcac\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/3fd3d15b-5514-4a0f-aab5-2614fa30dcac/purge\"\n }\n }\n}", "code": 201 - } - ] - }, - { - "id": "meshBuildingBlockPostV2", - "name": "/api/meshobjects/meshbuildingblocks", - "description": "Create a new meshBuildingBlock with specified inputs, parent relationships, and target configuration\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblocks", - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." - }, - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"b205ad0c-6740-4b06-b6cc-647e54914e96\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"e7b0e5ad-0ad7-4b8a-aec0-3f57d7ffa91c\"\n }]\n }\n} ", - "urlencoded": [ - - ] - } - }, - "response": [ { "id": "meshBuildingBlockPostV2", "name": "meshBuildingBlockPostV2", @@ -816,7 +861,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"b205ad0c-6740-4b06-b6cc-647e54914e96\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"e7b0e5ad-0ad7-4b8a-aec0-3f57d7ffa91c\"\n }]\n }\n} ", + "raw": "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"6b78e4b1-2c9d-48f5-9304-d0cd2f702b59\"\n }]\n }\n} ", "urlencoded": [ ] @@ -832,52 +877,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"63d87d66-1991-4976-b0b8-6002ec651544\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.955713604Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"e7b0e5ad-0ad7-4b8a-aec0-3f57d7ffa91c\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/63d87d66-1991-4976-b0b8-6002ec651544\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/63d87d66-1991-4976-b0b8-6002ec651544/purge\"\n }\n }\n}", - "code": 201 - }, - { - "id": "meshBuildingBlockPost", - "name": "meshBuildingBlockPost", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblocks", - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." - }, - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1\",\n \"kind\" : \"meshBuildingBlock\",\n \"metadata\" : {\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [{\n \"key\": \"resourceName\",\n \"value\": \"buildingBlock-for-docs\",\n \"valueType\": \"STRING\"\n }],\n \"parentBuildingBlocks\" : [{\n \"definitionUuid\": \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"buildingBlockUuid\": \"dff6f800-abea-40ee-9783-976918e6090d\"\n }]\n }\n} ", - "urlencoded": [ - - ] - } - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"12dbd12d-eda4-4a55-8000-36f500ea9295\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:30.378030123Z\"\n },\n \"spec\" : {\n \"displayName\" : \"New BuildingBlock\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"dff6f800-abea-40ee-9783-976918e6090d\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/12dbd12d-eda4-4a55-8000-36f500ea9295\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/12dbd12d-eda4-4a55-8000-36f500ea9295/purge\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5629debb-176c-4e15-9f92-e2f7f8886d6e\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:53.441602337Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"6b78e4b1-2c9d-48f5-9304-d0cd2f702b59\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"PENDING\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5629debb-176c-4e15-9f92-e2f7f8886d6e\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5629debb-176c-4e15-9f92-e2f7f8886d6e/purge\"\n }\n }\n}", "code": 201 } ] @@ -1067,7 +1067,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.076297498Z\"\n },\n \"spec\" : {\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.096812698Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.070856495Z\"\n },\n \"spec\" : {\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.091152405Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 }, { @@ -1166,98 +1166,11 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.007073002Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"a2d98a3e-0acb-4b9d-ba85-b110d058ecfd\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.017007172Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshBuildingBlocks\" : [ {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.517761Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"68b6df08-3a6c-443d-a39e-1d065bb13b5f\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"parent block\",\n \"inputs\" : [ ],\n \"parentBuildingBlocks\" : [ ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/68ce5455-2a4a-4a4b-a324-6a6c18cab85a/purge\"\n }\n }\n }, {\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.528351150Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?projectIdentifier=my-project&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] }, - { - "id": "meshCommunicationDefinitionPost", - "name": "/api/meshobjects/meshcommunicationdefinitions", - "description": "Create a new meshCommunicationDefinition with the specified communication details.\nA meshCommunication is attached to a meshCommunicationDefinition, therefore,\na meshCommunicationDefinition must exist before you can create a meshCommunication.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshcommunicationdefinitions", - "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions" - }, - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." - }, - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshCommunicationDefinition\",\n \"spec\": {\n \"communication\": {\n \"title\": \"Important Update\",\n \"message\": \"This is a test communication.\",\n \"type\": \"ACTION_REQUIRED\",\n \"dueDate\": \"2099-04-30\"\n }\n }\n}", - "urlencoded": [ - - ] - } - }, - "response": [ - { - "id": "meshCommunicationDefinitionPost", - "name": "meshCommunicationDefinitionPost", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshcommunicationdefinitions", - "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions" - }, - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." - }, - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshCommunicationDefinition\",\n \"spec\": {\n \"communication\": {\n \"title\": \"Important Update\",\n \"message\": \"This is a test communication.\",\n \"type\": \"ACTION_REQUIRED\",\n \"dueDate\": \"2099-04-30\"\n }\n }\n}", - "urlencoded": [ - - ] - } - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"3c72812e-455d-4d3b-a0c7-925287dfccab\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Important Update\",\n \"message\" : \"This is a test communication.\",\n \"dueDate\" : \"2099-04-30\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/3c72812e-455d-4d3b-a0c7-925287dfccab\"\n }\n }\n}", - "code": 201 - } - ] - }, { "id": "meshCommunicationDefinitionList", "name": "/api/meshobjects/meshcommunicationdefinitions", @@ -1343,7 +1256,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-04\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"49572687-98d7-4989-9d52-b396898de316\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-05\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/49572687-98d7-4989-9d52-b396898de316\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-06\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 5,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-10\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-11\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0c49a952-fd55-4893-aa55-19918203c085\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-12\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/0c49a952-fd55-4893-aa55-19918203c085\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 5,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 }, { @@ -1382,15 +1295,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"49572687-98d7-4989-9d52-b396898de316\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-05\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/49572687-98d7-4989-9d52-b396898de316\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-06\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/ad0de6f7-26c5-4037-8b27-2012451dedc9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 2 Title\",\n \"message\" : \"Message for Communication definition 2. Use [this guide](http://example.com/2) for reference.\",\n \"dueDate\" : \"2025-12-11\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/93f5e104-0361-4f3e-aa7a-c88fdb5faecb\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0c49a952-fd55-4893-aa55-19918203c085\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 3 Title\",\n \"message\" : \"Message for Communication definition 3. Use [this guide](http://example.com/3) for reference.\",\n \"dueDate\" : \"2025-12-12\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/0c49a952-fd55-4893-aa55-19918203c085\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] }, { - "id": "meshCommunicationList", - "name": "/api/meshobjects/meshcommunications", - "description": "List all meshCommunications with optional filtering by definition, status, and type\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshCommunicationDefinitionPost", + "name": "/api/meshobjects/meshcommunicationdefinitions", + "description": "Create a new meshCommunicationDefinition with the specified communication details.\nA meshCommunication is attached to a meshCommunicationDefinition, therefore,\na meshCommunicationDefinition must exist before you can create a meshCommunication.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -1400,105 +1313,77 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshcommunications", - "query": [ - { - "key": "communicationDefinitionUuid", - "disabled": false, - "description": "Filter for communications that belong to the definition with the given uuid." - }, - { - "key": "resolutionStatus", - "disabled": false, - "description": "Filter for communications with the given resolution status (OPEN, RESOLVED)." - }, - { - "key": "communicationType", - "disabled": false, - "description": "Filter for communications where the associated definition has the given communication type (ACTION_REQUIRED, NOTIFICATION)." - }, - { - "key": "page", - "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "size", - "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshcommunications" + "path": "/api/meshobjects/meshcommunicationdefinitions", + "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions" }, - "method": "GET", + "method": "POST", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", "disabled": false, - "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json` as an `Accept` header to be guaranteed the V1 response format of this endpoint. New versions will be added in future." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." + }, + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshCommunicationDefinition\",\n \"spec\": {\n \"communication\": {\n \"title\": \"Important Update\",\n \"message\": \"This is a test communication.\",\n \"type\": \"ACTION_REQUIRED\",\n \"dueDate\": \"2099-04-30\"\n }\n }\n}", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshCommunicationList", - "name": "meshCommunicationList", + "id": "meshCommunicationDefinitionPost", + "name": "meshCommunicationDefinitionPost", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshcommunications", - "query": [ - { - "key": "communicationDefinitionUuid", - "disabled": false, - "description": "Filter for communications that belong to the definition with the given uuid." - }, - { - "key": "resolutionStatus", - "disabled": false, - "description": "Filter for communications with the given resolution status (OPEN, RESOLVED)." - }, - { - "key": "communicationType", - "disabled": false, - "description": "Filter for communications where the associated definition has the given communication type (ACTION_REQUIRED, NOTIFICATION)." - }, - { - "key": "page", - "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "size", - "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshcommunications" + "path": "/api/meshobjects/meshcommunicationdefinitions", + "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions" }, - "method": "GET", + "method": "POST", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", "disabled": false, - "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json` as an `Accept` header to be guaranteed the V1 response format of this endpoint. New versions will be added in future." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." + }, + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshCommunicationDefinition\",\n \"spec\": {\n \"communication\": {\n \"title\": \"Important Update\",\n \"message\": \"This is a test communication.\",\n \"type\": \"ACTION_REQUIRED\",\n \"dueDate\": \"2099-04-30\"\n }\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=9758d157-eefe-4a5c-bf65-5f7d28b3271c&resolutionStatus=OPEN&communicationType=ACTION_REQUIRED&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", - "code": 200 + "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"6e8a9609-3fdf-41d3-9b2b-3ffb8181496b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Important Update\",\n \"message\" : \"This is a test communication.\",\n \"dueDate\" : \"2099-04-30\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/6e8a9609-3fdf-41d3-9b2b-3ffb8181496b\"\n }\n }\n}", + "code": 201 } ] }, @@ -1535,7 +1420,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", + "raw": "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", "urlencoded": [ ] @@ -1568,7 +1453,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", + "raw": "{\n \"kind\": \"meshCommunication\",\n \"apiVersion\": \"v1-preview\",\n \"spec\": {\n \"targetMeshObjectRef\": {\n \"kind\": \"meshWorkspace\",\n \"name\": \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\": {\n \"uuid\": \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", "urlencoded": [ ] @@ -1584,15 +1469,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n}", "code": 201 } ] }, { - "id": "meshEventLogList", - "name": "/api/meshobjects/mesheventlogs", - "description": "Provides a paged list of meshEventLogs. This endpoint allows you to retrieve event logs\nfrom meshStack, which provide an audit trail of actions and changes within your workspaces.\n\nEvent logs are read-only and are automatically created by meshStack when significant actions\noccur, such as workspace creation, user assignments, or configuration changes.\n\n**Access Control:**\n- Admin users can access event logs across all workspaces\n- Regular users can only access event logs from their own workspace\n\n**Filtering:**\nYou can filter event logs by time range, event type, workspace, author, and text searches\non title and description fields.\n\nWhen filtering by time range using the `from` and `until` parameters, keep in mind that\nthe `until` timestamp is exclusive. This means only event logs created strictly before\nthe `until` timestamp are included in the results. For example, to retrieve all events\nfrom a specific day (e.g., May 29, 2025 UTC), set `from=2025-05-29T00:00:00Z` and\n`until=2025-05-30T00:00:00Z`. Avoid using values like `2025-05-29T23:59:59Z` for `until`,\nas this would exclude events created in the final milliseconds before midnight.\n\n
\nThe `title` filter is suitable to filter events by their category. Click here for a list of all possible `title` values.\n- API Key Changed\n- API Key Created\n- API Key Deleted\n- API User Changed\n- API User Created\n- API User Deleted\n- API User Password Rotated\n- Advisory Created\n- Advisory Resolved\n- Building Block Created\n- Building Block Definition Created\n- Building Block Definition Deleted\n- Building Block Definition Deprecated\n- Building Block Definition Marked For Deletion\n- Building Block Definition Marketplace Publication Request\n- Building Block Definition Marketplace Publication Request Approved\n- Building Block Definition Marketplace Publication Request Rejected\n- Building Block Definition Modified\n- Building Block Definition Ownership Transferred\n- Building Block Definition Reactivated\n- Building Block Definition Tags Edited\n- Building Block Definition Version Added\n- Building Block Definition Version Dependencies Modified\n- Building Block Definition Version Modified\n- Building Block Definition Version Published\n- Building Block Definition Version Released\n- Building Block Deleted\n- Building Block Run Requested\n- Building Block Runner Changed\n- Building Block Runner Created\n- Building Block Runner Deleted\n- Communication Created\n- Communication Definition Created\n- Communication Definition Deleted\n- Communication Definition Updated\n- Communication Deleted\n- Communication Resolved\n- Integration Changed\n- Integration Created\n- Integration Deleted\n- Landing Zone Configuration Changed\n- Landing Zone Created\n- Landing Zone Deleted\n- Landing Zone Name Changed\n- Landing Zone Settings Changed\n- Landing Zone Tags Changed\n- Payment Method Changed\n- Payment Method Created\n- Payment Method Deleted\n- Pipeline Changed\n- Platform Configuration Changed\n- Platform Created\n- Platform Deactivated\n- Platform Deleted\n- Platform Name Changed\n- Platform Ownership Transferred\n- Platform Price Changed\n- Platform Publication Request Approved\n- Platform Publication Request Rejected\n- Platform Publication Request Submitted\n- Platform Quota Added\n- Platform Quota Changed\n- Platform Quota Removed\n- Platform Reactivated\n- Platform Settings Changed\n- Policy Changed\n- Policy Created\n- Policy Deleted\n- Project Created\n- Project Deleted\n- Project Deletion Rejected\n- Project Deletion Request Submitted\n- Project Group Access Request Approved\n- Project Group Access Request Rejected\n- Project Group Access Request Submitted\n- Project Group Role Added\n- Project Group Role Changed\n- Project Group Role Expiration Date Changed\n- Project Group Role Removed\n- Project Name Changed\n- Project Payment Method Added\n- Project Payment Method Changed\n- Project Role Changed\n- Project Role Created\n- Project Role Deleted\n- Project Tags Changed\n- Project User Access Request Approved\n- Project User Access Request Rejected\n- Project User Access Request Submitted\n- Project User Role Added\n- Project User Role Changed\n- Project User Role Expiration Date Changed\n- Project User Role Removed\n- System Prompt Changed\n- System Prompt Created\n- System Prompt Deleted\n- Tag Definition Changed\n- Tag Definition Created\n- Tag Definition Deleted\n- Tenant Created\n- Tenant Deleted\n- Tenant Deletion Request Approved\n- Tenant Deletion Request Rejected\n- Tenant Deletion Request Submitted\n- Tenant Moved\n- Tenant Purge Request Submitted\n- Tenant Purged\n- User Changed\n- User Created\n- User Deleted\n- User Disabled\n- User Enabled\n- Workspace Created\n- Workspace Deleted\n- Workspace Group Access Request Approved\n- Workspace Group Access Request Rejected\n- Workspace Group Access Request Submitted\n- Workspace Group Members Added\n- Workspace Group Members Removed\n- Workspace Group Role Added\n- Workspace Group Role Changed\n- Workspace Group Role Expiration Date Changed\n- Workspace Group Role Removed\n- Workspace Name Changed\n- Workspace Quota Changed\n- Workspace Tags Changed\n- Workspace User Access Request Approved\n- Workspace User Access Request Rejected\n- Workspace User Access Request Submitted\n- Workspace User Role Added\n- Workspace User Role Changed\n- Workspace User Role Expiration Date Changed\n- Workspace User Role Removed\n
\n\n:::tip[Limitation: Author Information]\n\nAuthor information on Event Logs is only tracked reliably for events created in Mid December 2025 or\nlater. For these events, the `authorType` and `authorIdentifier` query parameter works as you would\nexpect. For older events, the following limitations apply:\n\n1. In the response payload, these events have their `author.authorType` set to `Unknown`.\n2. The `authorType` query parameter must be left unspecified to obtain these events (do not set it\n to `Unknown`.\n3. There are inconsistencies regarding the `authorIdentifier`. For example, the `authorIdentifier`\n sometimes corresponds to an Api Key UUID and sometimes to an Api Key name.\n\nWe are planning to migrate historical event logs to improve author filtering and provide\naccurate author information for all events in the future.\n\n:::\n\n**Authentication:** This endpoint supports multiple authentication methods: API Key authentication or API User authentication.", + "id": "meshCommunicationList", + "name": "/api/meshobjects/meshcommunications", + "description": "List all meshCommunications with optional filtering by definition, status, and type\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -1602,25 +1487,140 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/mesheventlogs", + "path": "/api/meshobjects/meshcommunications", "query": [ { - "key": "from", + "key": "communicationDefinitionUuid", "disabled": false, - "description": "Filter for event logs created on or after this timestamp (ISO-8601 format). (optional)" + "description": "Filter for communications that belong to the definition with the given uuid." }, { - "key": "until", + "key": "resolutionStatus", "disabled": false, - "description": "Filter for event logs created *before* this timestamp (ISO-8601 format). event logs exactly at this timestamp will *not* be included. (optional)" + "description": "Filter for communications with the given resolution status (OPEN, RESOLVED)." }, { - "key": "title", + "key": "communicationType", "disabled": false, - "description": "Filter for event logs with a title containing this text. All possible values are shown at the top of this page. (optional)" + "description": "Filter for communications where the associated definition has the given communication type (ACTION_REQUIRED, NOTIFICATION)." }, { - "key": "description", + "key": "page", + "disabled": false, + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "size", + "disabled": false, + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshcommunications" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "disabled": false, + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json` as an `Accept` header to be guaranteed the V1 response format of this endpoint. New versions will be added in future." + } + ] + }, + "response": [ + { + "id": "meshCommunicationList", + "name": "meshCommunicationList", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshcommunications", + "query": [ + { + "key": "communicationDefinitionUuid", + "disabled": false, + "description": "Filter for communications that belong to the definition with the given uuid." + }, + { + "key": "resolutionStatus", + "disabled": false, + "description": "Filter for communications with the given resolution status (OPEN, RESOLVED)." + }, + { + "key": "communicationType", + "disabled": false, + "description": "Filter for communications where the associated definition has the given communication type (ACTION_REQUIRED, NOTIFICATION)." + }, + { + "key": "page", + "disabled": false, + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "size", + "disabled": false, + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshcommunications" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "disabled": false, + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json` as an `Accept` header to be guaranteed the V1 response format of this endpoint. New versions will be added in future." + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=eb662d24-2525-4691-a202-a5e2b52fd81c&resolutionStatus=OPEN&communicationType=ACTION_REQUIRED&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "code": 200 + } + ] + }, + { + "id": "meshEventLogList", + "name": "/api/meshobjects/mesheventlogs", + "description": "Provides a paged list of meshEventLogs. This endpoint allows you to retrieve event logs\nfrom meshStack, which provide an audit trail of actions and changes within your workspaces.\n\nEvent logs are read-only and are automatically created by meshStack when significant actions\noccur, such as workspace creation, user assignments, or configuration changes.\n\n**Access Control:**\n- Admin users can access event logs across all workspaces\n- Regular users can only access event logs from their own workspace\n\n**Filtering:**\nYou can filter event logs by time range, event type, workspace, author, and text searches\non title and description fields.\n\nWhen filtering by time range using the `from` and `until` parameters, keep in mind that\nthe `until` timestamp is exclusive. This means only event logs created strictly before\nthe `until` timestamp are included in the results. For example, to retrieve all events\nfrom a specific day (e.g., May 29, 2025 UTC), set `from=2025-05-29T00:00:00Z` and\n`until=2025-05-30T00:00:00Z`. Avoid using values like `2025-05-29T23:59:59Z` for `until`,\nas this would exclude events created in the final milliseconds before midnight.\n\n
\nThe `title` filter is suitable to filter events by their category. Click here for a list of all possible `title` values.\n- API Key Changed\n- API Key Created\n- API Key Deleted\n- API User Changed\n- API User Created\n- API User Deleted\n- API User Password Rotated\n- Advisory Created\n- Advisory Resolved\n- Building Block Created\n- Building Block Definition Created\n- Building Block Definition Deleted\n- Building Block Definition Deprecated\n- Building Block Definition Marked For Deletion\n- Building Block Definition Marketplace Publication Request\n- Building Block Definition Marketplace Publication Request Approved\n- Building Block Definition Marketplace Publication Request Rejected\n- Building Block Definition Modified\n- Building Block Definition Ownership Transferred\n- Building Block Definition Reactivated\n- Building Block Definition Tags Edited\n- Building Block Definition Version Added\n- Building Block Definition Version Dependencies Modified\n- Building Block Definition Version Modified\n- Building Block Definition Version Published\n- Building Block Definition Version Released\n- Building Block Deleted\n- Building Block Run Requested\n- Building Block Runner Changed\n- Building Block Runner Created\n- Building Block Runner Deleted\n- Communication Created\n- Communication Definition Created\n- Communication Definition Deleted\n- Communication Definition Updated\n- Communication Deleted\n- Communication Resolved\n- Integration Changed\n- Integration Created\n- Integration Deleted\n- Landing Zone Configuration Changed\n- Landing Zone Created\n- Landing Zone Deleted\n- Landing Zone Name Changed\n- Landing Zone Settings Changed\n- Landing Zone Tags Changed\n- Payment Method Changed\n- Payment Method Created\n- Payment Method Deleted\n- Pipeline Changed\n- Platform Configuration Changed\n- Platform Created\n- Platform Deactivated\n- Platform Deleted\n- Platform Name Changed\n- Platform Ownership Transferred\n- Platform Price Changed\n- Platform Publication Request Approved\n- Platform Publication Request Rejected\n- Platform Publication Request Submitted\n- Platform Quota Added\n- Platform Quota Changed\n- Platform Quota Removed\n- Platform Reactivated\n- Platform Settings Changed\n- Policy Changed\n- Policy Created\n- Policy Deleted\n- Project Created\n- Project Deleted\n- Project Deletion Rejected\n- Project Deletion Request Submitted\n- Project Group Access Request Approved\n- Project Group Access Request Rejected\n- Project Group Access Request Submitted\n- Project Group Role Added\n- Project Group Role Changed\n- Project Group Role Expiration Date Changed\n- Project Group Role Removed\n- Project Name Changed\n- Project Payment Method Added\n- Project Payment Method Changed\n- Project Role Changed\n- Project Role Created\n- Project Role Deleted\n- Project Tags Changed\n- Project User Access Request Approved\n- Project User Access Request Rejected\n- Project User Access Request Submitted\n- Project User Role Added\n- Project User Role Changed\n- Project User Role Expiration Date Changed\n- Project User Role Removed\n- System Prompt Changed\n- System Prompt Created\n- System Prompt Deleted\n- Tag Definition Changed\n- Tag Definition Created\n- Tag Definition Deleted\n- Tenant Created\n- Tenant Deleted\n- Tenant Deletion Request Approved\n- Tenant Deletion Request Rejected\n- Tenant Deletion Request Submitted\n- Tenant Moved\n- Tenant Purge Request Submitted\n- Tenant Purged\n- User Changed\n- User Created\n- User Deleted\n- User Disabled\n- User Enabled\n- Workspace Created\n- Workspace Deleted\n- Workspace Group Access Request Approved\n- Workspace Group Access Request Rejected\n- Workspace Group Access Request Submitted\n- Workspace Group Members Added\n- Workspace Group Members Removed\n- Workspace Group Role Added\n- Workspace Group Role Changed\n- Workspace Group Role Expiration Date Changed\n- Workspace Group Role Removed\n- Workspace Name Changed\n- Workspace Quota Changed\n- Workspace Tags Changed\n- Workspace User Access Request Approved\n- Workspace User Access Request Rejected\n- Workspace User Access Request Submitted\n- Workspace User Role Added\n- Workspace User Role Changed\n- Workspace User Role Expiration Date Changed\n- Workspace User Role Removed\n
\n\n:::tip[Limitation: Author Information]\n\nAuthor information on Event Logs is only tracked reliably for events created in Mid December 2025 or\nlater. For these events, the `authorType` and `authorIdentifier` query parameter works as you would\nexpect. For older events, the following limitations apply:\n\n1. In the response payload, these events have their `author.authorType` set to `Unknown`.\n2. The `authorType` query parameter must be left unspecified to obtain these events (do not set it\n to `Unknown`.\n3. There are inconsistencies regarding the `authorIdentifier`. For example, the `authorIdentifier`\n sometimes corresponds to an Api Key UUID and sometimes to an Api Key name.\n\nWe are planning to migrate historical event logs to improve author filtering and provide\naccurate author information for all events in the future.\n\n:::\n\n**Authentication:** This endpoint supports multiple authentication methods: API Key authentication or API User authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/mesheventlogs", + "query": [ + { + "key": "from", + "disabled": false, + "description": "Filter for event logs created on or after this timestamp (ISO-8601 format). (optional)" + }, + { + "key": "until", + "disabled": false, + "description": "Filter for event logs created *before* this timestamp (ISO-8601 format). event logs exactly at this timestamp will *not* be included. (optional)" + }, + { + "key": "title", + "disabled": false, + "description": "Filter for event logs with a title containing this text. All possible values are shown at the top of this page. (optional)" + }, + { + "key": "description", "disabled": false, "description": "Filter for event logs with a description containing this text. (optional)" }, @@ -1753,7 +1753,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"055b1f56-4768-472b-908e-d0f6d994c185\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/055b1f56-4768-472b-908e-d0f6d994c185\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f89b35b1-07a4-424d-87e1-b9a4cf751bc8\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/f89b35b1-07a4-424d-87e1-b9a4cf751bc8\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs?workspaceName=my-workspace&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -1791,7 +1791,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n }\n }\n }\n }\n}", "urlencoded": [ ] @@ -1824,7 +1824,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My Azure DevOps Integration\",\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n }\n }\n }\n }\n}", "urlencoded": [ ] @@ -1840,7 +1840,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}", "code": 201 }, { @@ -1869,7 +1869,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitHub Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n },\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\"\n }\n }\n }\n}", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitHub Integration\",\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n }\n }\n }\n }\n}", "urlencoded": [ ] @@ -1885,7 +1885,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}", "code": 201 }, { @@ -1914,7 +1914,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitLab Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n },\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\"\n }\n }\n }\n}", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"My GitLab Integration\",\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n }\n }\n }\n }\n}", "urlencoded": [ ] @@ -1930,7 +1930,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}", "code": 201 } ] @@ -1938,7 +1938,7 @@ { "id": "meshIntegration-List", "name": "/api/meshobjects/meshintegrations", - "description": "List all integrations accessible by the user with optional pagination and filtering.\n\nIntegrations enable building blocks to interact with external systems like GitHub, GitLab, \nand Azure DevOps for pipeline automation and repository management.\n\nUsers can only see integrations that belong to their workspace (workspace-scoped access).\nPlatform administrators can see all integrations across all workspaces.\n\nThe response includes pagination information and HAL links for navigation.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "List all integrations accessible by the user with optional pagination and filtering.\n\nIntegrations enable building blocks to interact with external systems like GitHub, GitLab, \nand Azure DevOps for pipeline automation and repository management.\n\nmeshStack provides two built-in integrations:\n- **meshStack Replicator (Built-in)**: System integration for the meshStack Replicator component\n- **meshStack Metering (Built-in)**: System integration for the meshStack Metering/Kraken component\n\nBuilt-in integrations are:\n- Read-only (cannot be created, updated, or deleted via the API)\n- Visible to all users with the list permission for integrations\n- Include a `status` field with Workload Identity Federation (WIF) information for cloud provider authentication\n\nRegular (user-created) integrations do not provide the `WIF` information and can be fully managed via the API.\n\nUsers can only see integrations that belong to their workspace (workspace-scoped access) plus the built-in integrations.\nPlatform administrators can see all integrations across all workspaces.\n\nThe response includes pagination information and HAL links for navigation.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -1973,7 +1973,7 @@ { "key": "type", "disabled": false, - "description": "Filter integrations by type. Valid values: GITLAB, GITHUB, AZURE_DEVOPS" + "description": "Filter integrations by type. This includes user-created integration types as well as built-in integration types.\n\nAll available types: GITLAB, GITHUB, AZURE_DEVOPS, REPLICATOR, METERING" } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations" @@ -2020,7 +2020,7 @@ { "key": "type", "disabled": false, - "description": "Filter integrations by type. Valid values: GITLAB, GITHUB, AZURE_DEVOPS" + "description": "Filter integrations by type. This includes user-created integration types as well as built-in integration types.\n\nAll available types: GITLAB, GITHUB, AZURE_DEVOPS, REPLICATOR, METERING" } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations" @@ -2045,13 +2045,13 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshIntegrations\" : [ {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 3,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshIntegrations\" : [ {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Replicator (Built-in)\",\n \"config\" : {\n \"type\" : \"replicator\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:replicator\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Metering (Built-in)\",\n \"config\" : {\n \"type\" : \"metering\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:kraken-worker\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n }, {\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 5,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] }, { - "id": "meshLandingZone-Post-aks", + "id": "meshLandingZone-Post-azurerg", "name": "/api/meshobjects/meshlandingzones", "description": "Create a new meshLandingZone\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ @@ -2083,7 +2083,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aks\",\n \"description\" : \"A new aks landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azurerg\",\n \"description\" : \"A new azurerg landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded": [ ] @@ -2091,8 +2091,8 @@ }, "response": [ { - "id": "meshLandingZone-Post-aks", - "name": "meshLandingZone-Post-aks", + "id": "meshLandingZone-Post-azurerg", + "name": "meshLandingZone-Post-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2116,7 +2116,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aks\",\n \"description\" : \"A new aks landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azurerg\",\n \"description\" : \"A new azurerg landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded": [ ] @@ -2132,12 +2132,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", "code": 201 }, { - "id": "meshLandingZone-Post-azurerg", - "name": "meshLandingZone-Post-azurerg", + "id": "meshLandingZone-Post-aks", + "name": "meshLandingZone-Post-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2161,7 +2161,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azurerg\",\n \"description\" : \"A new azurerg landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aks\",\n \"description\" : \"A new aks landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", "urlencoded": [ ] @@ -2177,12 +2177,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", "code": 201 }, { - "id": "meshLandingZone-Post-azure", - "name": "meshLandingZone-Post-azure", + "id": "meshLandingZone-Post-aws", + "name": "meshLandingZone-Post-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2206,7 +2206,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azure\",\n \"description\" : \"A new azure landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aws\",\n \"description\" : \"A new aws landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded": [ ] @@ -2222,12 +2222,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code": 201 }, { - "id": "meshLandingZone-Post-gcp", - "name": "meshLandingZone-Post-gcp", + "id": "meshLandingZone-Post-kubernetes", + "name": "meshLandingZone-Post-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2251,7 +2251,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone gcp\",\n \"description\" : \"A new gcp landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", "urlencoded": [ ] @@ -2267,12 +2267,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", "code": 201 }, { - "id": "meshLandingZone-Post-aws", - "name": "meshLandingZone-Post-aws", + "id": "meshLandingZone-Post-openshift", + "name": "meshLandingZone-Post-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2296,7 +2296,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone aws\",\n \"description\" : \"A new aws landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone openshift\",\n \"description\" : \"A new openshift landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", "urlencoded": [ ] @@ -2312,12 +2312,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", "code": 201 }, { - "id": "meshLandingZone-Post-kubernetes", - "name": "meshLandingZone-Post-kubernetes", + "id": "meshLandingZone-Post-azure", + "name": "meshLandingZone-Post-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2341,7 +2341,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone azure\",\n \"description\" : \"A new azure landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded": [ ] @@ -2357,12 +2357,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", "code": 201 }, { - "id": "meshLandingZone-Post-openshift", - "name": "meshLandingZone-Post-openshift", + "id": "meshLandingZone-Post-gcp", + "name": "meshLandingZone-Post-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2386,7 +2386,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone openshift\",\n \"description\" : \"A new openshift landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n } ]\n }\n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"New Landing Zone gcp\",\n \"description\" : \"A new gcp landing zone for testing\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", "urlencoded": [ ] @@ -2402,7 +2402,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", "code": 201 } ] @@ -2487,11 +2487,98 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aks landing zone for testing\",\n \"displayName\" : \"New Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new aws landing zone for testing\",\n \"displayName\" : \"New Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azure landing zone for testing\",\n \"displayName\" : \"New Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n }, {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : false,\n \"automateDeletionReplication\" : false,\n \"infoLink\" : \"https://example.com/info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 4\n }, {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones?page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] }, + { + "id": "meshLocation-Post", + "name": "/api/meshobjects/meshlocations", + "description": "Create a new meshLocation. This endpoint requires save permissions for platforms (there is no dedicated permission for locations as platforms and locations are closely related).\n\nLocations represent geographical or logical groupings of platform instances and can be used\nto organize cloud platforms by region, data center, or any other logical grouping.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshlocations", + "raw": "{{baseUrl}}/api/meshobjects/meshlocations" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"new-location\"\n },\n \"spec\": {\n \"displayName\": \"New Location\",\n \"description\": \"A new location created via API\"\n }\n}", + "urlencoded": [ + + ] + } + }, + "response": [ + { + "id": "meshLocation-Post", + "name": "meshLocation-Post", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshlocations", + "raw": "{{baseUrl}}/api/meshobjects/meshlocations" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"new-location\"\n },\n \"spec\": {\n \"displayName\": \"New Location\",\n \"description\": \"A new location created via API\"\n }\n}", + "urlencoded": [ + + ] + } + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7b8db13e-4135-473e-a649-d366d27fca11\",\n \"name\" : \"new-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New Location\",\n \"description\" : \"A new location created via API\"\n },\n \"status\" : {\n \"isPublic\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/new-location\"\n }\n }\n}", + "code": 201 + } + ] + }, { "id": "meshLocation-List", "name": "/api/meshobjects/meshlocations", @@ -2582,15 +2669,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshLocations\" : [ {\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations?displayName=My%20Location\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshLocations\" : [ {\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations?displayName=My%20Location\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] }, { - "id": "meshLocation-Post", - "name": "/api/meshobjects/meshlocations", - "description": "Create a new meshLocation. This endpoint requires save permissions for platforms (there is no dedicated permission for locations as platforms and locations are closely related).\n\nLocations represent geographical or logical groupings of platform instances and can be used\nto organize cloud platforms by region, data center, or any other logical grouping.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshPaymentMethodListV2", + "name": "/api/meshobjects/meshpaymentmethods", + "description": "List all meshPaymentMethods with pagination support. Deleted meshPaymentMethods are not included in the response.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -2600,77 +2687,85 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshlocations", - "raw": "{{baseUrl}}/api/meshobjects/meshlocations" + "path": "/api/meshobjects/meshpaymentmethods", + "query": [ + { + "key": "workspaceIdentifier", + "disabled": false, + "description": "Filter for meshPaymentMethods that belong to the meshWorkspace with given identifier (optional). Note: the server will ignore this filter when the request principal does not have permission to read payment methods in any workspace." + }, + { + "key": "page", + "disabled": false, + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "size", + "disabled": false, + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods" }, - "method": "POST", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"new-location\"\n },\n \"spec\": {\n \"displayName\": \"New Location\",\n \"description\": \"A new location created via API\"\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshLocation-Post", - "name": "meshLocation-Post", + "id": "meshPaymentMethodListV2", + "name": "meshPaymentMethodListV2", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshlocations", - "raw": "{{baseUrl}}/api/meshobjects/meshlocations" + "path": "/api/meshobjects/meshpaymentmethods", + "query": [ + { + "key": "workspaceIdentifier", + "disabled": false, + "description": "Filter for meshPaymentMethods that belong to the meshWorkspace with given identifier (optional). Note: the server will ignore this filter when the request principal does not have permission to read payment methods in any workspace." + }, + { + "key": "page", + "disabled": false, + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "size", + "disabled": false, + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods" }, - "method": "POST", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"new-location\"\n },\n \"spec\": {\n \"displayName\": \"New Location\",\n \"description\": \"A new location created via API\"\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9de4799c-cb6d-43ea-95a1-9ee6473d3ee5\",\n \"name\" : \"new-location\"\n },\n \"spec\" : {\n \"displayName\" : \"New Location\",\n \"description\" : \"A new location created via API\"\n },\n \"status\" : {\n \"isPublic\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/new-location\"\n }\n }\n}", - "code": 201 + "body": "{\n \"_embedded\" : {\n \"meshPaymentMethods\" : [ {\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-payment-method-1\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Payment Method 1\",\n \"tags\" : { },\n \"amount\" : 1000\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment-method-1\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=test-payment-method-1\"\n }\n }\n }, {\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-payment-method-2\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Payment Method 2\",\n \"tags\" : { },\n \"amount\" : 1000\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment-method-2\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=test-payment-method-2\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=payment-workspace&page=0&size=2&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=payment-workspace&page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=payment-workspace&page=1&size=2&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=payment-workspace&page=1&size=2&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 3,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "code": 200 } ] }, @@ -2762,102 +2857,7 @@ ] }, { - "id": "meshPaymentMethodListV2", - "name": "/api/meshobjects/meshpaymentmethods", - "description": "List all meshPaymentMethods with pagination support. Deleted meshPaymentMethods are not included in the response.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshpaymentmethods", - "query": [ - { - "key": "workspaceIdentifier", - "disabled": false, - "description": "Filter for meshPaymentMethods that belong to the meshWorkspace with given identifier (optional). Note: the server will ignore this filter when the request principal does not have permission to read payment methods in any workspace." - }, - { - "key": "page", - "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "size", - "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods" - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." - } - ] - }, - "response": [ - { - "id": "meshPaymentMethodListV2", - "name": "meshPaymentMethodListV2", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshpaymentmethods", - "query": [ - { - "key": "workspaceIdentifier", - "disabled": false, - "description": "Filter for meshPaymentMethods that belong to the meshWorkspace with given identifier (optional). Note: the server will ignore this filter when the request principal does not have permission to read payment methods in any workspace." - }, - { - "key": "page", - "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "size", - "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods" - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"_embedded\" : {\n \"meshPaymentMethods\" : [ {\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-payment-method-1\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Payment Method 1\",\n \"tags\" : { },\n \"amount\" : 1000\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment-method-1\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=test-payment-method-1\"\n }\n }\n }, {\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-payment-method-2\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Payment Method 2\",\n \"tags\" : { },\n \"amount\" : 1000\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment-method-2\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=test-payment-method-2\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=payment-workspace&page=0&size=2&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=payment-workspace&page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=payment-workspace&page=1&size=2&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=payment-workspace&page=1&size=2&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 3,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", - "code": 200 - } - ] - }, - { - "id": "meshPlatform-Post-V1-azurerg", + "id": "meshPlatform-Post-V1-kubernetes", "name": "/api/meshobjects/meshplatforms", "description": "Create a new platform including its full configuration. The examples show all available configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ @@ -2889,7 +2889,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -2897,8 +2897,8 @@ }, "response": [ { - "id": "meshPlatform-Post-V1-azurerg", - "name": "meshPlatform-Post-V1-azurerg", + "id": "meshPlatform-Post-V1-kubernetes", + "name": "meshPlatform-Post-V1-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2922,7 +2922,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -2938,12 +2938,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V1-openshift", - "name": "meshPlatform-Post-V1-openshift", + "id": "meshPlatform-Post-V1-aks", + "name": "meshPlatform-Post-V1-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2967,7 +2967,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"roleMappings\":{\"admin\":\"admin\",\"member\":\"edit\",\"reader\":\"view\"},\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"*****\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -2983,12 +2983,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V2-aws", - "name": "meshPlatform-Post-V2-aws", + "id": "meshPlatform-Post-V1-azurerg", + "name": "meshPlatform-Post-V1-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2999,20 +2999,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"awsRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"ReaderRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}],\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false},\"metering\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"filter\":\"NONE\",\"reservedInstanceFairChargeback\":false,\"savingsPlanFairChargeback\":false,\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3021,19 +3021,19 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V1-aks", - "name": "meshPlatform-Post-V1-aks", + "id": "meshPlatform-Post-V2-openshift", + "name": "meshPlatform-Post-V2-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3044,20 +3044,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3066,14 +3066,14 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:27135b23908ca4e4d1d7e6cd2496214bb0bc16450f9d714af13359d36df5bb7e\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:da85f516ba791aa9ee4c9d187305fd54e8c847b3623af33a733133f8db83bc99\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { @@ -3102,7 +3102,7 @@ ], "body": { "mode": "raw", - "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks\",\n \"description\": \"test-platform-aks\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3118,12 +3118,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a1f72da6be7aaaedaa39b63860dc190a56fd64d94f8d5bc4a80b698e8b309230\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:5d7406fc2a2264d7ebb154517cf272e5d8f321afa904674014aac1b03be19a0f\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:67961182f8b064537dca0b39318b9343008cec2a261fc7bf7639db4613c37a91\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V1-gcp", - "name": "meshPlatform-Post-V1-gcp", + "id": "meshPlatform-Post-V2-gcp", + "name": "meshPlatform-Post-V2-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3134,20 +3134,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"roleMappings\":{\"admin\":\"roles/owner\",\"member\":\"roles/editor\",\"reader\":\"roles/viewer\"},\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3156,19 +3156,19 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:c388b5b964d03e444aa285be9e2a2d2fea916835636c772a814c7066ebbf4a63\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1937bbff04ba7d18f8bb151ecae3c5ea101ab3fc71f2d89b29ae5dd195ffe8dc\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V2-gcp", - "name": "meshPlatform-Post-V2-gcp", + "id": "meshPlatform-Post-V1-openshift", + "name": "meshPlatform-Post-V1-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3179,20 +3179,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"gcpRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/owner\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/editor\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/viewer\"}],\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false},\"metering\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"bigqueryTable\":\"project.dataset.table\",\"bigqueryTableForCarbonFootprint\":\"project.dataset.carbon_table\",\"carbonFootprintDataCollectionStartMonth\":\"2023-01\",\"partitionTimeColumn\":\"export_time\",\"additionalFilter\":\"project.id != 'excluded-project'\",\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3201,19 +3201,19 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V2-azure", - "name": "meshPlatform-Post-V2-azure", + "id": "meshPlatform-Post-V1-azure", + "name": "meshPlatform-Post-V1-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3224,20 +3224,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"azureRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"}},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"}},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}}],\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true},\"metering\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3246,19 +3246,19 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V1-kubernetes", - "name": "meshPlatform-Post-V1-kubernetes", + "id": "meshPlatform-Post-V2-aws", + "name": "meshPlatform-Post-V2-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3269,20 +3269,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"plaintext\" : \"sso-access-token-value\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3291,19 +3291,19 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:2776d45cbb61bd0a228a5c4c0c437f2d4cbb4caa3fa7c87d4a248a3c995f5481\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:1c9240a05e5aa0c1b5119968c64df5e03239166d5ded8a6078d4c6ed3faaafae\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:8d2d90614f1a7c0015d4d088d63a12816330a2f45fdcf80353ed0a1b0fecce15\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V2-openshift", - "name": "meshPlatform-Post-V2-openshift", + "id": "meshPlatform-Post-V1-gcp", + "name": "meshPlatform-Post-V1-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3314,20 +3314,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift\",\n \"description\": \"test-platform-openshift\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"openshiftRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"admin\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"edit\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"view\"}],\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}},\"metering\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp\",\n \"description\": \"test-platform-gcp\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"*****\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3336,19 +3336,19 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V2-kubernetes", - "name": "meshPlatform-Post-V2-kubernetes", + "id": "meshPlatform-Post-V2-azure", + "name": "meshPlatform-Post-V2-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3372,7 +3372,7 @@ ], "body": { "mode": "raw", - "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3388,12 +3388,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:4650f4aba4b817cf0ae3dd1238839b15ba81e7a04be745a7c5ddf28d10dbe411\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:159df31e7949bee5c5792d00ada5de8a3f603c7ecea6e64433f16e38e06a265d\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4514fe9857aa65a9241c491e058729a1a1b43cf05048294e29ad9e8098934de\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V1-aws", - "name": "meshPlatform-Post-V1-aws", + "id": "meshPlatform-Post-V2-kubernetes", + "name": "meshPlatform-Post-V2-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3404,20 +3404,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"roleMappings\":{\"admin\":{\"awsRoleName\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},\"member\":{\"awsRoleName\":\"MemberRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}},\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes\",\n \"description\": \"test-platform-kubernetes\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores\",\n \"description\": \"Maximum number of CPU cores\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 100,\n \"autoApprovalThreshold\": 50\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory\",\n \"description\": \"Maximum memory allocation\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 500,\n \"autoApprovalThreshold\": 250\n}],\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3426,19 +3426,19 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:54e2ab41e5df6d248233086f225d1cb3026afe1076c95f55d54688cb575554a7\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:591f84d517295002cedad1f76e550f48e27388275faf699cb3bec6d721fe0d26\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V1-azure", - "name": "meshPlatform-Post-V1-azure", + "id": "meshPlatform-Post-V2-azurerg", + "name": "meshPlatform-Post-V2-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3449,20 +3449,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure\",\n \"description\": \"test-platform-azure\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"roleMappings\":{\"admin\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"},\"member\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"},\"reader\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}},\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3471,19 +3471,19 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:da6cd6c64a1a0e762673381a3de53ba2e8d3b660e9fcc82847aa5d386a976149\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatform-Post-V2-azurerg", - "name": "meshPlatform-Post-V2-azurerg", + "id": "meshPlatform-Post-V1-aws", + "name": "meshPlatform-Post-V1-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3494,20 +3494,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg\",\n \"description\": \"test-platform-azurerg\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws\",\n \"description\": \"test-platform-aws\",\n \"endpoint\": \"\",\n \"supportUrl\": \"\",\n \"documentationUrl\": \"\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"*****\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"sso-access-token-value\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n}\n }\n }", "urlencoded": [ ] @@ -3516,20 +3516,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 } ] }, { - "id": "meshPlatform-List-V2", + "id": "meshPlatform-List-V1", "name": "/api/meshobjects/meshplatforms", "description": "List all meshPlatforms with pagination support. This example shows a paginated list response containing platforms of various types. Each platform in the list has the same structure as documented in the GET single platform response.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ @@ -3565,16 +3565,16 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ] }, "response": [ { - "id": "meshPlatform-List-V2", - "name": "meshPlatform-List-V2", + "id": "meshPlatform-List-V1", + "name": "meshPlatform-List-V1", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3602,28 +3602,28 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 }, { - "id": "meshPlatform-List-V1", - "name": "meshPlatform-List-V1", + "id": "meshPlatform-List-V2", + "name": "meshPlatform-List-V2", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3651,128 +3651,23 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", - "code": 200 - } - ] - }, - { - "id": "meshPlatformTypeListV1", - "name": "/api/meshobjects/meshplatformtypes", - "description": "List all meshPlatformTypes with optional pagination and filtering.\n\nPlatform types define the available cloud platform technologies that can be used within meshStack.\nThis includes both built-in platform types (AWS, Azure, GCP, etc.) and custom platform types.\n\nYou can optionally filter the results by category and/or lifecycle status.\nFor example, use `category=CUSTOM` to retrieve only custom platform types, \nor `lifecycleStatus=ACTIVE` to retrieve only active platform types.\nBoth filters can be combined to further refine the results.\n\nNo specific permission is required to read meshPlatformTypes \u2013 every API Key can list all available meshPlatformTypes.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshplatformtypes", - "query": [ - { - "key": "page", - "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "size", - "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "category", - "disabled": false, - "description": "Optional filter by platform category. Only platform types matching the specified category will be returned. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." - }, - { - "key": "lifecycleStatus", - "disabled": false, - "description": "Optional filter by lifecycle status. Only platform types matching the specified lifecycle status will be returned. Possible values: ACTIVE, DEACTIVATED." - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshplatformtypes" - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." - } - ] - }, - "response": [ - { - "id": "meshPlatformTypeListV1", - "name": "meshPlatformTypeListV1", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshplatformtypes", - "query": [ - { - "key": "page", - "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "size", - "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "category", - "disabled": false, - "description": "Optional filter by platform category. Only platform types matching the specified category will be returned. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." - }, - { - "key": "lifecycleStatus", - "disabled": false, - "description": "Optional filter by lifecycle status. Only platform types matching the specified lifecycle status will be returned. Possible values: ACTIVE, DEACTIVATED." - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshplatformtypes" - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshPlatformTypes\" : [ {\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes?category=CUSTOM&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:16e9a895bf1cf8a122fd5204acbbaf0f5766fd85855002f20ebe350f40a28458\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:28b4d3aea334447442394eb4e77122e397318b5b2570726c4a5bb48de387321a\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:ed80c632e4b93c6145fcdfe19fb2ba09265a344ef4d09839e7c5c1847dd85876\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:bad878c0be2657848e1d7709b2fdd649ce0b0cb752e014f580f4559eb484f3c2\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:a19540d809291fe9606393b6f7a6f1f05056b9b07f2cedd814478bbe2d00b9d3\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:ae9a969772f48321dc12d5b31cc029645df18f198e2504d2a9a449302f89feab\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:049e0d064434ba93556313dbe6bb597d1cfc2948be688f3f9806bbd8da3ab8f2\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:314caa0f25d395036055c3ec1003405991b7efbb80cb245212a88fa1288747aa\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4304402aa902a654c0675f6c26fe44759e4a09ee4dc1444a0436f38270bcc9d\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1b3e9e472822c72a8829f0821f1b8bb90d3a80ad7c08ec29fa3d77004cebf486\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1eaea39884dcb242658a81115f6f14aa704a2a512d5fb92c8c38b1a7aad25227\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:76c87a86da241399b90bba832c161cd20f08dcdab4f9f8d208e74bb2233052ec\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:b3a6cdd668be75a6cb239fda82fc5ea8249fa36d9b46331af8f074e3d0606676\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a356420aa3bd1a0bfb66c77d6f944efbd6998550a926738ae1296ccf2ffad001\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n }, {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:3930d71d901339c705db68c6c9e936b786bd2109deba5dc2a291656e042e84fc\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:23bd866e9f3a693d32937fbe1eace4c4b58f3f450823fa9bd7251ad3c617f4a1\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms?page=0&size=20&searchTerm=ownedByWorkspace%3Dtest-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 20,\n \"totalElements\" : 7,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -3859,15 +3754,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c5df09f4-dd5b-4523-8625-5370a13930e6\",\n \"name\" : \"my-new-platform\",\n \"createdOn\" : \"2025-12-03T13:49:57.980291893Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My New Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://platform.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-new-platform\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"411ee54b-70f5-4db9-937b-e7fe9720845e\",\n \"name\" : \"my-new-platform\",\n \"createdOn\" : \"2025-12-09T14:58:23.265731587Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My New Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://platform.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-new-platform\"\n }\n }\n}", "code": 201 } ] }, { - "id": "meshProjectRoleListV1", - "name": "/api/meshobjects/meshprojectroles", - "description": "List all meshProjectRoles with optional filtering and pagination.\n\nNo specific permission is required to read meshProjectRoles \u2013 every API Key can list all available meshProjectRoles.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshPlatformTypeListV1", + "name": "/api/meshobjects/meshplatformtypes", + "description": "List all meshPlatformTypes with optional pagination and filtering.\n\nPlatform types define the available cloud platform technologies that can be used within meshStack.\nThis includes both built-in platform types (AWS, Azure, GCP, etc.) and custom platform types.\n\nYou can optionally filter the results by category and/or lifecycle status.\nFor example, use `category=CUSTOM` to retrieve only custom platform types, \nor `lifecycleStatus=ACTIVE` to retrieve only active platform types.\nBoth filters can be combined to further refine the results.\n\nNo specific permission is required to read meshPlatformTypes \u2013 every API Key can list all available meshPlatformTypes.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -3877,7 +3772,7 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojectroles", + "path": "/api/meshobjects/meshplatformtypes", "query": [ { "key": "page", @@ -3888,28 +3783,38 @@ "key": "size", "disabled": false, "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "category", + "disabled": false, + "description": "Optional filter by platform category. Only platform types matching the specified category will be returned. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." + }, + { + "key": "lifecycleStatus", + "disabled": false, + "description": "Optional filter by lifecycle status. Only platform types matching the specified lifecycle status will be returned. Possible values: ACTIVE, DEACTIVATED." } ], - "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles" + "raw": "{{baseUrl}}/api/meshobjects/meshplatformtypes" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." } ] }, "response": [ { - "id": "meshProjectRoleListV1", - "name": "meshProjectRoleListV1", + "id": "meshPlatformTypeListV1", + "name": "meshPlatformTypeListV1", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojectroles", + "path": "/api/meshobjects/meshplatformtypes", "query": [ { "key": "page", @@ -3920,39 +3825,134 @@ "key": "size", "disabled": false, "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "category", + "disabled": false, + "description": "Optional filter by platform category. Only platform types matching the specified category will be returned. Possible values: OPENSTACK, CLOUDFOUNDRY, SERVICEREGISTRY, AWS, OPENSHIFT, KUBERNETES, AZURE, GCP, AZURE_KUBERNETES_SERVICE, AZURE_RESOURCE_GROUP, CUSTOM, GITHUB." + }, + { + "key": "lifecycleStatus", + "disabled": false, + "description": "Optional filter by lifecycle status. Only platform types matching the specified lifecycle status will be returned. Possible values: ACTIVE, DEACTIVATED." } ], - "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles" + "raw": "{{baseUrl}}/api/meshobjects/meshplatformtypes" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshProjectRoles\" : [ {\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-admin\",\n \"tags\" : {\n \"priority\" : [ \"high\" ],\n \"access\" : [ \"admin\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Administrator\",\n \"description\" : \"Full administrative access to projects\",\n \"rank\" : 100\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-admin\"\n }\n }\n }, {\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-member\",\n \"tags\" : {\n \"priority\" : [ \"standard\" ],\n \"access\" : [ \"member\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Member\",\n \"description\" : \"Standard user access to projects\",\n \"rank\" : 50\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-member\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles?page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles?page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles?page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles?page=2&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 5,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshPlatformTypes\" : [ {\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes?category=CUSTOM&page=0&size=10\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] }, { - "id": "meshProjectRoleV1Post", + "id": "meshProjectRoleListV1", "name": "/api/meshobjects/meshprojectroles", - "description": "Create a new meshProjectRole with specified permissions and rank.\nProject roles define the level of access and permissions that users have within projects.\nThey are used to control what actions users can perform on project resources and configurations.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "List all meshProjectRoles with optional filtering and pagination.\n\nNo specific permission is required to read meshProjectRoles \u2013 every API Key can list all available meshProjectRoles.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshprojectroles", + "query": [ + { + "key": "page", + "disabled": false, + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "size", + "disabled": false, + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." + } + ] + }, + "response": [ + { + "id": "meshProjectRoleListV1", + "name": "meshProjectRoleListV1", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshprojectroles", + "query": [ + { + "key": "page", + "disabled": false, + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "size", + "disabled": false, + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"_embedded\" : {\n \"meshProjectRoles\" : [ {\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-admin\",\n \"tags\" : {\n \"priority\" : [ \"high\" ],\n \"access\" : [ \"admin\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Administrator\",\n \"description\" : \"Full administrative access to projects\",\n \"rank\" : 100\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-admin\"\n }\n }\n }, {\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-member\",\n \"tags\" : {\n \"priority\" : [ \"standard\" ],\n \"access\" : [ \"member\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Member\",\n \"description\" : \"Standard user access to projects\",\n \"rank\" : 50\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-member\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles?page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles?page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles?page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles?page=2&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 5,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", + "code": 200 + } + ] + }, + { + "id": "meshProjectRoleV1Post", + "name": "/api/meshobjects/meshprojectroles", + "description": "Create a new meshProjectRole with specified permissions and rank.\nProject roles define the level of access and permissions that users have within projects.\nThey are used to control what actions users can perform on project resources and configurations.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -4036,6 +4036,93 @@ } ] }, + { + "id": "meshProjectPost", + "name": "/api/meshobjects/meshprojects", + "description": "Create a new meshProject\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshprojects", + "raw": "{{baseUrl}}/api/meshobjects/meshprojects" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}", + "urlencoded": [ + + ] + } + }, + "response": [ + { + "id": "meshProjectPost", + "name": "meshProjectPost", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshprojects", + "raw": "{{baseUrl}}/api/meshobjects/meshprojects" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}", + "urlencoded": [ + + ] + } + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2025-12-09T14:58:26.533077586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}", + "code": 201 + } + ] + }, { "id": "meshProjectListV2", "name": "/api/meshobjects/meshprojects", @@ -4146,15 +4233,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=m6tf7mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1&sort=id,asc\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=tlyz1mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1&sort=id,asc\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code": 200 } ] }, { - "id": "meshProjectPost", - "name": "/api/meshobjects/meshprojects", - "description": "Create a new meshProject\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshServiceInstancePost", + "name": "/api/meshobjects/meshserviceinstances", + "description": "Create a Service Instance\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -4164,27 +4251,27 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojects", - "raw": "{{baseUrl}}/api/meshobjects/meshprojects" + "path": "/api/meshobjects/meshserviceinstances", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances" }, "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}", + "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded": [ ] @@ -4192,32 +4279,32 @@ }, "response": [ { - "id": "meshProjectPost", - "name": "meshProjectPost", + "id": "meshServiceInstancePost", + "name": "meshServiceInstancePost", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojects", - "raw": "{{baseUrl}}/api/meshobjects/meshprojects" + "path": "/api/meshobjects/meshserviceinstances", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances" }, "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}", + "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded": [ ] @@ -4226,15 +4313,15 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2025-12-03T13:50:00.946882645Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Test Project 3\",\n \"tags\" : { },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}", - "code": 201 + "body": "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "code": 200 } ] }, @@ -4368,15 +4455,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"m6tf7mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"m6tf7mtdg1\",\n \"instanceId\" : \"m6tf7mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mtdg12\",\n \"serviceId\" : \"m6tf7mtdg5\",\n \"planId\" : \"m6tf7mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/m6tf7mtdg9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=2&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 3,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"tlyz1mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"tlyz1mtdg1\",\n \"instanceId\" : \"tlyz1mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mtdg12\",\n \"serviceId\" : \"tlyz1mtdg5\",\n \"planId\" : \"tlyz1mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/tlyz1mtdg9\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances?workspaceIdentifier=my-mobile-app-team&page=2&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 3,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", "code": 200 } ] }, { - "id": "meshServiceInstancePost", - "name": "/api/meshobjects/meshserviceinstances", - "description": "Create a Service Instance\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshTagDefinitionList", + "name": "/api/meshobjects/meshtagdefinitions", + "description": "List all meshTagDefinitions with pagination support.\n\nA meshTagDefinition defines additional metadata (tags) attached to all meshObjects of a specific kind.\nThe meshTagDefinition describes a schema for this metadata.\n\n**Note**: Reading meshTagDefinitions does not require any special permissions. All API Keys and API\nUsers set up via meshPanel have read access to meshTagDefinitions by default.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -4386,76 +4473,74 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshserviceinstances", - "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances" + "path": "/api/meshobjects/meshtagdefinitions", + "query": [ + { + "key": "page", + "disabled": false, + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "size", + "disabled": false, + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions" }, - "method": "POST", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshServiceInstancePost", - "name": "meshServiceInstancePost", + "id": "meshTagDefinitionList", + "name": "meshTagDefinitionList", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshserviceinstances", - "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." - }, - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + "path": "/api/meshobjects/meshtagdefinitions", + "query": [ + { + "key": "page", + "disabled": false, + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + }, + { + "key": "size", + "disabled": false, + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshTagDefinitions\" : [ {\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Must be exactly 4 digits.\",\n \"displayName\" : \"Cost Center\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n }, {\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.workspaceOwner\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"workspaceOwner\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"Anna Admin\"\n }\n },\n \"description\" : \"Person responsible for this workspace.\",\n \"displayName\" : \"Workspace Owner\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"owner\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.workspaceOwner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=2&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 5,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -4546,9 +4631,9 @@ ] }, { - "id": "meshTagDefinitionList", - "name": "/api/meshobjects/meshtagdefinitions", - "description": "List all meshTagDefinitions with pagination support.\n\nA meshTagDefinition defines additional metadata (tags) attached to all meshObjects of a specific kind.\nThe meshTagDefinition describes a schema for this metadata.\n\n**Note**: Reading meshTagDefinitions does not require any special permissions. All API Keys and API\nUsers set up via meshPanel have read access to meshTagDefinitions by default.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshTenantPostV4", + "name": "/api/meshobjects/meshtenants", + "description": "Create a new meshTenant.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -4558,82 +4643,129 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtagdefinitions", - "query": [ - { - "key": "page", - "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "size", - "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions" + "path": "/api/meshobjects/meshtenants", + "raw": "{{baseUrl}}/api/meshobjects/meshtenants" }, - "method": "GET", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "disabled": false, + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as a `Content-Type` header." + }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the expected response format of this endpoint. New versions might be added in future." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v4-preview\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\": \"stage-dev\",\n \"platformTenantId\": \"cloud-tenant-4763-4526189\"\n }\n }\n}", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshTagDefinitionList", - "name": "meshTagDefinitionList", + "id": "meshTenantPostV4", + "name": "meshTenantPostV4", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtagdefinitions", - "query": [ - { - "key": "page", - "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" - }, - { - "key": "size", - "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions" + "path": "/api/meshobjects/meshtenants", + "raw": "{{baseUrl}}/api/meshobjects/meshtenants" }, - "method": "GET", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "disabled": false, + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as a `Content-Type` header." + }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the expected response format of this endpoint. New versions might be added in future." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v4-preview\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\": \"stage-dev\",\n \"platformTenantId\": \"cloud-tenant-4763-4526189\"\n }\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshTagDefinitions\" : [ {\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Must be exactly 4 digits.\",\n \"displayName\" : \"Cost Center\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n }, {\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.workspaceOwner\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"workspaceOwner\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"Anna Admin\"\n }\n },\n \"description\" : \"Person responsible for this workspace.\",\n \"displayName\" : \"Workspace Owner\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false,\n \"replicationKey\" : \"owner\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.workspaceOwner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions?page=2&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 5,\n \"totalPages\" : 3,\n \"number\" : 0\n }\n}", - "code": 200 + "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"beebf115-3da5-4857-9abd-cb98df35c0cb\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:34.462896039Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"cloud-tenant-4763-4526189\",\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\",\n \"platformTypeIdentifier\" : \"AZURE\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/beebf115-3da5-4857-9abd-cb98df35c0cb\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}", + "code": 201 + }, + { + "id": "meshTenantPostV3", + "name": "meshTenantPostV3", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshtenants", + "raw": "{{baseUrl}}/api/meshobjects/meshtenants" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\",\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\"\n }, \n \"spec\": {\n \"landingZoneIdentifier\": \"stage-dev\"\n }\n } \n} ", + "urlencoded": [ + + ] + } + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"spec\" : {\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}", + "code": 201 } ] }, { - "id": "meshTenantListV4", + "id": "meshTenantListV3", "name": "/api/meshobjects/meshtenants", - "description": "Provides a paged list of meshTenants. By default, list all active meshTenants (neither deleted\nnor submitted for deletion).\n\n**Note**: If the state is not specified as a request parameter, only active meshTenants are returned.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "List all meshTenants with filtering and pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -4661,39 +4793,39 @@ "description": "Filter for meshTenants that belong to the meshPlatform with given identifier. (optional)" }, { - "key": "platformTypeIdentifier", + "key": "deletionState", "disabled": false, - "description": "Filter for meshTenants that belong to the platform type with given identifier. (optional)" + "description": "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion" }, { - "key": "landingZoneIdentifier", + "key": "page", "disabled": false, - "description": "Filter for meshTenants that belong to a certain landing zone. (optional)" + "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" }, { - "key": "platformTenantId", + "key": "size", "disabled": false, - "description": "Filter for meshTenants with a given platformTenantId. (optional)" + "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" }, { - "key": "state", + "key": "platformTypeIdentifier", "disabled": false, - "description": "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms." + "description": "Filter for meshTenants that belong to the platform type with given identifier. (optional)" }, { - "key": "page", + "key": "landingZoneIdentifier", "disabled": false, - "description": "The page number (default=0). Information about [paging](/api/technical-specifications/#paging)" + "description": "Filter for meshTenants that belong to a certain landing zone. (optional)" }, { - "key": "size", + "key": "platformTenantId", "disabled": false, - "description": "The amount of elements in a single page (default=50). Information about [paging](/api/technical-specifications/#paging)" + "description": "Filter for meshTenants with a given platformTenantId. (optional)" }, { - "key": "deletionState", + "key": "state", "disabled": false, - "description": "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion" + "description": "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms." } ], "raw": "{{baseUrl}}/api/meshobjects/meshtenants" @@ -4702,16 +4834,16 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", "disabled": false, - "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the V4 response format of this endpoint. New versions might be added in future." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." } ] }, "response": [ { - "id": "meshTenantListV4", - "name": "meshTenantListV4", + "id": "meshTenantListV3", + "name": "meshTenantListV3", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -4733,24 +4865,9 @@ "description": "Filter for meshTenants that belong to the meshPlatform with given identifier. (optional)" }, { - "key": "platformTypeIdentifier", - "disabled": false, - "description": "Filter for meshTenants that belong to the platform type with given identifier. (optional)" - }, - { - "key": "landingZoneIdentifier", - "disabled": false, - "description": "Filter for meshTenants that belong to a certain landing zone. (optional)" - }, - { - "key": "platformTenantId", - "disabled": false, - "description": "Filter for meshTenants with a given platformTenantId. (optional)" - }, - { - "key": "state", + "key": "deletionState", "disabled": false, - "description": "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms." + "description": "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion" }, { "key": "page", @@ -4769,28 +4886,28 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", "disabled": false, - "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the V4 response format of this endpoint. New versions might be added in future." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.835644642Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n }, {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"07b0f057-5fba-444e-9796-4292573a6d22\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.829359902Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"2f3561e8-51f4-451f-bc92-9e5c8c6dd98f\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.aws.aws-meshstack-dev\",\n \"platformTypeIdentifier\" : \"AWS\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/07b0f057-5fba-444e-9796-4292573a6d22\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 3,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-10T14:58:32.700446663Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"fe177f6a-0e92-45fd-94cc-327d475ab2a8\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code": 200 }, { - "id": "meshTenantListV3", - "name": "meshTenantListV3", + "id": "meshTenantListV4", + "name": "meshTenantListV4", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -4812,9 +4929,24 @@ "description": "Filter for meshTenants that belong to the meshPlatform with given identifier. (optional)" }, { - "key": "deletionState", + "key": "platformTypeIdentifier", "disabled": false, - "description": "Filter for meshTenants with a certain deletion state. Possible values are: [ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion,[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval, or [DELETED] All meshTenants that are deleted or submitted for deletion" + "description": "Filter for meshTenants that belong to the platform type with given identifier. (optional)" + }, + { + "key": "landingZoneIdentifier", + "disabled": false, + "description": "Filter for meshTenants that belong to a certain landing zone. (optional)" + }, + { + "key": "platformTenantId", + "disabled": false, + "description": "Filter for meshTenants with a given platformTenantId. (optional)" + }, + { + "key": "state", + "disabled": false, + "description": "Filter for meshTenants with a certain state. You can also filter for multiple states by providing the state parameter multiple times. Possible values are: +\n[ACTIVE](default option) All meshTenants that are not deleted or submitted for deletion. +\n[MARKED_FOR_DELETION] All meshTenants that are awaiting manual deletion approval or are pending deletion. +\n[DELETED] All meshTenants that are successfully deleted in cloud platforms." }, { "key": "page", @@ -4833,159 +4965,27 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." + "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the V4 response format of this endpoint. New versions might be added in future." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-04T13:50:04.839868061Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"a2a34b5f-654e-448a-90d7-8134c81d47f3\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&deletionState=MARKED_FOR_DELETION&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"53277734-8b43-4e4e-a70b-76aeb244c38c\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.757443327Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/53277734-8b43-4e4e-a70b-76aeb244c38c\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n }, {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"dcce5c72-302e-49f9-baec-7bef99105688\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.750131427Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"2f3561e8-51f4-451f-bc92-9e5c8c6dd98f\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.aws.aws-meshstack-dev\",\n \"platformTypeIdentifier\" : \"AWS\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/dcce5c72-302e-49f9-baec-7bef99105688\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=0&size=2\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=test-workspace&projectIdentifier=test-project&state=ACTIVE&state=DELETED&page=1&size=2\"\n }\n },\n \"page\" : {\n \"size\" : 2,\n \"totalElements\" : 3,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code": 200 } ] }, - { - "id": "meshTenantPostV3", - "name": "/api/meshobjects/meshtenants", - "description": "Create a new meshTenant\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtenants", - "raw": "{{baseUrl}}/api/meshobjects/meshtenants" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - }, - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\",\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\"\n }, \n \"spec\": {\n \"landingZoneIdentifier\": \"stage-dev\"\n }\n } \n} ", - "urlencoded": [ - - ] - } - }, - "response": [ - { - "id": "meshTenantPostV3", - "name": "meshTenantPostV3", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtenants", - "raw": "{{baseUrl}}/api/meshobjects/meshtenants" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - }, - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtenant.v3.hal+json` for this version of the endpoint." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v3\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\",\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\"\n }, \n \"spec\": {\n \"landingZoneIdentifier\": \"stage-dev\"\n }\n } \n} ", - "urlencoded": [ - - ] - } - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"spec\" : {\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.azure.meshcloud-azure-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}", - "code": 201 - }, - { - "id": "meshTenantPostV4", - "name": "meshTenantPostV4", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtenants", - "raw": "{{baseUrl}}/api/meshobjects/meshtenants" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", - "disabled": false, - "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as a `Content-Type` header." - }, - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", - "disabled": false, - "description": "meshApi is versioned and you should use `application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json` as an `Accept` header to be guaranteed the expected response format of this endpoint. New versions might be added in future." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v4-preview\",\n \"kind\": \"meshTenant\",\n \"metadata\": {\n \"ownedByProject\": \"test-project\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"platformIdentifier\": \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\": \"stage-dev\",\n \"platformTenantId\": \"cloud-tenant-4763-4526189\"\n }\n }\n}", - "urlencoded": [ - - ] - } - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"7403c240-09ab-4a0a-984f-602bbf390c0d\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:06.516306259Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"azure.meshcloud-azure-dev\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"cloud-tenant-4763-4526189\",\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.azure.meshcloud-azure-dev\",\n \"platformTypeIdentifier\" : \"AZURE\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/7403c240-09ab-4a0a-984f-602bbf390c0d\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=azure.meshcloud-azure-dev\"\n }\n }\n}", - "code": 201 - } - ] - }, { "id": "meshUserListV2", "name": "/api/meshobjects/meshusers", @@ -5160,7 +5160,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"0f0c0a0c-b40c-4bc4-81be-eadebb04b3c6\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"ce61d42a-5e96-42cd-99ff-be4607a2560f\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"a69e8734-0952-49e0-9a8a-1cf0ec4384a1\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"4a00028c-186e-4399-8a53-cc036c015aa5\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=mobile-app&workspaceRole=Workspace%20Manager&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -5233,7 +5233,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"1a8deb65-324a-46fe-85bd-6d7024cef0a4\",\n \"name\" : \"new\"\n },\n \"spec\" : {\n \"email\" : \"new@example.com\",\n \"firstName\" : \"New\",\n \"lastName\" : \"User\",\n \"euid\" : \"new123\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/new\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=new\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"e5b770e9-1bc9-4a65-8ed7-6e75fc4dea53\",\n \"name\" : \"new\"\n },\n \"spec\" : {\n \"email\" : \"new@example.com\",\n \"firstName\" : \"New\",\n \"lastName\" : \"User\",\n \"euid\" : \"new123\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/new\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=new\"\n }\n }\n}", "code": 201 } ] @@ -5318,7 +5318,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshWorkspaces\" : [ {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-customer\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-partner\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-partner\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-partner\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-partner\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-partner\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-partner\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-partner\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-partner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 6,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshWorkspaces\" : [ {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-customer\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-customer\"\n }\n }\n }, {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"demo-partner\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"demo-partner\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/demo-partner\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=demo-partner\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=demo-partner\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=demo-partner\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=demo-partner\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=demo-partner\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=0&size=3\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces?page=1&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 6,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -5405,7 +5405,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-03T13:50:10.541598661Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Workspace\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-09T14:58:38.731585303Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Workspace\",\n \"platformBuilderAccessEnabled\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}", "code": 201 } ] @@ -5510,7 +5510,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshWorkspaceUserGroups\" : [ {\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"11284a3b-df7c-4185-863f-7715a9ea12be\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=sample-user&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshWorkspaceUserGroups\" : [ {\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"aeddeef1-873b-4433-91e7-a45418d6576a\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=sample-user&page=0&size=3\"\n }\n },\n \"page\" : {\n \"size\" : 3,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -5588,6 +5588,59 @@ } ] }, + { + "id": "meshBuildingBlockDefinitionDeleteV1", + "name": "/api/meshobjects/meshbuildingblockdefinitions/{uuid}", + "description": "Delete a specific meshBuildingBlockDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshbuildingblockdefinitions/:uuid", + "variable": [ + { + "key": "uuid", + "description": "The unique UUID of the meshBuildingBlockDefinition.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblockdefinitions/:uuid" + }, + "method": "DELETE" + }, + "response": [ + { + "id": "meshBuildingBlockDefinitionDeleteV1", + "name": "meshBuildingBlockDefinitionDeleteV1", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshbuildingblockdefinitions/:uuid", + "variable": [ + { + "key": "uuid", + "description": "The unique UUID of the meshBuildingBlockDefinition.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblockdefinitions/:uuid" + }, + "method": "DELETE" + }, + "cookie": [ + + ], + "code": 202 + } + ] + }, { "id": "meshBuildingBlockDefinitionPutV1", "name": "/api/meshobjects/meshbuildingblockdefinitions/{uuid}", @@ -5621,7 +5674,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", "urlencoded": [ ] @@ -5654,7 +5707,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\": \"my-workspace\"\n },\n \"spec\" : {\n \"targetType\": \"TENANT_LEVEL\",\n \"displayName\": \"BB definition example\",\n \"description\": \"description - updated\",\n \"supportUrl\": \"https://example.com\",\n \"documentationUrl\": \"https://example.com\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"useInLandingZonesOnly\": false,\n \"runTransparency\": false,\n \"notificationSubscriberUsernames\": []\n } \n}", "urlencoded": [ ] @@ -5670,64 +5723,11 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b7380b49-0878-419a-88dc-bf0bed72d977\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:28.175870586Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description - updated\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"59862206-fc69-4291-9db8-31d9511d650c\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b7380b49-0878-419a-88dc-bf0bed72d977\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b7380b49-0878-419a-88dc-bf0bed72d977\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"69738ff0-1eb0-4609-b580-44e9e420325b\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:48.150361348Z\"\n },\n \"spec\" : {\n \"displayName\" : \"BB definition example\",\n \"symbol\" : \"data:image/png;base64,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\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description - updated\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example.com\",\n \"documentationUrl\" : \"https://example.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"f6bff195-bf12-450b-bce4-1c813fa59139\",\n \"versionNumber\" : 1,\n \"state\" : \"DRAFT\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/69738ff0-1eb0-4609-b580-44e9e420325b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=69738ff0-1eb0-4609-b580-44e9e420325b\"\n }\n }\n}", "code": 200 } ] }, - { - "id": "meshBuildingBlockDefinitionDeleteV1", - "name": "/api/meshobjects/meshbuildingblockdefinitions/{uuid}", - "description": "Delete a specific meshBuildingBlockDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblockdefinitions/:uuid", - "variable": [ - { - "key": "uuid", - "description": "The unique UUID of the meshBuildingBlockDefinition.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblockdefinitions/:uuid" - }, - "method": "DELETE" - }, - "response": [ - { - "id": "meshBuildingBlockDefinitionDeleteV1", - "name": "meshBuildingBlockDefinitionDeleteV1", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblockdefinitions/:uuid", - "variable": [ - { - "key": "uuid", - "description": "The unique UUID of the meshBuildingBlockDefinition.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblockdefinitions/:uuid" - }, - "method": "DELETE" - }, - "cookie": [ - - ], - "code": 202 - } - ] - }, { "id": "meshBuildingBlockDefinitionV1", "name": "/api/meshobjects/meshbuildingblockdefinitions/{uuid}", @@ -5800,7 +5800,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:49:27.345384782Z\"\n },\n \"spec\" : {\n \"displayName\" : \"m6tf7mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"e4b4931c-cf55-4a73-a08b-7789efc9ad76\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:57:47.273824500Z\"\n },\n \"spec\" : {\n \"displayName\" : \"tlyz1mbbdds1\",\n \"symbol\" : \"my-image\",\n \"targetType\" : \"TENANT_LEVEL\",\n \"description\" : \"description\",\n \"supportedPlatforms\" : [ \"AZURE\" ],\n \"runTransparency\" : false,\n \"useInLandingZonesOnly\" : false,\n \"supportUrl\" : \"https://example-support.com\",\n \"documentationUrl\" : \"https://example-docs.com\",\n \"notificationSubscriberUsernames\" : [ ]\n },\n \"status\" : {\n \"versions\" : [ {\n \"versionUuid\" : \"65553088-f3b0-49c0-98dc-a9977fd68b83\",\n \"versionNumber\" : 1,\n \"state\" : \"RELEASED\"\n } ],\n \"latestVersion\" : 1,\n \"latestReleasedVersion\" : 1\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblockdefinitions/b23cfb9a-6974-444f-9d33-62134a632373\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"buildingblocks\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks?definitionUuid=b23cfb9a-6974-444f-9d33-62134a632373\"\n }\n }\n}", "code": 200 } ] @@ -5881,9 +5881,9 @@ ] }, { - "id": "meshBuildingBlockV2", + "id": "meshBuildingBlockDelete", "name": "/api/meshobjects/meshbuildingblocks/{uuid}", - "description": "Retrieve detailed information about a specific meshBuildingBlock including inputs, outputs, and parent relationships\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Delete a meshBuildingBlock and mark it for removal. Depending on the deletion mode of the\nmeshBuildingBlock's version, the meshBuildingBlock will either be removed (including potential\ncloud resources) or purged (removed from meshStack only).\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -5897,27 +5897,19 @@ "variable": [ { "key": "uuid", - "description": "The UUID of the meshBuildingBlock to retrieve.", + "description": "The unique UUID of the meshBuildingBlock.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks/:uuid" }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." - } - ] + "method": "DELETE" }, "response": [ { - "id": "meshBuildingBlockV2", - "name": "meshBuildingBlockV2", + "id": "meshBuildingBlockDelete", + "name": "meshBuildingBlockDelete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -5925,36 +5917,57 @@ "variable": [ { "key": "uuid", - "description": "The UUID of the meshBuildingBlock to retrieve.", + "description": "The unique UUID of the meshBuildingBlock.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks/:uuid" }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." - } - ] + "method": "DELETE" }, - "header": [ + "cookie": [ + + ], + "code": 202 + } + ] + }, + { + "id": "meshBuildingBlock", + "name": "/api/meshobjects/meshbuildingblocks/{uuid}", + "description": "Retrieve detailed information about a specific meshBuildingBlock including inputs, outputs, and parent relationships\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshbuildingblocks/:uuid", + "variable": [ { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", + "key": "uuid", + "description": "The UUID that uniquely identifies the meshBuildingBlock.", + "system": false, "disabled": false } ], - "cookie": [ - - ], - "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:32.017007172Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b205ad0c-6740-4b06-b6cc-647e54914e96\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"2a6246fa-ad8e-4892-bf0d-97f0dd2ebe30\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}", - "code": 200 + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks/:uuid" }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json` for this version of the endpoint." + } + ] + }, + "response": [ { "id": "meshBuildingBlock", "name": "meshBuildingBlock", @@ -5992,41 +6005,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-03T13:49:29.096812698Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"definitionUuid\" : \"ef6aaf87-3f8c-477c-94f4-f3cf509728ca\",\n \"definitionVersion\" : 1,\n \"tenantIdentifier\" : \"my-workspace.my-project.my-platform.my-location\",\n \"forcePurge\" : false,\n \"createdOn\" : \"2025-12-09T14:57:49.091152405Z\"\n },\n \"spec\" : {\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}", "code": 200 - } - ] - }, - { - "id": "meshBuildingBlockDelete", - "name": "/api/meshobjects/meshbuildingblocks/{uuid}", - "description": "Delete a meshBuildingBlock and mark it for removal. Depending on the deletion mode of the\nmeshBuildingBlock's version, the meshBuildingBlock will either be removed (including potential\ncloud resources) or purged (removed from meshStack only).\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblocks/:uuid", - "variable": [ - { - "key": "uuid", - "description": "The unique UUID of the meshBuildingBlock.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks/:uuid" }, - "method": "DELETE" - }, - "response": [ { - "id": "meshBuildingBlockDelete", - "name": "meshBuildingBlockDelete", + "id": "meshBuildingBlockV2", + "name": "meshBuildingBlockV2", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6034,19 +6018,35 @@ "variable": [ { "key": "uuid", - "description": "The unique UUID of the meshBuildingBlock.", + "description": "The UUID of the meshBuildingBlock to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks/:uuid" }, - "method": "DELETE" + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json` for this version of the endpoint." + } + ] }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 202 + "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:52.528351150Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b2ce05d3-6aa8-47b0-af5e-b48b89994039\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"9415ca5b-91cd-4c69-b442-7d1b17f9305c\"\n },\n \"displayName\" : \"child block\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"My Test Resource\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"68ce5455-2a4a-4a4b-a324-6a6c18cab85a\",\n \"definitionUuid\" : \"b23cfb9a-6974-444f-9d33-62134a632373\"\n } ]\n },\n \"status\" : {\n \"status\" : \"SUCCEEDED\",\n \"outputs\" : [ {\n \"key\" : \"resourceId\",\n \"value\" : \"id-123\",\n \"valueType\" : \"STRING\"\n } ],\n \"forcePurge\" : false\n },\n \"_links\" : {\n \"meshtenant\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/my-workspace.my-project.my-platform.my-location\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/5646eafe-5d56-43e5-84fe-329bb050d720/purge\"\n }\n }\n}", + "code": 200 } ] }, @@ -6148,15 +6148,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"my-new-title\",\n \"message\" : \"my-new-message\",\n \"dueDate\" : \"2099-05-31\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"my-new-title\",\n \"message\" : \"my-new-message\",\n \"dueDate\" : \"2099-05-31\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshCommunicationDefinition", + "id": "meshCommunicationDefinitionDelete", "name": "/api/meshobjects/meshcommunicationdefinitions/{uuid}", - "description": "Retrieve detailed information about a specific meshCommunicationDefinition\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Delete a specific meshCommunicationDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -6177,7 +6177,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions/:uuid" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -6189,8 +6189,8 @@ }, "response": [ { - "id": "meshCommunicationDefinition", - "name": "meshCommunicationDefinition", + "id": "meshCommunicationDefinitionDelete", + "name": "meshCommunicationDefinitionDelete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6205,7 +6205,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions/:uuid" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -6215,25 +6215,17 @@ } ] }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", - "disabled": false - } - ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-04\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/f558c50d-a3cc-47cb-a2d4-12e9bb2b887b\"\n }\n }\n}", - "code": 200 + "code": 204 } ] }, { - "id": "meshCommunicationDefinitionDelete", + "id": "meshCommunicationDefinition", "name": "/api/meshobjects/meshcommunicationdefinitions/{uuid}", - "description": "Delete a specific meshCommunicationDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Retrieve detailed information about a specific meshCommunicationDefinition\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -6254,7 +6246,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions/:uuid" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -6266,8 +6258,8 @@ }, "response": [ { - "id": "meshCommunicationDefinitionDelete", - "name": "meshCommunicationDefinitionDelete", + "id": "meshCommunicationDefinition", + "name": "meshCommunicationDefinition", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6282,7 +6274,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions/:uuid" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -6292,10 +6284,18 @@ } ] }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 204 + "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n },\n \"spec\" : {\n \"communication\" : {\n \"title\" : \"Communication definition 1 Title\",\n \"message\" : \"Message for Communication definition 1. Use [this guide](http://example.com/1) for reference.\",\n \"dueDate\" : \"2025-12-10\",\n \"type\" : \"ACTION_REQUIRED\",\n \"skipEmailNotifications\" : false\n }\n },\n \"status\" : {\n \"communicationsTotal\" : 0,\n \"communicationsResolved\" : 0,\n \"communicationsOpen\" : 0\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions/2c987c6b-b95a-4c35-bde4-ff9bca9de9be\"\n }\n }\n}", + "code": 200 } ] }, @@ -6424,7 +6424,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"b370a512-ec20-4bbf-b481-a0f855964508\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"9758d157-eefe-4a5c-bf65-5f7d28b3271c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-04\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/b370a512-ec20-4bbf-b481-a0f855964508\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"9b017a75-aec0-438d-9989-f7b478624e26\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"eb662d24-2525-4691-a202-a5e2b52fd81c\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-12-10\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/9b017a75-aec0-438d-9989-f7b478624e26\"\n }\n }\n}", "code": 200 } ] @@ -6485,15 +6485,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"055b1f56-4768-472b-908e-d0f6d994c185\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/055b1f56-4768-472b-908e-d0f6d994c185\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"f89b35b1-07a4-424d-87e1-b9a4cf751bc8\",\n \"createdAt\" : \"2024-01-15T10:30:00Z\"\n },\n \"spec\" : {\n \"title\" : \"Workspace Name Changed\",\n \"eventType\" : \"Changed\",\n \"description\" : \"Workspace Workspace ABC was changed to Workspace XYZ\",\n \"workspaceRef\" : {\n \"name\" : \"my-workspace\",\n \"kind\" : \"meshWorkspace\"\n },\n \"content\" : {\n \"name\" : \"Workspace XYZ\"\n },\n \"previousContent\" : {\n \"name\" : \"Workspace ABC\"\n },\n \"author\" : {\n \"authorType\" : \"System\",\n \"identifier\" : \"system\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/f89b35b1-07a4-424d-87e1-b9a4cf751bc8\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshIntegration-Put-azure_devops", + "id": "meshIntegration-Get-gitlab", "name": "/api/meshobjects/meshintegrations/{uuid}", - "description": "Update an existing integration.\n\nYou can update the integration display name, configuration, and runner association.\nThe integration type cannot be changed after creation.\n\nFor sensitive fields (appPrivateKey, personalAccessToken), you can either:\n- Provide a new value to update the secret\n- Use '' to keep the existing value unchanged\n\nUsers can only update integrations that belong to their workspace unless they have admin permissions.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Retrieve detailed information about a integration by its UUID.\n\nThe response includes all integration configuration except for sensitive fields, \nwhich are masked with '' for security purposes.\n\nUsers can only retrieve integrations that belong to their workspace as well as built-in integrations (replicator and metering).\nPlatform administrators can retrieve any integration.\n\nTo get the built-in integrations, use the following UUIDs:\n- Replicator: c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\n- Metering: a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -6507,40 +6507,27 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the integration to update.", + "description": "The UUID that uniquely identifies the integration.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshIntegration-Put-azure_devops", - "name": "meshIntegration-Put-azure_devops", + "id": "meshIntegration-Get-gitlab", + "name": "meshIntegration-Get-gitlab", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6548,35 +6535,22 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the integration to update.", + "description": "The UUID that uniquely identifies the integration.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Azure DevOps Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n },\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\"\n }\n }\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -6588,12 +6562,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}", "code": 200 }, { - "id": "meshIntegration-Put-gitlab", - "name": "meshIntegration-Put-gitlab", + "id": "meshIntegration-Get-builtin-replicator", + "name": "meshIntegration-Get-builtin-replicator", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6601,35 +6575,22 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the integration to update.", + "description": "The UUID that uniquely identifies the integration.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitLab Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n },\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\"\n }\n }\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -6641,12 +6602,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Replicator (Built-in)\",\n \"config\" : {\n \"type\" : \"replicator\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:replicator\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/c8f4e7d2-3b1a-4c9e-8d5f-6a2b7c8d9e0f\"\n }\n }\n}", "code": 200 }, { - "id": "meshIntegration-Put-github", - "name": "meshIntegration-Put-github", + "id": "meshIntegration-Get-builtin-metering", + "name": "meshIntegration-Get-builtin-metering", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6654,35 +6615,62 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the integration to update.", + "description": "The UUID that uniquely identifies the integration.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ { - "key": "Content-Type", + "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." - }, + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"ownedByWorkspace\" : \"admin-customer\",\n \"createdOn\" : \"2025-12-09T14:57:18Z\"\n },\n \"spec\" : {\n \"displayName\" : \"meshStack Metering (Built-in)\",\n \"config\" : {\n \"type\" : \"metering\"\n }\n },\n \"status\" : {\n \"isBuiltIn\" : true,\n \"workloadIdentityFederation\" : {\n \"issuer\" : \"https://container.googleapis.com/v1/projects/meshcloud-meshcloud--bc0/locations/europe-west1/clusters/meshstacks-ha\",\n \"subject\" : \"system:serviceaccount:meshcloud-dev:kraken-worker\",\n \"gcp\" : {\n \"audience\" : \"gcp-workload-identity-provider:meshcloud-dev\"\n },\n \"aws\" : {\n \"audience\" : \"aws-workload-identity-provider:meshcloud-dev\",\n \"thumbprint\" : \"08745487e891c19e3078c1f2a07e452950ef36f6\"\n },\n \"azure\" : {\n \"audience\" : \"api://AzureADTokenExchange\"\n }\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d\"\n }\n }\n}", + "code": 200 + }, + { + "id": "meshIntegration-Get-azure_devops", + "name": "meshIntegration-Get-azure_devops", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshintegrations/:uuid", + "variable": [ + { + "key": "uuid", + "description": "The UUID that uniquely identifies the integration.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" + }, + "method": "GET", + "header": [ { "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitHub Integration\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n },\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\"\n }\n }\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -6694,15 +6682,55 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}", "code": 200 - } - ] - }, + }, + { + "id": "meshIntegration-Get-github", + "name": "meshIntegration-Get-github", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshintegrations/:uuid", + "variable": [ + { + "key": "uuid", + "description": "The UUID that uniquely identifies the integration.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}", + "code": 200 + } + ] + }, { - "id": "meshIntegration-Get-azure_devops", + "id": "meshIntegration-Put-github", "name": "/api/meshobjects/meshintegrations/{uuid}", - "description": "Retrieve detailed information about a integration by its UUID.\n\nThe response includes all integration configuration except for sensitive fields, \nwhich are masked with '' for security purposes.\n\nUsers can only retrieve integrations that belong to their workspace.\nPlatform administrators can retrieve any integration.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Update an existing integration.\n\nYou can update the integration display name, configuration, and runner association.\nThe integration type cannot be changed after creation.\n\nFor sensitive fields (appPrivateKey, personalAccessToken), you can either:\n- Provide a new value to update the secret\n- Use '' to keep the existing value unchanged\n\nUsers can only update integrations that belong to their workspace unless they have admin permissions.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -6716,27 +6744,40 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the integration.", + "description": "The UUID that uniquely identifies the integration to update.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitHub Integration\",\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n }\n }\n }\n }\n}", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshIntegration-Get-azure_devops", - "name": "meshIntegration-Get-azure_devops", + "id": "meshIntegration-Put-github", + "name": "meshIntegration-Put-github", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6744,22 +6785,35 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the integration.", + "description": "The UUID that uniquely identifies the integration to update.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitHub Integration\",\n \"config\": {\n \"type\": \"github\",\n \"github\": {\n \"owner\": \"my-org\",\n \"baseUrl\": \"https://api.github.com\",\n \"appId\": \"123456\",\n \"appPrivateKey\": \"test-private-key\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\"\n }\n }\n }\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -6771,12 +6825,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4ab5812-99de-40ec-90b9-4ffa77526a40\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.494461887Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d4ab5812-99de-40ec-90b9-4ffa77526a40\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"06c88b5e-c392-42c9-9b43-1ae77038b9e4\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:57.886296546Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/06c88b5e-c392-42c9-9b43-1ae77038b9e4\"\n }\n }\n}", "code": 200 }, { - "id": "meshIntegration-Get-gitlab", - "name": "meshIntegration-Get-gitlab", + "id": "meshIntegration-Put-azure_devops", + "name": "meshIntegration-Put-azure_devops", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6784,22 +6838,35 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the integration.", + "description": "The UUID that uniquely identifies the integration to update.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Azure DevOps Integration\",\n \"config\": {\n \"type\": \"azuredevops\",\n \"azuredevops\": {\n \"baseUrl\": \"https://dev.azure.com\",\n \"organization\": \"my-org\",\n \"personalAccessToken\": \"test-pat-token\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"05cfa85f-2818-4bdd-b193-620e0187d7de\"\n }\n }\n }\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -6811,12 +6878,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e3c9247e-dc03-4130-a27b-37fb5a90c62b\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.312442660Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/e3c9247e-dc03-4130-a27b-37fb5a90c62b\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d625a93e-5ba6-468d-8391-e6339cabcf93\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.301461206Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Azure DevOps Integration\",\n \"config\" : {\n \"type\" : \"azuredevops\",\n \"azuredevops\" : {\n \"baseUrl\" : \"https://dev.azure.com\",\n \"organization\" : \"my-org\",\n \"personalAccessToken\" : \"\",\n \"runnerRef\" : {\n \"uuid\" : \"05cfa85f-2818-4bdd-b193-620e0187d7de\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/d625a93e-5ba6-468d-8391-e6339cabcf93\"\n }\n }\n}", "code": 200 }, { - "id": "meshIntegration-Get-github", - "name": "meshIntegration-Get-github", + "id": "meshIntegration-Put-gitlab", + "name": "meshIntegration-Put-gitlab", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6824,22 +6891,35 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the integration.", + "description": "The UUID that uniquely identifies the integration to update.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshintegrations/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshintegration.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshIntegration\",\n \"metadata\": {\n \"uuid\": \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated GitLab Integration\",\n \"config\": {\n \"type\": \"gitlab\",\n \"gitlab\": {\n \"baseUrl\": \"https://gitlab.com\",\n \"runnerRef\": {\n \"kind\": \"meshBuildingBlockRunner\",\n \"uuid\": \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\"\n }\n }\n }\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -6851,7 +6931,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"7e2996c2-3490-4130-b0c3-74a55a5addba\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-03T13:49:37.105693704Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My GitHub Integration\",\n \"config\" : {\n \"type\" : \"github\",\n \"github\" : {\n \"owner\" : \"my-org\",\n \"baseUrl\" : \"https://api.github.com\",\n \"appId\" : \"123456\",\n \"appPrivateKey\" : \"\"\n }\n },\n \"runnerRef\" : {\n \"uuid\" : \"dc8c57a1-823f-4e96-8582-0275fa27dc7b\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/7e2996c2-3490-4130-b0c3-74a55a5addba\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshIntegration\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"createdOn\" : \"2025-12-09T14:57:58.108176141Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated GitLab Integration\",\n \"config\" : {\n \"type\" : \"gitlab\",\n \"gitlab\" : {\n \"baseUrl\" : \"https://gitlab.com\",\n \"runnerRef\" : {\n \"uuid\" : \"f4f4402b-f54d-4ab9-93ae-c07e997041e9\",\n \"kind\" : \"meshBuildingBlockRunner\"\n }\n }\n }\n },\n \"status\" : {\n \"isBuiltIn\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshintegrations/1100bf24-d776-41fe-a8f4-ba8c51e0f4dd\"\n }\n }\n}", "code": 200 } ] @@ -6926,9 +7006,9 @@ ] }, { - "id": "meshLandingZone-Put-aws", + "id": "meshLandingZone-Get-aws", "name": "/api/meshobjects/meshlandingzones/{identifier}", - "description": "Update an existing meshLandingZone. If a landing zone with the given identifier exists,\nit will be updated, otherwise, a new landing zone will be created.\n\nPlease note that changing the platform reference(`spec.platformRef`) is not supported.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Get a specific meshLandingZone by its identifier.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -6942,40 +7022,27 @@ "variable": [ { "key": "identifier", - "description": "The landing zone identifier.", + "description": "The identifier of the meshLandingZone to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshLandingZone-Put-aws", - "name": "meshLandingZone-Put-aws", + "id": "meshLandingZone-Get-aws", + "name": "meshLandingZone-Get-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6983,35 +7050,22 @@ "variable": [ { "key": "identifier", - "description": "The landing zone identifier.", + "description": "The identifier of the meshLandingZone to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -7023,12 +7077,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Put-kubernetes", - "name": "meshLandingZone-Put-kubernetes", + "id": "meshLandingZone-Get-aks", + "name": "meshLandingZone-Get-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7036,35 +7090,22 @@ "variable": [ { "key": "identifier", - "description": "The landing zone identifier.", + "description": "The identifier of the meshLandingZone to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"description\" : \"An updated kubernetes landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -7076,12 +7117,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Put-azurerg", - "name": "meshLandingZone-Put-azurerg", + "id": "meshLandingZone-Get-azurerg", + "name": "meshLandingZone-Get-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7089,35 +7130,22 @@ "variable": [ { "key": "identifier", - "description": "The landing zone identifier.", + "description": "The identifier of the meshLandingZone to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"description\" : \"An updated azurerg landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -7129,12 +7157,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Put-aks", - "name": "meshLandingZone-Put-aks", + "id": "meshLandingZone-Get-kubernetes", + "name": "meshLandingZone-Get-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7142,35 +7170,22 @@ "variable": [ { "key": "identifier", - "description": "The landing zone identifier.", + "description": "The identifier of the meshLandingZone to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aks\",\n \"description\" : \"An updated aks landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -7182,12 +7197,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Put-azure", - "name": "meshLandingZone-Put-azure", + "id": "meshLandingZone-Get-openshift", + "name": "meshLandingZone-Get-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7195,35 +7210,22 @@ "variable": [ { "key": "identifier", - "description": "The landing zone identifier.", + "description": "The identifier of the meshLandingZone to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azure\",\n \"description\" : \"An updated azure landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -7235,12 +7237,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Put-openshift", - "name": "meshLandingZone-Put-openshift", + "id": "meshLandingZone-Get-gcp", + "name": "meshLandingZone-Get-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7248,35 +7250,22 @@ "variable": [ { "key": "identifier", - "description": "The landing zone identifier.", + "description": "The identifier of the meshLandingZone to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"description\" : \"An updated openshift landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -7288,12 +7277,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Put-gcp", - "name": "meshLandingZone-Put-gcp", + "id": "meshLandingZone-Get-azure", + "name": "meshLandingZone-Get-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7301,35 +7290,22 @@ "variable": [ { "key": "identifier", - "description": "The landing zone identifier.", + "description": "The identifier of the meshLandingZone to retrieve.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"description\" : \"An updated gcp landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -7341,15 +7317,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshLandingZone-Get-aks", + "id": "meshLandingZone-Put-aws", "name": "/api/meshobjects/meshlandingzones/{identifier}", - "description": "Get a specific meshLandingZone by its identifier.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Update an existing meshLandingZone. If a landing zone with the given identifier exists,\nit will be updated, otherwise, a new landing zone will be created.\n\nPlease note that changing the platform reference(`spec.platformRef`) is not supported.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -7363,27 +7339,40 @@ "variable": [ { "key": "identifier", - "description": "The identifier of the meshLandingZone to retrieve.", + "description": "The landing zone identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshLandingZone-Get-aks", - "name": "meshLandingZone-Get-aks", + "id": "meshLandingZone-Put-aws", + "name": "meshLandingZone-Put-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7391,22 +7380,35 @@ "variable": [ { "key": "identifier", - "description": "The identifier of the meshLandingZone to retrieve.", + "description": "The landing zone identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aws\",\n \"description\" : \"An updated aws landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -7418,12 +7420,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"37588f22-d273-4d6d-af94-d83cc0c0b346\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"510bf03b-04ac-4655-8433-6ae608cb6305\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Get-azurerg", - "name": "meshLandingZone-Get-azurerg", + "id": "meshLandingZone-Put-azure", + "name": "meshLandingZone-Put-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7431,22 +7433,35 @@ "variable": [ { "key": "identifier", - "description": "The identifier of the meshLandingZone to retrieve.", + "description": "The landing zone identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azure\",\n \"description\" : \"An updated azure landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\",\n \"abacCondition\" : null\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -7458,12 +7473,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"1b27907b-67fe-43e9-bb65-f92d4031e57c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"949d041a-b58c-4c36-a356-12ce8054370b\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Get-kubernetes", - "name": "meshLandingZone-Get-kubernetes", + "id": "meshLandingZone-Put-openshift", + "name": "meshLandingZone-Put-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7471,22 +7486,35 @@ "variable": [ { "key": "identifier", - "description": "The identifier of the meshLandingZone to retrieve.", + "description": "The landing zone identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"description\" : \"An updated openshift landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"openShiftTemplate\" : null\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -7498,12 +7526,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"5721d686-f24e-46be-aea1-787a89b4ceb2\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"e9c7efea-635b-4152-8b22-bc1513ca736c\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Get-gcp", - "name": "meshLandingZone-Get-gcp", + "id": "meshLandingZone-Put-kubernetes", + "name": "meshLandingZone-Put-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7511,22 +7539,35 @@ "variable": [ { "key": "identifier", - "description": "The identifier of the meshLandingZone to retrieve.", + "description": "The landing zone identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"description\" : \"An updated kubernetes landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -7538,12 +7579,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"203656a2-5c91-4bb2-bf4f-6faacb18f437\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-kubernetes\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated kubernetes landing zone description\",\n \"displayName\" : \"Updated Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"d379483d-73d2-4c52-9216-1608220c75ea\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-kubernetes\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/32\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Get-aws", - "name": "meshLandingZone-Get-aws", + "id": "meshLandingZone-Put-gcp", + "name": "meshLandingZone-Put-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7551,22 +7592,35 @@ "variable": [ { "key": "identifier", - "description": "The identifier of the meshLandingZone to retrieve.", + "description": "The landing zone identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"description\" : \"An updated gcp landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -7578,12 +7632,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aws landing zone description\",\n \"displayName\" : \"Updated Landing Zone aws\",\n \"platformRef\" : {\n \"uuid\" : \"b5f4e2b0-99e8-46eb-a190-241ff7288c3d\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"awsTargetOrgUnitId\" : \"ou-lpzq-kmf17bec\",\n \"awsEnrollAccount\" : true,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"AwsSpecificRole\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-gcp\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated gcp landing zone description\",\n \"displayName\" : \"Updated Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"1b04745c-1a3e-4537-9453-ccf0d8beb597\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"gcpFolderId\" : \"12345\",\n \"gcpTemplateUrl\" : \"gs://my-bucket-name/folder/template\",\n \"gcpCloudFunctionUrl\" : \"https://us-central1-my-sample-project.cloudfunctions.net/helloWorld\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"owner\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/owner\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"editor\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"roles/editor\", \"roles/viewer\" ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-gcp\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/27\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Get-azure", - "name": "meshLandingZone-Get-azure", + "id": "meshLandingZone-Put-aks", + "name": "meshLandingZone-Put-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7591,22 +7645,35 @@ "variable": [ { "key": "identifier", - "description": "The identifier of the meshLandingZone to retrieve.", + "description": "The landing zone identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone aks\",\n \"description\" : \"An updated aks landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n } ]\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -7618,12 +7685,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azure\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azure landing zone description\",\n \"displayName\" : \"Updated Landing Zone azure\",\n \"platformRef\" : {\n \"uuid\" : \"0fcf3cc9-a864-4cb7-9938-353c2afdd4ff\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"azureManagementGroupId\" : \"azure-management-group\",\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"8c91d80b-141a-444a-b51c-4217c7384250\"\n },\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"admin\",\n \"azureRoleDefinitions\" : [ {\n \"azureRoleDefinitionId\" : \"c5935d7e-37b2-4f34-af8f-bdca2408296e\"\n } ]\n } ]\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azure\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/28\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-aks\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated aks landing zone description\",\n \"displayName\" : \"Updated Landing Zone aks\",\n \"platformRef\" : {\n \"uuid\" : \"e50f0b6e-0aaf-46d5-9c2a-60778e120b14\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"kubernetesRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRoles\" : [ \"kubernetes-platform-role\" ]\n } ]\n }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-aks\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/30\"\n }\n }\n}", "code": 200 }, { - "id": "meshLandingZone-Get-openshift", - "name": "meshLandingZone-Get-openshift", + "id": "meshLandingZone-Put-azurerg", + "name": "meshLandingZone-Put-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7631,22 +7698,35 @@ "variable": [ { "key": "identifier", - "description": "The identifier of the meshLandingZone to retrieve.", + "description": "The landing zone identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshLandingZone\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"description\" : \"An updated azurerg landing zone description\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -7658,7 +7738,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-openshift\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated openshift landing zone description\",\n \"displayName\" : \"Updated Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"ca91f73b-3965-4bbd-b571-db1b61c20753\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"openshift\",\n \"openshift\" : { }\n },\n \"quotas\" : [ {\n \"key\" : \"requests.storage\",\n \"value\" : 100\n }, {\n \"key\" : \"persistentvolumeclaims\",\n \"value\" : 10\n }, {\n \"key\" : \"requests.cpu\",\n \"value\" : 8\n }, {\n \"key\" : \"limits.cpu\",\n \"value\" : 16\n }, {\n \"key\" : \"requests.memory\",\n \"value\" : 16\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 32\n } ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-openshift\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/31\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"new-landing-zone-azurerg\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated azurerg landing zone description\",\n \"displayName\" : \"Updated Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"743c60bb-97ff-4f05-a7c3-59d1d547ba18\",\n \"kind\" : \"meshPlatform\"\n },\n \"automateDeletionApproval\" : true,\n \"automateDeletionReplication\" : true,\n \"infoLink\" : \"https://example.com/updated-info\",\n \"platformProperties\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"azureRgLocation\" : \"eastus2\",\n \"azureRgRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"owner\",\n \"azureRoleDefinitionIds\" : [ \"fd876abe-603d-44d2-bf8a-067bbeacd485\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"reader\",\n \"azureRoleDefinitionIds\" : [ \"39a5f86f-a2d0-459d-b4eb-f536464933d0\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"user\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureGroupSuffix\" : \"user\",\n \"azureRoleDefinitionIds\" : [ \"492334bd-d0fd-4724-9270-e55495c2d88e\" ]\n } ],\n \"azureFunction\" : {\n \"azureFunctionUrl\" : \"https://my-function-app.azurewebsites.net/myfunc\",\n \"azureFunctionScope\" : \"78f9140e-1f7c-45a1-a633-3f1b92df362bn\"\n }\n }\n },\n \"quotas\" : [ ]\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/new-landing-zone-azurerg\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/29\"\n }\n }\n}", "code": 200 } ] @@ -7733,9 +7813,9 @@ ] }, { - "id": "meshLocation-Get", + "id": "meshLocation-Put", "name": "/api/meshobjects/meshlocations/{identifier}", - "description": "Retrieve detailed information about a specific meshLocation\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Update an existing meshLocation. This endpoint requires save permissions for platforms (there is no dedicated permission for locations as platforms and locations are closely related).\n\nYou can update the display name and description of a location. The identifier cannot be changed.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -7756,20 +7836,33 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshlocations/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"my-location\"\n },\n \"spec\": {\n \"displayName\": \"Updated Location Name\",\n \"description\": \"An updated description\"\n }\n}", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshLocation-Get", - "name": "meshLocation-Get", + "id": "meshLocation-Put", + "name": "meshLocation-Put", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7784,16 +7877,29 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshlocations/:identifier" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." } - ] - }, + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"my-location\"\n },\n \"spec\": {\n \"displayName\": \"Updated Location Name\",\n \"description\": \"An updated description\"\n }\n}", + "urlencoded": [ + + ] + } + }, "header": [ { "key": "Content-Type", @@ -7804,15 +7910,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Location Name\",\n \"description\" : \"An updated description\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshLocation-Put", + "id": "meshLocation-Get", "name": "/api/meshobjects/meshlocations/{identifier}", - "description": "Update an existing meshLocation. This endpoint requires save permissions for platforms (there is no dedicated permission for locations as platforms and locations are closely related).\n\nYou can update the display name and description of a location. The identifier cannot be changed.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Retrieve detailed information about a specific meshLocation\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -7833,33 +7939,20 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshlocations/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"my-location\"\n },\n \"spec\": {\n \"displayName\": \"Updated Location Name\",\n \"description\": \"An updated description\"\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshLocation-Put", - "name": "meshLocation-Put", + "id": "meshLocation-Get", + "name": "meshLocation-Get", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7874,28 +7967,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshlocations/:identifier" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshlocation.v1-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLocation\",\n \"metadata\": {\n \"name\": \"my-location\"\n },\n \"spec\": {\n \"displayName\": \"Updated Location Name\",\n \"description\": \"An updated description\"\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -7907,15 +7987,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"59de2f35-a400-49c1-bd56-6f57675d2751\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Location Name\",\n \"description\" : \"An updated description\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshLocation\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"46eac201-2f74-4432-a676-eadf1b15d874\",\n \"name\" : \"my-location\"\n },\n \"spec\" : {\n \"displayName\" : \"My Location\",\n \"description\" : \"My great location\"\n },\n \"status\" : {\n \"isPublic\" : true\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlocations/my-location\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshPaymentMethodV2Put", + "id": "meshPaymentMethodV2Delete", "name": "/api/meshobjects/meshpaymentmethods/{identifier}", - "description": "Update an existing meshPaymentMethod by identifier. This endpoint supports both updating an existing\npayment method as well as creating a new payment method if a payment method with this identifier does\nnot exist yet.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Delete a specific meshPaymentMethod by identifier. meshStack currently only allows soft deletion of payment methods.\n\nPlease note that it is possible to retrieve a payment method via the GET meshPaymentMethod endpoint after deletion.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -7936,33 +8016,20 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods/:identifier" }, - "method": "PUT", + "method": "DELETE", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshPaymentMethod\",\n \"metadata\": {\n \"name\": \"test-payment-method-1\",\n \"ownedByWorkspace\": \"payment-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Payment Method\",\n \"amount\": 1500.00,\n \"expirationDate\": \"2026-01-31\",\n \"tags\": {}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshPaymentMethodV2Put", - "name": "meshPaymentMethodV2Put", + "id": "meshPaymentMethodV2Delete", + "name": "meshPaymentMethodV2Delete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7977,48 +8044,27 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods/:identifier" }, - "method": "PUT", + "method": "DELETE", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshPaymentMethod\",\n \"metadata\": {\n \"name\": \"test-payment-method-1\",\n \"ownedByWorkspace\": \"payment-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Payment Method\",\n \"amount\": 1500.00,\n \"expirationDate\": \"2026-01-31\",\n \"tags\": {}\n }\n}", - "urlencoded": [ - - ] - } + ] }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", - "disabled": false - } - ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-payment-method-1\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Payment Method\",\n \"tags\" : { },\n \"amount\" : 1500,\n \"expirationDate\" : \"2026-01-31\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment-method-1\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=test-payment-method-1\"\n }\n }\n}", - "code": 200 + "code": 204 } ] }, { - "id": "meshPaymentMethodV2Delete", + "id": "meshPaymentMethodV2Put", "name": "/api/meshobjects/meshpaymentmethods/{identifier}", - "description": "Delete a specific meshPaymentMethod by identifier. meshStack currently only allows soft deletion of payment methods.\n\nPlease note that it is possible to retrieve a payment method via the GET meshPaymentMethod endpoint after deletion.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Update an existing meshPaymentMethod by identifier. This endpoint supports both updating an existing\npayment method as well as creating a new payment method if a payment method with this identifier does\nnot exist yet.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -8039,20 +8085,33 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods/:identifier" }, - "method": "DELETE", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshPaymentMethod\",\n \"metadata\": {\n \"name\": \"test-payment-method-1\",\n \"ownedByWorkspace\": \"payment-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Payment Method\",\n \"amount\": 1500.00,\n \"expirationDate\": \"2026-01-31\",\n \"tags\": {}\n }\n}", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshPaymentMethodV2Delete", - "name": "meshPaymentMethodV2Delete", + "id": "meshPaymentMethodV2Put", + "name": "meshPaymentMethodV2Put", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8067,20 +8126,41 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods/:identifier" }, - "method": "DELETE", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshPaymentMethod\",\n \"metadata\": {\n \"name\": \"test-payment-method-1\",\n \"ownedByWorkspace\": \"payment-workspace\"\n },\n \"spec\": {\n \"displayName\": \"Updated Payment Method\",\n \"amount\": 1500.00,\n \"expirationDate\": \"2026-01-31\",\n \"tags\": {}\n }\n}", + "urlencoded": [ + + ] + } }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 204 + "body": "{\n \"kind\" : \"meshPaymentMethod\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-payment-method-1\",\n \"ownedByWorkspace\" : \"payment-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Payment Method\",\n \"tags\" : { },\n \"amount\" : 1500,\n \"expirationDate\" : \"2026-01-31\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment-method-1\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?paymentIdentifier=test-payment-method-1\"\n }\n }\n}", + "code": 200 } ] }, @@ -8146,9 +8226,9 @@ ] }, { - "id": "meshPlatform-Put-V1-aks", + "id": "meshPlatform-Delete-V2", "name": "/api/meshobjects/meshplatforms/{uuid}", - "description": "Update an existing platform. The examples show all available configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Delete a meshPlatform by its UUID. WARNING: Deleting a meshPlatform has significant consequences. All associated meshTenants will be automatically purged in meshStack, but the actual cloud resources remain untouched. Usage reports for the current month will not be finalized and will not be included in chargeback statements. Users will lose access to platform tenants via meshStack but can still access them directly in the cloud platform. You cannot create a new meshPlatform with the same identifier in the same location. This operation cannot be undone. Ensure you have proper backups and have communicated the impact to affected users.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -8169,33 +8249,20 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "DELETE", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshPlatform-Put-V1-aks", - "name": "meshPlatform-Put-V1-aks", + "id": "meshPlatform-Delete-V2", + "name": "meshPlatform-Delete-V2", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8210,45 +8277,24 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "DELETE", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false - } - ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", - "code": 200 + "code": 204 }, { - "id": "meshPlatform-Put-V2-kubernetes", - "name": "meshPlatform-Put-V2-kubernetes", + "id": "meshPlatform-Delete-V1", + "name": "meshPlatform-Delete-V1", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8263,81 +8309,84 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "DELETE", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"84e38de6-17bd-4975-acc2-2f337100c1b7\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", - "urlencoded": [ - - ] - } + ] }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false - } - ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", - "code": 200 - }, - { - "id": "meshPlatform-Put-V2-azure", - "name": "meshPlatform-Put-V2-azure", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshplatforms/:uuid", - "variable": [ - { - "key": "uuid", - "description": "The UUID of the meshPlatform.", - "system": false, - "disabled": false + "code": 204 + } + ] + }, + { + "id": "meshPlatform-Get-V2-aks", + "name": "/api/meshobjects/meshplatforms/{uuid}", + "description": "Get a platform. The examples show the complete response including all configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshplatforms/:uuid", + "variable": [ + { + "key": "uuid", + "description": "The UUID of the meshPlatform.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + } + ] + }, + "response": [ + { + "id": "meshPlatform-Get-V2-aks", + "name": "meshPlatform-Get-V2-aks", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshplatforms/:uuid", + "variable": [ + { + "key": "uuid", + "description": "The UUID of the meshPlatform.", + "system": false, + "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"azureRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"}},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"}},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"azureRole\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}}],\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true},\"metering\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -8349,12 +8398,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a1f72da6be7aaaedaa39b63860dc190a56fd64d94f8d5bc4a80b698e8b309230\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:5d7406fc2a2264d7ebb154517cf272e5d8f321afa904674014aac1b03be19a0f\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:67961182f8b064537dca0b39318b9343008cec2a261fc7bf7639db4613c37a91\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V2-aks", - "name": "meshPlatform-Put-V2-aks", + "id": "meshPlatform-Get-V2-azurerg", + "name": "meshPlatform-Get-V2-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8369,28 +8418,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"6b5ea37b-1aaf-4967-858a-f35d6b562474\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"aks\",\"aks\":{\"baseUrl\":\"https://my-aks-cluster.region.azmk8s.io\",\"disableSslValidation\":false,\"replication\":{\"accessToken\":\"*****\",\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"aksSubscriptionId\":\"12345678-1234-1234-1234-123456789012\",\"aksClusterName\":\"aks\",\"aksResourceGroup\":\"aks-resource-group\",\"redirectUrl\":\"https://example.com/auth/callback\",\"sendAzureInvitationMail\":true,\"userLookUpStrategy\":\"userPrincipalName\",\"administrativeUnitId\":\"12345678-1234-1234-1234-123456789012\"},\"metering\":{\"clientConfig\":{\"accessToken\":\"******\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -8402,12 +8438,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:da6cd6c64a1a0e762673381a3de53ba2e8d3b660e9fcc82847aa5d386a976149\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V1-gcp", - "name": "meshPlatform-Put-V1-gcp", + "id": "meshPlatform-Get-V2-kubernetes", + "name": "meshPlatform-Get-V2-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8422,45 +8458,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"64aebcac-7320-48ac-ba2a-4478af7878ad\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"roleMappings\":{\"admin\":\"roles/owner\",\"member\":\"roles/editor\",\"reader\":\"roles/viewer\"},\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:54e2ab41e5df6d248233086f225d1cb3026afe1076c95f55d54688cb575554a7\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:591f84d517295002cedad1f76e550f48e27388275faf699cb3bec6d721fe0d26\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V2-aws", - "name": "meshPlatform-Put-V2-aws", + "id": "meshPlatform-Get-V1-openshift", + "name": "meshPlatform-Get-V1-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8475,45 +8498,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"awsRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"awsRole\":\"ReaderRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}],\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false},\"metering\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"filter\":\"NONE\",\"reservedInstanceFairChargeback\":false,\"savingsPlanFairChargeback\":false,\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V1-azurerg", - "name": "meshPlatform-Put-V1-azurerg", + "id": "meshPlatform-Get-V1-gcp", + "name": "meshPlatform-Get-V1-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8528,28 +8538,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"50931c5d-a94f-465c-8ada-7aadeffc267d\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -8561,12 +8558,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V1-aws", - "name": "meshPlatform-Put-V1-aws", + "id": "meshPlatform-Get-V1-azure", + "name": "meshPlatform-Get-V1-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8581,28 +8578,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"dc86975b-1098-4c96-92b6-43f9423263db\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"aws\",\"aws\":{\"region\":\"us-east-1\",\"replication\":{\"accessConfig\":{\"organizationRootAccountRole\":\"OrganizationAccountAccessRole\",\"organizationRootAccountExternalId\":\"external-id-12345\",\"serviceUserConfig\":{\"accessKey\":\"*****\",\"secretKey\":\"*****\"},\"workloadIdentityConfig\":null},\"waitForExternalAvm\":true,\"automationAccountRole\":\"meshstack-automation-role\",\"automationAccountExternalId\":\"automation-external-id\",\"accountAccessRole\":\"meshstack-account-access-role\",\"accountAliasPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enforceAccountAlias\":true,\"accountEmailPattern\":\"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"awsSso\":{\"scimEndpoint\":\"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\"arn\":\"arn:aws:sso:::instance/ssoins-123456789012\",\"groupNamePattern\":\"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\"ssoAccessToken\":\"sso-access-token-value\",\"roleMappings\":{\"admin\":{\"awsRoleName\":\"AdminRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\"]},\"member\":{\"awsRoleName\":\"MemberRole\",\"permissionSetArns\":[\"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\"]}},\"signInUrl\":\"https://d-123456789012.awsapps.com/start\"},\"enrollmentConfiguration\":{\"managementAccountId\":\"123456789012\",\"accountFactoryProductId\":\"prod-123456789012\"},\"selfDowngradeAccessRole\":false,\"skipUserGroupPermissionCleanup\":false,\"allowHierarchicalOrganizationalUnitAssignment\":false}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -8614,12 +8598,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V2-openshift", - "name": "meshPlatform-Put-V2-openshift", + "id": "meshPlatform-Get-V1-azurerg", + "name": "meshPlatform-Get-V1-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8634,45 +8618,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"openshiftRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"admin\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"edit\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"openshiftRole\":\"view\"}],\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}},\"metering\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n }", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V2-gcp", - "name": "meshPlatform-Put-V2-gcp", + "id": "meshPlatform-Get-V1-kubernetes", + "name": "meshPlatform-Get-V1-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8687,45 +8658,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"86f970c9-a042-48b2-8a72-0f86da488c33\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"gcp\",\"gcp\":{\"replication\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"domain\":\"example.com\",\"customerId\":\"C01234567\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"projectNamePattern\":\"#{workspaceIdentifier} - #{projectIdentifier}\",\"projectIdPattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"billingAccountId\":\"012345-ABCDEF-GHIJKL\",\"userLookupStrategy\":\"email\",\"usedExternalIdType\":null,\"gcpRoleMappings\":[{\"projectRoleRef\":{\"name\":\"admin\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/owner\"},{\"projectRoleRef\":{\"name\":\"member\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/editor\"},{\"projectRoleRef\":{\"name\":\"reader\",\"kind\":\"meshProjectRole\"},\"gcpRole\":\"roles/viewer\"}],\"allowHierarchicalFolderAssignment\":true,\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false},\"metering\":{\"serviceAccountConfig\":{\"serviceAccountCredentialsConfig\":{\"serviceAccountCredentialsB64\":\"*****\"},\"serviceAccountWorkloadIdentityConfig\":null},\"bigqueryTable\":\"project.dataset.table\",\"bigqueryTableForCarbonFootprint\":\"project.dataset.carbon_table\",\"carbonFootprintDataCollectionStartMonth\":\"2023-01\",\"partitionTimeColumn\":\"export_time\",\"additionalFilter\":\"project.id != 'excluded-project'\",\"processing\":{\"compactTimelinesAfterDays\":30,\"deleteRawDataAfterDays\":65}}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V2-azurerg", - "name": "meshPlatform-Put-V2-azurerg", + "id": "meshPlatform-Get-V2-openshift", + "name": "meshPlatform-Get-V2-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8740,28 +8698,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\"type\":\"azurerg\",\"azurerg\":{\"entraTenant\":\"contoso.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"subscription\":\"11111111-1111-1111-1111-111111111111\",\"resourceGroupNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\"userGroupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"userLookUpStrategy\":\"userPrincipalName\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"22222222-2222-2222-2222-222222222222\",\"allowHierarchicalManagementGroupAssignment\":false}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -8773,12 +8718,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:27135b23908ca4e4d1d7e6cd2496214bb0bc16450f9d714af13359d36df5bb7e\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:da85f516ba791aa9ee4c9d187305fd54e8c847b3623af33a733133f8db83bc99\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V1-openshift", - "name": "meshPlatform-Put-V1-openshift", + "id": "meshPlatform-Get-V2-gcp", + "name": "meshPlatform-Get-V2-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8793,45 +8738,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"30c27412-18d0-4068-b309-071d988f3d39\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"openshift\",\"openshift\":{\"baseUrl\":\"https://api.openshift.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"webConsoleUrl\":\"https://console-openshift-console.apps.openshift.example.com\",\"projectNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"enableTemplateInstantiation\":true,\"roleMappings\":{\"admin\":\"admin\",\"member\":\"edit\",\"reader\":\"view\"},\"identityProviderName\":\"meshstack-ldap\",\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"pident\",\"valuePattern\":\"prefix-${projectIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]}}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:c388b5b964d03e444aa285be9e2a2d2fea916835636c772a814c7066ebbf4a63\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1937bbff04ba7d18f8bb151ecae3c5ea101ab3fc71f2d89b29ae5dd195ffe8dc\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V1-kubernetes", - "name": "meshPlatform-Put-V1-kubernetes", + "id": "meshPlatform-Get-V2-aws", + "name": "meshPlatform-Get-V2-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8846,45 +8778,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"kubernetes\",\"kubernetes\":{\"baseUrl\":\"https://kubernetes.example.com:6443\",\"disableSslValidation\":false,\"replication\":{\"clientConfig\":{\"accessToken\":\"*****\"},\"namespaceNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\"}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:2776d45cbb61bd0a228a5c4c0c437f2d4cbb4caa3fa7c87d4a248a3c995f5481\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:1c9240a05e5aa0c1b5119968c64df5e03239166d5ded8a6078d4c6ed3faaafae\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:8d2d90614f1a7c0015d4d088d63a12816330a2f45fdcf80353ed0a1b0fecce15\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Put-V1-azure", - "name": "meshPlatform-Put-V1-azure", + "id": "meshPlatform-Get-V1-aws", + "name": "meshPlatform-Get-V1-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8899,28 +8818,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\"type\":\"azure\",\"azure\":{\"entraTenant\":\"aadtenant.onmicrosoft.com\",\"replication\":{\"servicePrincipal\":{\"clientId\":\"12345678-1234-1234-1234-123456789012\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\",\"objectId\":\"87654321-4321-4321-4321-210987654321\"},\"provisioning\":{\"subscriptionOwnerObjectIds\":[\"11111111-1111-1111-1111-111111111111\",\"22222222-2222-2222-2222-222222222222\"],\"enterpriseEnrollment\":{\"enrollmentAccountId\":\"123456\",\"subscriptionOfferType\":\"MS-AZR-0017P\",\"useLegacySubscriptionEnrollment\":false,\"subscriptionCreationErrorCooldownSec\":900},\"customerAgreement\":{\"sourceServicePrincipal\":{\"clientId\":\"33333333-3333-3333-3333-333333333333\",\"authType\":\"CREDENTIALS\",\"credentialsAuthClientSecret\":\"*****\"},\"destinationEntraId\":\"44444444-4444-4444-4444-444444444444\",\"sourceEntraTenant\":\"source.onmicrosoft.com\",\"billingScope\":\"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\"subscriptionCreationErrorCooldownSec\":900},\"preProvisioned\":{\"unusedSubscriptionNamePrefix\":\"meshstack-unused\"}},\"b2bUserInvitation\":{\"redirectUrl\":\"https://meshstack.example.com/auth/callback\",\"sendAzureInvitationMail\":true},\"subscriptionNamePattern\":\"#{workspaceIdentifier}-#{projectIdentifier}\",\"groupNamePattern\":\"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\"blueprintServicePrincipal\":\"55555555-5555-5555-5555-555555555555\",\"blueprintLocation\":\"West Europe\",\"roleMappings\":{\"admin\":{\"alias\":\"Owner\",\"id\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"},\"member\":{\"alias\":\"Contributor\",\"id\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"},\"reader\":{\"alias\":\"Reader\",\"id\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"}},\"tenantTags\":{\"namespacePrefix\":\"meshstack_\",\"tagMappers\":[{\"key\":\"wident\",\"valuePattern\":\"prefix-${workspaceIdentifier}\"},{\"key\":\"environment\",\"valuePattern\":\"production\"}]},\"userLookUpStrategy\":\"userPrincipalName\",\"skipUserGroupPermissionCleanup\":false,\"administrativeUnitId\":\"77777777-7777-7777-7777-777777777777\",\"allowHierarchicalManagementGroupAssignment\":true}}}\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -8932,49 +8838,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 - } - ] - }, - { - "id": "meshPlatform-Get-V2-azure", - "name": "/api/meshobjects/meshplatforms/{uuid}", - "description": "Get a platform. The examples show the complete response including all configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshplatforms/:uuid", - "variable": [ - { - "key": "uuid", - "description": "The UUID of the meshPlatform.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." - } - ] - }, - "response": [ { - "id": "meshPlatform-Get-V2-azure", - "name": "meshPlatform-Get-V2-azure", + "id": "meshPlatform-Get-V1-aks", + "name": "meshPlatform-Get-V1-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8993,28 +8862,28 @@ "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72b658b2-6b5a-454a-b6a1-a8fb6b5496e0\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V2-gcp", - "name": "meshPlatform-Get-V2-gcp", + "id": "meshPlatform-Get-V2-azure", + "name": "meshPlatform-Get-V2-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9049,12 +8918,62 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/86f970c9-a042-48b2-8a72-0f86da488c33\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:4650f4aba4b817cf0ae3dd1238839b15ba81e7a04be745a7c5ddf28d10dbe411\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:159df31e7949bee5c5792d00ada5de8a3f603c7ecea6e64433f16e38e06a265d\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4514fe9857aa65a9241c491e058729a1a1b43cf05048294e29ad9e8098934de\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 + } + ] + }, + { + "id": "meshPlatform-Put-V2-gcp", + "name": "/api/meshobjects/meshplatforms/{uuid}", + "description": "Update an existing platform. The examples show all available configuration options for a given platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshplatforms/:uuid", + "variable": [ + { + "key": "uuid", + "description": "The UUID of the meshPlatform.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"624e2f32-7bd2-4544-946b-9d2844a44ae7\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } + }, + "response": [ { - "id": "meshPlatform-Get-V2-kubernetes", - "name": "meshPlatform-Get-V2-kubernetes", + "id": "meshPlatform-Put-V2-gcp", + "name": "meshPlatform-Put-V2-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9069,15 +8988,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"624e2f32-7bd2-4544-946b-9d2844a44ae7\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { @@ -9089,12 +9021,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/84e38de6-17bd-4975-acc2-2f337100c1b7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1eaea39884dcb242658a81115f6f14aa704a2a512d5fb92c8c38b1a7aad25227\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"gcpRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/owner\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/editor\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"gcpRole\" : \"roles/viewer\"\n } ],\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n },\n \"metering\" : {\n \"serviceAccount\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:76c87a86da241399b90bba832c161cd20f08dcdab4f9f8d208e74bb2233052ec\"\n }\n },\n \"bigqueryTable\" : \"project.dataset.table\",\n \"bigqueryTableForCarbonFootprint\" : \"project.dataset.carbon_table\",\n \"carbonFootprintDataCollectionStartMonth\" : \"2023-01\",\n \"partitionTimeColumn\" : \"export_time\",\n \"additionalFilter\" : \"project.id != 'excluded-project'\",\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/624e2f32-7bd2-4544-946b-9d2844a44ae7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V1-openshift", - "name": "meshPlatform-Get-V1-openshift", + "id": "meshPlatform-Put-V2-azure", + "name": "meshPlatform-Put-V2-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9109,32 +9041,45 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"72093497-42d1-4627-b3eb-9b473144e77a\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/30c27412-18d0-4068-b309-071d988f3d39\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:049e0d064434ba93556313dbe6bb597d1cfc2948be688f3f9806bbd8da3ab8f2\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:314caa0f25d395036055c3ec1003405991b7efbb80cb245212a88fa1288747aa\"\n }\n }\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"azureRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n }\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"azureRole\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n } ],\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n },\n \"metering\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:b4304402aa902a654c0675f6c26fe44759e4a09ee4dc1444a0436f38270bcc9d\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/72093497-42d1-4627-b3eb-9b473144e77a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V1-gcp", - "name": "meshPlatform-Get-V1-gcp", + "id": "meshPlatform-Put-V2-openshift", + "name": "meshPlatform-Put-V2-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9149,32 +9094,45 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp\",\n \"description\" : \"test-platform-gcp\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/64aebcac-7320-48ac-ba2a-4478af7878ad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:3930d71d901339c705db68c6c9e936b786bd2109deba5dc2a291656e042e84fc\"\n }\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:23bd866e9f3a693d32937fbe1eace4c4b58f3f450823fa9bd7251ad3c617f4a1\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4ac15c53-ea0b-4677-9f41-8094bf0d9de8\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V2-azurerg", - "name": "meshPlatform-Get-V2-azurerg", + "id": "meshPlatform-Put-V2-kubernetes", + "name": "meshPlatform-Put-V2-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9189,15 +9147,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"67d9d50e-4647-400d-b1ab-77d92d64a215\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { @@ -9209,12 +9180,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2cc7ed4a-783d-4946-bce3-b5de6e626bb1\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:b3a6cdd668be75a6cb239fda82fc5ea8249fa36d9b46331af8f074e3d0606676\"\n }\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:a356420aa3bd1a0bfb66c77d6f944efbd6998550a926738ae1296ccf2ffad001\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/67d9d50e-4647-400d-b1ab-77d92d64a215\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V1-kubernetes", - "name": "meshPlatform-Get-V1-kubernetes", + "id": "meshPlatform-Put-V1-aks", + "name": "meshPlatform-Put-V1-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9229,15 +9200,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"ca370346-86b3-4816-8ec4-c912f087a52d\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"*****\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { @@ -9249,12 +9233,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes\",\n \"description\" : \"test-platform-kubernetes\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a754b6b4-7cd4-4c67-a842-66a263f9af9a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/ca370346-86b3-4816-8ec4-c912f087a52d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V2-aks", - "name": "meshPlatform-Get-V2-aks", + "id": "meshPlatform-Put-V2-azurerg", + "name": "meshPlatform-Put-V2-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9269,15 +9253,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { @@ -9289,12 +9286,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/6b5ea37b-1aaf-4967-858a-f35d6b562474\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:1b3e9e472822c72a8829f0821f1b8bb90d3a80ad7c08ec29fa3d77004cebf486\"\n }\n },\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/9ceca38e-2e93-455a-a00b-6f56ebee8c97\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V1-aws", - "name": "meshPlatform-Get-V1-aws", + "id": "meshPlatform-Put-V1-aws", + "name": "meshPlatform-Put-V1-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9309,15 +9306,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4a867d38-a799-4abe-8d57-b695fb945d37\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"*****\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"sso-access-token-value\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { @@ -9329,12 +9339,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/dc86975b-1098-4c96-92b6-43f9423263db\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"roleMappings\" : {\n \"admin\" : {\n \"awsRoleName\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n },\n \"member\" : {\n \"awsRoleName\" : \"MemberRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n }\n },\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4a867d38-a799-4abe-8d57-b695fb945d37\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V2-aws", - "name": "meshPlatform-Get-V2-aws", + "id": "meshPlatform-Put-V2-aws", + "name": "meshPlatform-Put-V2-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9349,15 +9359,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\",\n \"name\": \"aws-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aws-updated\",\n \"description\": \"test-platform-aws-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [],\n \"config\": {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"plaintext\" : \"sso-access-token-value\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"plaintext\" : \"sample-secret\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { @@ -9369,12 +9392,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws\",\n \"description\" : \"test-platform-aws\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : \"mesh/hidden-secret\",\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"serviceUserConfig\" : {\n \"accessKey\" : \"*****\",\n \"secretKey\" : \"mesh/hidden-secret\"\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/b8579fd5-11ab-4d4b-9f89-c98db064a4e4\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aws-updated\",\n \"description\" : \"test-platform-aws-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aws\",\n \"aws\" : {\n \"region\" : \"us-east-1\",\n \"replication\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:bad878c0be2657848e1d7709b2fdd649ce0b0cb752e014f580f4559eb484f3c2\"\n }\n }\n }\n },\n \"waitForExternalAvm\" : true,\n \"automationAccountRole\" : \"meshstack-automation-role\",\n \"automationAccountExternalId\" : \"automation-external-id\",\n \"accountAccessRole\" : \"meshstack-account-access-role\",\n \"accountAliasPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enforceAccountAlias\" : true,\n \"accountEmailPattern\" : \"aws+#{workspaceIdentifier}.#{projectIdentifier}.#{tenantPlatformNumber}@example.com\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"awsSso\" : {\n \"scimEndpoint\" : \"https://scim.us-east-1.amazonaws.com/12345678-1234-1234-1234-123456789012/scim/v2/\",\n \"arn\" : \"arn:aws:sso:::instance/ssoins-123456789012\",\n \"groupNamePattern\" : \"example.#{workspaceIdentifier}.#{projectIdentifier}.#{platformGroupAlias}\",\n \"ssoAccessToken\" : {\n \"hash\" : \"sha256:a19540d809291fe9606393b6f7a6f1f05056b9b07f2cedd814478bbe2d00b9d3\"\n },\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"AdminRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-123456789012\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"awsRole\" : \"ReaderRole\",\n \"permissionSetArns\" : [ \"arn:aws:sso:::permissionSet/ssoins-123456789012/ps-098765432109\" ]\n } ],\n \"signInUrl\" : \"https://d-123456789012.awsapps.com/start\"\n },\n \"enrollmentConfiguration\" : {\n \"managementAccountId\" : \"123456789012\",\n \"accountFactoryProductId\" : \"prod-123456789012\"\n },\n \"selfDowngradeAccessRole\" : false,\n \"skipUserGroupPermissionCleanup\" : false,\n \"allowHierarchicalOrganizationalUnitAssignment\" : false\n },\n \"metering\" : {\n \"accessConfig\" : {\n \"organizationRootAccountRole\" : \"OrganizationAccountAccessRole\",\n \"organizationRootAccountExternalId\" : \"external-id-12345\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"accessKey\" : \"AKIAIOSFODNN7EXAMPLE\",\n \"secretKey\" : {\n \"hash\" : \"sha256:ae9a969772f48321dc12d5b31cc029645df18f198e2504d2a9a449302f89feab\"\n }\n }\n }\n },\n \"filter\" : \"NONE\",\n \"reservedInstanceFairChargeback\" : false,\n \"savingsPlanFairChargeback\" : false,\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/f577b1ab-96fc-4471-a5e4-f83c3a5e9778\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V1-aks", - "name": "meshPlatform-Get-V1-aks", + "id": "meshPlatform-Put-V2-aks", + "name": "meshPlatform-Put-V2-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9389,32 +9412,45 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\",\n \"name\": \"aks-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-aks-updated\",\n \"description\": \"test-platform-aks-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"name\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"publicationState\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"quotaDefinitions\": [{\n \"quotaKey\": \"cpu\",\n \"label\": \"CPU Cores Updated\",\n \"description\": \"Maximum number of CPU cores (updated)\",\n \"unit\": \"cores\",\n \"minValue\": 1,\n \"maxValue\": 200,\n \"autoApprovalThreshold\": 75\n},\n{\n \"quotaKey\": \"memory\",\n \"label\": \"Memory Updated\",\n \"description\": \"Maximum memory allocation (updated)\",\n \"unit\": \"GB\",\n \"minValue\": 1,\n \"maxValue\": 1000,\n \"autoApprovalThreshold\": 500\n}],\n \"config\": {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"plaintext\" : \"sample-secret\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"plaintext\" : \"sample-access-token\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks\",\n \"description\" : \"test-platform-aks\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : \"mesh/hidden-secret\",\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"administrativeUnitId\" : \"12345678-1234-1234-1234-123456789012\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/387a3a23-628b-4e68-8cc6-6bb30eb1c054\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-aks-updated\",\n \"description\" : \"test-platform-aks-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"aks\",\n \"aks\" : {\n \"baseUrl\" : \"https://my-aks-cluster.region.azmk8s.io\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:16e9a895bf1cf8a122fd5204acbbaf0f5766fd85855002f20ebe350f40a28458\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"aks-#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"auth\" : {\n \"type\" : \"credential\",\n \"credential\" : {\n \"hash\" : \"sha256:28b4d3aea334447442394eb4e77122e397318b5b2570726c4a5bb48de387321a\"\n }\n },\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"aksSubscriptionId\" : \"12345678-1234-1234-1234-123456789012\",\n \"aksClusterName\" : \"aks\",\n \"aksResourceGroup\" : \"aks-resource-group\",\n \"redirectUrl\" : \"https://example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true,\n \"userLookUpStrategy\" : \"UserByMailLookupStrategy\",\n \"administrativeUnitId\" : \"3f52c8c1-9d4e-4c1a-b6df-1ea2f6b8f927\"\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : {\n \"hash\" : \"sha256:ed80c632e4b93c6145fcdfe19fb2ba09265a344ef4d09839e7c5c1847dd85876\"\n }\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores Updated\",\n \"description\" : \"Maximum number of CPU cores (updated)\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 200,\n \"autoApprovalThreshold\" : 75\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory Updated\",\n \"description\" : \"Maximum memory allocation (updated)\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 1000,\n \"autoApprovalThreshold\" : 500\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/2f6f6c77-0316-4943-8152-cdb0d15fc0e5\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V1-azurerg", - "name": "meshPlatform-Get-V1-azurerg", + "id": "meshPlatform-Put-V1-azure", + "name": "meshPlatform-Put-V1-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9429,15 +9465,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"4c7d9602-4002-48c1-8613-6c17c93d1d66\",\n \"name\": \"azure-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azure-updated\",\n \"description\": \"test-platform-azure-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { @@ -9449,12 +9498,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg\",\n \"description\" : \"test-platform-azurerg\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/50931c5d-a94f-465c-8ada-7aadeffc267d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure-updated\",\n \"description\" : \"test-platform-azure-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/4c7d9602-4002-48c1-8613-6c17c93d1d66\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V2-openshift", - "name": "meshPlatform-Get-V2-openshift", + "id": "meshPlatform-Put-V1-gcp", + "name": "meshPlatform-Put-V1-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9469,32 +9518,45 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\",\n \"name\": \"gcp-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-gcp-updated\",\n \"description\": \"test-platform-gcp-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"*****\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"name\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift\",\n \"description\" : \"test-platform-openshift\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"openshiftRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"admin\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"member\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"edit\"\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"openshiftRole\" : \"view\"\n } ],\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n },\n \"metering\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"processing\" : {\n \"compactTimelinesAfterDays\" : 30,\n \"deleteRawDataAfterDays\" : 65\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ],\n \"quotaDefinitions\" : [ {\n \"quotaKey\" : \"cpu\",\n \"label\" : \"CPU Cores\",\n \"description\" : \"Maximum number of CPU cores\",\n \"unit\" : \"cores\",\n \"minValue\" : 1,\n \"maxValue\" : 100,\n \"autoApprovalThreshold\" : 50\n }, {\n \"quotaKey\" : \"memory\",\n \"label\" : \"Memory\",\n \"description\" : \"Maximum memory allocation\",\n \"unit\" : \"GB\",\n \"minValue\" : 1,\n \"maxValue\" : 500,\n \"autoApprovalThreshold\" : 250\n } ]\n },\n \"status\" : {\n \"metering\" : \"PENDING\",\n \"availability\" : {\n \"publicationState\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/8b6129b8-4ac5-4542-85c0-85489a1bbb3c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-gcp-updated\",\n \"description\" : \"test-platform-gcp-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"gcp\",\n \"gcp\" : {\n \"replication\" : {\n \"serviceAccountConfig\" : {\n \"serviceAccountCredentialsConfig\" : {\n \"serviceAccountCredentialsB64\" : \"mesh/hidden-secret\"\n }\n },\n \"domain\" : \"example.com\",\n \"customerId\" : \"C01234567\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"projectNamePattern\" : \"#{workspaceIdentifier} - #{projectIdentifier}\",\n \"projectIdPattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"billingAccountId\" : \"012345-ABCDEF-GHIJKL\",\n \"userLookupStrategy\" : \"email\",\n \"roleMappings\" : {\n \"admin\" : \"roles/owner\",\n \"member\" : \"roles/editor\",\n \"reader\" : \"roles/viewer\"\n },\n \"allowHierarchicalFolderAssignment\" : true,\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1d62eeb9-0889-49eb-a425-6eb77184e0bf\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatform-Get-V1-azure", - "name": "meshPlatform-Get-V1-azure", + "id": "meshPlatform-Put-V1-kubernetes", + "name": "meshPlatform-Put-V1-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9509,15 +9571,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"a8e75ec6-7d27-4046-9db2-313e4034bf94\",\n \"name\": \"kubernetes-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-kubernetes-updated\",\n \"description\": \"test-platform-kubernetes-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, "header": [ { @@ -9529,49 +9604,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azure\",\n \"description\" : \"test-platform-azure\",\n \"endpoint\" : \"\",\n \"supportUrl\" : \"\",\n \"documentationUrl\" : \"\",\n \"config\" : {\n \"type\" : \"azure\",\n \"azure\" : {\n \"entraTenant\" : \"aadtenant.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"provisioning\" : {\n \"subscriptionOwnerObjectIds\" : [ \"11111111-1111-1111-1111-111111111111\", \"22222222-2222-2222-2222-222222222222\" ],\n \"enterpriseEnrollment\" : {\n \"enrollmentAccountId\" : \"123456\",\n \"subscriptionOfferType\" : \"MS-AZR-0017P\",\n \"useLegacySubscriptionEnrollment\" : false,\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"customerAgreement\" : {\n \"sourceServicePrincipal\" : {\n \"clientId\" : \"33333333-3333-3333-3333-333333333333\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\"\n },\n \"destinationEntraId\" : \"44444444-4444-4444-4444-444444444444\",\n \"sourceEntraTenant\" : \"source.onmicrosoft.com\",\n \"billingScope\" : \"/billingAccounts/12345:67890/billingProfiles/ABCD-EFGH-1234/invoiceSections/IJKL-MNOP-5678\",\n \"subscriptionCreationErrorCooldownSec\" : 900\n },\n \"preProvisioned\" : {\n \"unusedSubscriptionNamePrefix\" : \"meshstack-unused\"\n }\n },\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"subscriptionNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"groupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"blueprintServicePrincipal\" : \"55555555-5555-5555-5555-555555555555\",\n \"blueprintLocation\" : \"West Europe\",\n \"roleMappings\" : {\n \"admin\" : {\n \"alias\" : \"Owner\",\n \"id\" : \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\n },\n \"member\" : {\n \"alias\" : \"Contributor\",\n \"id\" : \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n },\n \"reader\" : {\n \"alias\" : \"Reader\",\n \"id\" : \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\n }\n },\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"77777777-7777-7777-7777-777777777777\",\n \"allowHierarchicalManagementGroupAssignment\" : true\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/daac5a12-54f4-4b36-b3e2-1a9e221902a7\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-kubernetes-updated\",\n \"description\" : \"test-platform-kubernetes-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"kubernetes\",\n \"kubernetes\" : {\n \"baseUrl\" : \"https://kubernetes.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"namespaceNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\"\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/a8e75ec6-7d27-4046-9db2-313e4034bf94\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 - } - ] - }, - { - "id": "meshPlatform-Delete-V1", - "name": "/api/meshobjects/meshplatforms/{uuid}", - "description": "Delete a meshPlatform by its UUID. WARNING: Deleting a meshPlatform has significant consequences. All associated meshTenants will be automatically purged in meshStack, but the actual cloud resources remain untouched. Usage reports for the current month will not be finalized and will not be included in chargeback statements. Users will lose access to platform tenants via meshStack but can still access them directly in the cloud platform. You cannot create a new meshPlatform with the same identifier in the same location. This operation cannot be undone. Ensure you have proper backups and have communicated the impact to affected users.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshplatforms/:uuid", - "variable": [ - { - "key": "uuid", - "description": "The UUID of the meshPlatform.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "DELETE", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." - } - ] - }, - "response": [ { - "id": "meshPlatform-Delete-V1", - "name": "meshPlatform-Delete-V1", + "id": "meshPlatform-Put-V1-azurerg", + "name": "meshPlatform-Put-V1-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9586,24 +9624,45 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "DELETE", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key": "Accept", "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"d9660c03-dd72-4eca-b126-407fa78a2cad\",\n \"name\": \"azurerg-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-azurerg-updated\",\n \"description\": \"test-platform-azurerg-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"*****\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 204 + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-azurerg-updated\",\n \"description\" : \"test-platform-azurerg-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"azurerg\",\n \"azurerg\" : {\n \"entraTenant\" : \"contoso.onmicrosoft.com\",\n \"replication\" : {\n \"servicePrincipal\" : {\n \"clientId\" : \"12345678-1234-1234-1234-123456789012\",\n \"authType\" : \"CREDENTIALS\",\n \"credentialsAuthClientSecret\" : \"mesh/hidden-secret\",\n \"objectId\" : \"87654321-4321-4321-4321-210987654321\"\n },\n \"subscription\" : \"11111111-1111-1111-1111-111111111111\",\n \"resourceGroupNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}-rg\",\n \"userGroupNamePattern\" : \"#{workspaceIdentifier}.#{projectIdentifier}-#{platformGroupAlias}\",\n \"b2bUserInvitation\" : {\n \"redirectUrl\" : \"https://meshstack.example.com/auth/callback\",\n \"sendAzureInvitationMail\" : true\n },\n \"userLookUpStrategy\" : \"userPrincipalName\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n },\n \"skipUserGroupPermissionCleanup\" : false,\n \"administrativeUnitId\" : \"22222222-2222-2222-2222-222222222222\",\n \"allowHierarchicalManagementGroupAssignment\" : false\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/d9660c03-dd72-4eca-b126-407fa78a2cad\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code": 200 }, { - "id": "meshPlatform-Delete-V2", - "name": "meshPlatform-Delete-V2", + "id": "meshPlatform-Put-V1-openshift", + "name": "meshPlatform-Put-V1-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9618,27 +9677,48 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "DELETE", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." + }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshplatform.v1.hal+json` for this version of the endpoint." } - ] + ], + "body": { + "mode": "raw", + "raw": " {\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\",\n \"name\": \"openshift-dev\",\n \"ownedByWorkspace\": \"test-workspace\"\n },\n \"spec\": {\n \"displayName\": \"test-platform-openshift-updated\",\n \"description\": \"test-platform-openshift-updated\",\n \"endpoint\": \"https://updated.example.com\",\n \"supportUrl\": \"https://support.updated.example.com\",\n \"documentationUrl\": \"https://docs.updated.example.com\",\n \"locationRef\": {\n \"kind\": \"meshLocation\",\n \"identifier\": \"test-dev\"\n },\n \"contributingWorkspaces\": [],\n \"availability\": {\n \"restriction\": \"PRIVATE\",\n \"marketplaceStatus\": \"UNPUBLISHED\",\n \"restrictedToWorkspaces\": [\"test-workspace\"]\n },\n \"config\": {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"*****\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n}\n }\n }", + "urlencoded": [ + + ] + } }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 204 + "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"spec\" : {\n \"locationRef\" : {\n \"identifier\" : \"test-dev\",\n \"kind\" : \"meshLocation\"\n },\n \"availability\" : {\n \"restriction\" : \"PRIVATE\",\n \"restrictedToWorkspaces\" : [ \"test-workspace\" ],\n \"marketplaceStatus\" : \"UNPUBLISHED\"\n },\n \"displayName\" : \"test-platform-openshift-updated\",\n \"description\" : \"test-platform-openshift-updated\",\n \"endpoint\" : \"https://updated.example.com\",\n \"supportUrl\" : \"https://support.updated.example.com\",\n \"documentationUrl\" : \"https://docs.updated.example.com\",\n \"config\" : {\n \"type\" : \"openshift\",\n \"openshift\" : {\n \"baseUrl\" : \"https://api.openshift.example.com:6443\",\n \"disableSslValidation\" : false,\n \"replication\" : {\n \"clientConfig\" : {\n \"accessToken\" : \"mesh/hidden-secret\"\n },\n \"webConsoleUrl\" : \"https://console-openshift-console.apps.openshift.example.com\",\n \"projectNamePattern\" : \"#{workspaceIdentifier}-#{projectIdentifier}\",\n \"enableTemplateInstantiation\" : true,\n \"roleMappings\" : {\n \"admin\" : \"admin\",\n \"member\" : \"edit\",\n \"reader\" : \"view\"\n },\n \"identityProviderName\" : \"meshstack-ldap\",\n \"tenantTags\" : {\n \"namespacePrefix\" : \"meshstack_\",\n \"tagMappers\" : [ {\n \"key\" : \"wident\",\n \"valuePattern\" : \"prefix-${workspaceIdentifier}\"\n }, {\n \"key\" : \"pident\",\n \"valuePattern\" : \"prefix-${projectIdentifier}\"\n }, {\n \"key\" : \"environment\",\n \"valuePattern\" : \"production\"\n } ]\n }\n }\n }\n },\n \"contributingWorkspaces\" : [ ]\n },\n \"status\" : {\n \"metering\" : \"NOT_DEFINED\",\n \"marketPlace\" : {\n \"status\" : \"UNPUBLISHED\"\n },\n \"platform\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatforms/1b03395a-f3b6-47f1-b228-ccec08f0b89e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code": 200 } ] }, { - "id": "meshPlatformTypeV1", + "id": "meshPlatformTypeV1Delete", "name": "/api/meshobjects/meshplatformtypes/{identifier}", - "description": "Retrieve detailed information about a specific meshPlatformType\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Deactivate a specific meshPlatformType by identifier. Only platform types of category 'CUSTOM' can be\ndeactivated. Deactivating a meshPlatformType will set its status to 'DEACTIVATED', preventing new \nplatforms from being created of this type. Existing platforms will not be affected.\n\nOnly admin users with delete permissions on platforms can deactivate platform types.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -9652,14 +9732,14 @@ "variable": [ { "key": "identifier", - "description": "The identifier that uniquely identifies the meshPlatformType.", + "description": "The platform type identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshplatformtypes/:identifier" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -9671,8 +9751,8 @@ }, "response": [ { - "id": "meshPlatformTypeV1", - "name": "meshPlatformTypeV1", + "id": "meshPlatformTypeV1Delete", + "name": "meshPlatformTypeV1Delete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9680,14 +9760,14 @@ "variable": [ { "key": "identifier", - "description": "The identifier that uniquely identifies the meshPlatformType.", + "description": "The platform type identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshplatformtypes/:identifier" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -9697,18 +9777,10 @@ } ] }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", - "disabled": false - } - ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}", - "code": 200 + "code": 204 } ] }, @@ -9810,15 +9882,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"0ca53257-2a0e-4777-9dae-e5e46f4c0cb8\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-03T13:49:57.325025255Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Custom Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://updated.example.com\",\n \"icon\" : \"updated-icon\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Custom Platform\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://updated.example.com\",\n \"icon\" : \"updated-icon\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshPlatformTypeV1Delete", + "id": "meshPlatformTypeV1", "name": "/api/meshobjects/meshplatformtypes/{identifier}", - "description": "Deactivate a specific meshPlatformType by identifier. Only platform types of category 'CUSTOM' can be\ndeactivated. Deactivating a meshPlatformType will set its status to 'DEACTIVATED', preventing new \nplatforms from being created of this type. Existing platforms will not be affected.\n\nOnly admin users with delete permissions on platforms can deactivate platform types.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Retrieve detailed information about a specific meshPlatformType\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -9832,14 +9904,14 @@ "variable": [ { "key": "identifier", - "description": "The platform type identifier.", + "description": "The identifier that uniquely identifies the meshPlatformType.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshplatformtypes/:identifier" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -9851,8 +9923,8 @@ }, "response": [ { - "id": "meshPlatformTypeV1Delete", - "name": "meshPlatformTypeV1Delete", + "id": "meshPlatformTypeV1", + "name": "meshPlatformTypeV1", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9860,14 +9932,14 @@ "variable": [ { "key": "identifier", - "description": "The platform type identifier.", + "description": "The identifier that uniquely identifies the meshPlatformType.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshplatformtypes/:identifier" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -9877,10 +9949,103 @@ } ] }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatformtype.v1-preview.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 204 + "body": "{\n \"kind\" : \"meshPlatformType\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d4fcdf0f-d001-4fe1-8b55-f460def71fda\",\n \"name\" : \"my-platform-type\",\n \"createdOn\" : \"2025-12-09T14:58:22.582503834Z\"\n },\n \"spec\" : {\n \"displayName\" : \"My Platform Type\",\n \"category\" : \"CUSTOM\",\n \"defaultEndpoint\" : \"https://custom.example.com\",\n \"icon\" : \"data:image/png;base64,iVBORw0KGgo...\"\n },\n \"status\" : {\n \"lifecycleState\" : \"ACTIVE\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshplatformtypes/my-platform-type\"\n }\n }\n}", + "code": 200 + } + ] + }, + { + "id": "meshProjectGroupBindingListV3", + "name": "/api/meshobjects/meshprojectbindings/groupbindings", + "description": "List all meshProjectGroupBindings for a specific project with optional filtering and pagination.\n\nA meshProjectGroupBinding is an assignment of groups to a project with a specified project role.\nThese project roles grant groups a specific set of permissions within the cloud platforms used\nby the project. The actual permissions that the role have within the platform tenant are\ndetermined by the policies set by your cloud foundation team.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshprojectbindings/groupbindings", + "query": [ + { + "key": "workspaceIdentifier", + "disabled": false, + "description": "The identifier of the workspace containing the project with the requested bindings (Optional)" + }, + { + "key": "projectIdentifier", + "disabled": false, + "description": "The project identifier of the project that contains the requested bindings (Optional)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshprojectbindings/groupbindings" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." + } + ] + }, + "response": [ + { + "id": "meshProjectGroupBindingListV3", + "name": "meshProjectGroupBindingListV3", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshprojectbindings/groupbindings", + "query": [ + { + "key": "workspaceIdentifier", + "disabled": false, + "description": "The identifier of the workspace containing the project with the requested bindings (Optional)" + }, + { + "key": "projectIdentifier", + "disabled": false, + "description": "The project identifier of the project that contains the requested bindings (Optional)" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshprojectbindings/groupbindings" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "code": 200 } ] }, @@ -9972,9 +10137,9 @@ ] }, { - "id": "meshProjectGroupBindingListV3", - "name": "/api/meshobjects/meshprojectbindings/groupbindings", - "description": "List all meshProjectGroupBindings for a specific project with optional filtering and pagination.\n\nA meshProjectGroupBinding is an assignment of groups to a project with a specified project role.\nThese project roles grant groups a specific set of permissions within the cloud platforms used\nby the project. The actual permissions that the role have within the platform tenant are\ndetermined by the policies set by your cloud foundation team.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshProjectUserBindingListV3", + "name": "/api/meshobjects/meshprojectbindings/userbindings", + "description": "List all meshProjectUserBindings for a specific project with optional filtering and pagination.\n\nA meshProjectUserBinding is an assignment of users to a project with a specified project role.\nThese project roles grant users a specific set of permissions within the cloud platforms used\nby the project. The actual permissions that the role have within the platform tenant are determined\nby the policies set by your cloud foundation team.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -9984,74 +10149,74 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojectbindings/groupbindings", + "path": "/api/meshobjects/meshprojectbindings/userbindings", "query": [ { "key": "workspaceIdentifier", "disabled": false, - "description": "The identifier of the workspace containing the project with the requested bindings (Optional)" + "description": "The identifier of the workspace the project with the bindings belongs to. (Optional)" }, { "key": "projectIdentifier", "disabled": false, - "description": "The project identifier of the project that contains the requested bindings (Optional)" + "description": "The project identifier of the project that contains the requested bindings. (Optional)" } ], - "raw": "{{baseUrl}}/api/meshobjects/meshprojectbindings/groupbindings" + "raw": "{{baseUrl}}/api/meshobjects/meshprojectbindings/userbindings" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." } ] }, "response": [ { - "id": "meshProjectGroupBindingListV3", - "name": "meshProjectGroupBindingListV3", + "id": "meshProjectUserBindingListV3", + "name": "meshProjectUserBindingListV3", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojectbindings/groupbindings", + "path": "/api/meshobjects/meshprojectbindings/userbindings", "query": [ { "key": "workspaceIdentifier", "disabled": false, - "description": "The identifier of the workspace containing the project with the requested bindings (Optional)" + "description": "The identifier of the workspace the project with the bindings belongs to. (Optional)" }, { "key": "projectIdentifier", "disabled": false, - "description": "The project identifier of the project that contains the requested bindings (Optional)" + "description": "The project identifier of the project that contains the requested bindings. (Optional)" } ], - "raw": "{{baseUrl}}/api/meshobjects/meshprojectbindings/groupbindings" + "raw": "{{baseUrl}}/api/meshobjects/meshprojectbindings/userbindings" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -10144,9 +10309,9 @@ ] }, { - "id": "meshProjectUserBindingListV3", - "name": "/api/meshobjects/meshprojectbindings/userbindings", - "description": "List all meshProjectUserBindings for a specific project with optional filtering and pagination.\n\nA meshProjectUserBinding is an assignment of users to a project with a specified project role.\nThese project roles grant users a specific set of permissions within the cloud platforms used\nby the project. The actual permissions that the role have within the platform tenant are determined\nby the policies set by your cloud foundation team.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshProjectRoleV1", + "name": "/api/meshobjects/meshprojectroles/{identifier}", + "description": "Retrieve detailed information about a specific meshProjectRole\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -10156,74 +10321,66 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojectbindings/userbindings", - "query": [ - { - "key": "workspaceIdentifier", - "disabled": false, - "description": "The identifier of the workspace the project with the bindings belongs to. (Optional)" - }, + "path": "/api/meshobjects/meshprojectroles/:identifier", + "variable": [ { - "key": "projectIdentifier", - "disabled": false, - "description": "The project identifier of the project that contains the requested bindings. (Optional)" + "key": "identifier", + "description": "The identifier that uniquely identifies the meshProjectRole.", + "system": false, + "disabled": false } ], - "raw": "{{baseUrl}}/api/meshobjects/meshprojectbindings/userbindings" + "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles/:identifier" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." } ] }, "response": [ { - "id": "meshProjectUserBindingListV3", - "name": "meshProjectUserBindingListV3", + "id": "meshProjectRoleV1", + "name": "meshProjectRoleV1", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojectbindings/userbindings", - "query": [ - { - "key": "workspaceIdentifier", - "disabled": false, - "description": "The identifier of the workspace the project with the bindings belongs to. (Optional)" - }, + "path": "/api/meshobjects/meshprojectroles/:identifier", + "variable": [ { - "key": "projectIdentifier", - "disabled": false, - "description": "The project identifier of the project that contains the requested bindings. (Optional)" + "key": "identifier", + "description": "The identifier that uniquely identifies the meshProjectRole.", + "system": false, + "disabled": false } ], - "raw": "{{baseUrl}}/api/meshobjects/meshprojectbindings/userbindings" + "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles/:identifier" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=test-workspace&projectIdentifier=test-project-1\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-admin\",\n \"tags\" : {\n \"priority\" : [ \"high\" ],\n \"access\" : [ \"admin\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Administrator\",\n \"description\" : \"Full administrative access to projects\",\n \"rank\" : 100\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-admin\"\n }\n }\n}", "code": 200 } ] @@ -10297,83 +10454,6 @@ } ] }, - { - "id": "meshProjectRoleV1", - "name": "/api/meshobjects/meshprojectroles/{identifier}", - "description": "Retrieve detailed information about a specific meshProjectRole\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojectroles/:identifier", - "variable": [ - { - "key": "identifier", - "description": "The identifier that uniquely identifies the meshProjectRole.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles/:identifier" - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." - } - ] - }, - "response": [ - { - "id": "meshProjectRoleV1", - "name": "meshProjectRoleV1", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojectroles/:identifier", - "variable": [ - { - "key": "identifier", - "description": "The identifier that uniquely identifies the meshProjectRole.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles/:identifier" - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshprojectrole.v1.hal+json` for this version of the endpoint." - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshprojectrole.v1.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"kind\" : \"meshProjectRole\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"project-admin\",\n \"tags\" : {\n \"priority\" : [ \"high\" ],\n \"access\" : [ \"admin\" ]\n }\n },\n \"spec\" : {\n \"name\" : \"Project Administrator\",\n \"description\" : \"Full administrative access to projects\",\n \"rank\" : 100\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles/project-admin\"\n }\n }\n}", - "code": 200 - } - ] - }, { "id": "meshProjectRoleV1Put", "name": "/api/meshobjects/meshprojectroles/{identifier}", @@ -10533,7 +10613,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-12-03T13:50:01.674801462Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-12-09T14:58:27.338005716Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", "code": 200 } ] @@ -10579,7 +10659,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}", + "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}", "urlencoded": [ ] @@ -10603,40 +10683,138 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshprojects/:fullProjectIdentifier" }, - "method": "PUT", + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\"\n }\n}", + "urlencoded": [ + + ] + } + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"tlyz1mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/tlyz1mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=tlyz1mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "code": 200 + } + ] + }, + { + "id": "meshServiceInstanceDelete", + "name": "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", + "description": "Delete a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" + }, + "method": "DELETE" + }, + "response": [ + { + "id": "meshServiceInstanceDelete", + "name": "meshServiceInstanceDelete", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" + }, + "method": "DELETE" + }, + "cookie": [ + + ], + "code": 202 + } + ] + }, + { + "id": "meshServiceInstanceGet", + "name": "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", + "description": "Get a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + } + ] + }, + "response": [ + { + "id": "meshServiceInstanceGet", + "name": "meshServiceInstanceGet", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" + }, + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." - }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshproject.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\": \"meshProject\",\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\": [\"production\"],\n \"costCenter\": [\"4058\"]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\"\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"m6tf7mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\"\n },\n \"spec\" : {\n \"displayName\" : \"Updated Test Project 1\",\n \"tags\" : {\n \"environment\" : [ \"production\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"paymentMethodIdentifier\" : \"test-payment\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects/m6tf7mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"activePaymentMethod\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods/test-payment\"\n },\n \"meshprojectuserbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=m6tf7mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", "code": 200 } ] @@ -10674,7 +10852,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", + "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded": [ ] @@ -10707,7 +10885,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", + "raw": "{\n \"apiVersion\" : \"v2\",\n \"kind\" : \"meshServiceInstance\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"tlyz1mtdg24\",\n \"planId\" : \"tlyz1mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded": [ ] @@ -10721,9 +10899,9 @@ ] }, { - "id": "meshServiceInstanceDelete", - "name": "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", - "description": "Delete a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshTagDefinition", + "name": "/api/meshobjects/meshtagdefinitions/{name}", + "description": "Get a specific meshTagDefinition by its name\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -10733,87 +10911,66 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", - "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" - }, - "method": "DELETE" - }, - "response": [ - { - "id": "meshServiceInstanceDelete", - "name": "meshServiceInstanceDelete", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", - "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" - }, - "method": "DELETE" - }, - "cookie": [ - + "path": "/api/meshobjects/meshtagdefinitions/:name", + "variable": [ + { + "key": "name", + "description": "The `metadata.name` of the meshTagDefinition.", + "system": false, + "disabled": false + } ], - "code": 202 - } - ] - }, - { - "id": "meshServiceInstanceGet", - "name": "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", - "description": "Get a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", - "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" + "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions/:name" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." } ] }, "response": [ { - "id": "meshServiceInstanceGet", - "name": "meshServiceInstanceGet", + "id": "meshTagDefinition", + "name": "meshTagDefinition", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", - "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" + "path": "/api/meshobjects/meshtagdefinitions/:name", + "variable": [ + { + "key": "name", + "description": "The `metadata.name` of the meshTagDefinition.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions/:name" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"production\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"eu-west-1\",\n \"instanceId\" : \"serviceInstanceId\"\n },\n \"spec\" : {\n \"displayName\" : \"New SI updated\",\n \"serviceId\" : \"m6tf7mtdg24\",\n \"planId\" : \"m6tf7mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Must be exactly 4 digits.\",\n \"displayName\" : \"Cost Center\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n}", "code": 200 } ] @@ -10988,83 +11145,6 @@ } ] }, - { - "id": "meshTagDefinition", - "name": "/api/meshobjects/meshtagdefinitions/{name}", - "description": "Get a specific meshTagDefinition by its name\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtagdefinitions/:name", - "variable": [ - { - "key": "name", - "description": "The `metadata.name` of the meshTagDefinition.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions/:name" - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." - } - ] - }, - "response": [ - { - "id": "meshTagDefinition", - "name": "meshTagDefinition", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtagdefinitions/:name", - "variable": [ - { - "key": "name", - "description": "The `metadata.name` of the meshTagDefinition.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions/:name" - }, - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json` for this version of the endpoint." - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"kind\" : \"meshTagDefinition\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"meshWorkspace.costCenter\"\n },\n \"spec\" : {\n \"targetKind\" : \"meshWorkspace\",\n \"key\" : \"costCenter\",\n \"valueType\" : {\n \"string\" : {\n \"defaultValue\" : \"1001\",\n \"validationRegex\" : \"^\\\\d{4}$\"\n }\n },\n \"description\" : \"Must be exactly 4 digits.\",\n \"displayName\" : \"Cost Center\",\n \"sortOrder\" : 9999,\n \"mandatory\" : true,\n \"immutable\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions/meshWorkspace.costCenter\"\n }\n }\n}", - "code": 200 - } - ] - }, { "id": "meshTenantDeleteV3", "name": "/api/meshobjects/meshtenants/{identifier}", @@ -11204,7 +11284,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-04T13:50:04.839868061Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"a2a34b5f-654e-448a-90d7-8134c81d47f3\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-12-10T14:58:32.700446663Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"fe177f6a-0e92-45fd-94cc-327d475ab2a8\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=aws.aws-meshstack-dev\"\n }\n }\n}", "code": 200 } ] @@ -11281,7 +11361,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-03T13:50:05.835644642Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/22d3cf45-f117-4f67-a4ff-fd87dfc83dd3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"53277734-8b43-4e4e-a70b-76aeb244c38c\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-12-09T14:58:33.757443327Z\"\n },\n \"spec\" : {\n \"platformIdentifier\" : \"sr.eu-de-netde\",\n \"landingZoneIdentifier\" : \"stage-dev\",\n \"platformTenantId\" : \"bfb96178-ea6f-4648-a6cc-22f4f5d130af\",\n \"quotas\" : [ {\n \"key\" : \"limits.cpu\",\n \"value\" : 2000\n }, {\n \"key\" : \"limits.memory\",\n \"value\" : 10000\n } ]\n },\n \"status\" : {\n \"tenantName\" : \"test-workspace.test-project.sr.eu-de-netde\",\n \"platformTypeIdentifier\" : \"SERVICEREGISTRY\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants/53277734-8b43-4e4e-a70b-76aeb244c38c\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=test-workspace&projectIdentifier=test-project&platformIdentifier=sr.eu-de-netde\"\n }\n }\n}", "code": 200 } ] @@ -11409,7 +11489,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"0f0c0a0c-b40c-4bc4-81be-eadebb04b3c6\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"ce61d42a-5e96-42cd-99ff-be4607a2560f\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"a69e8734-0952-49e0-9a8a-1cf0ec4384a1\",\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"4a00028c-186e-4399-8a53-cc036c015aa5\",\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/john-doe\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=john-doe\"\n }\n }\n}", "code": 200 } ] @@ -11463,14 +11543,103 @@ "cookie": [ ], - "code": 204 + "code": 204 + } + ] + }, + { + "id": "meshUserV2Put", + "name": "/api/meshobjects/meshusers/{username}", + "description": "Create or update a single meshUser.\n\nThis endpoint is only available when SCIM provisioning is disabled for this meshStack and will\notherwise reject all requests.\n\nPlease note that changing attributes like metadata.name (also referred to as username) and euid\ncan have serious consequences for cloud platforms and building blocks consuming these attributes.\nProceed only with extreme caution.\n\nYou should consider updating these attributes as a measure of last resort to resolve IAM consistency\nissues in your specific setup of meshStack and connected systems. We recommend deleting the meshUser\nand creating a new one as a much safer alternative.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshusers/:username", + "variable": [ + { + "key": "username", + "description": "The username that uniquely identifies the meshUser.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshusers/:username" + }, + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json", + "disabled": false + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"1a7747bd-0fa9-4c8c-b53c-ac54f1b1ed20\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", + "urlencoded": [ + + ] + } + }, + "response": [ + { + "id": "meshUserV2Put", + "name": "meshUserV2Put", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshusers/:username", + "variable": [ + { + "key": "username", + "description": "The username that uniquely identifies the meshUser.", + "system": false, + "disabled": false + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshusers/:username" + }, + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json", + "disabled": false + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"1a7747bd-0fa9-4c8c-b53c-ac54f1b1ed20\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", + "urlencoded": [ + + ] + } + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"20079969-2223-4dab-b895-5f6fec0b86a4\",\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"1a7747bd-0fa9-4c8c-b53c-ac54f1b1ed20\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/samira-johnson\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=samira-johnson\"\n }\n }\n}", + "code": 200 } ] }, { - "id": "meshUserV2Put", - "name": "/api/meshobjects/meshusers/{username}", - "description": "Create or update a single meshUser.\n\nThis endpoint is only available when SCIM provisioning is disabled for this meshStack and will\notherwise reject all requests.\n\nPlease note that changing attributes like metadata.name (also referred to as username) and euid\ncan have serious consequences for cloud platforms and building blocks consuming these attributes.\nProceed only with extreme caution.\n\nYou should consider updating these attributes as a measure of last resort to resolve IAM consistency\nissues in your specific setup of meshStack and connected systems. We recommend deleting the meshUser\nand creating a new one as a much safer alternative.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshWorkspaceGroupBindingCreate", + "name": "/api/meshobjects/meshworkspacebindings/groupbindings", + "description": "This creates a new group binding and associates a user group together with a workspace role to a workspace.\n\n**Authentication:** This endpoint supports API User authentication.", "variable": [ ], @@ -11480,28 +11649,27 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshusers/:username", - "variable": [ - { - "key": "username", - "description": "The username that uniquely identifies the meshUser.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshusers/:username" + "path": "/api/meshobjects/meshworkspacebindings/groupbindings", + "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/groupbindings" }, - "method": "PUT", + "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json", - "disabled": false + "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"f11dc0f3-70a9-4509-9017-c49d30c2073e\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceGroupBinding\",\n \"metadata\": {\n \"name\": \"my-group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", "urlencoded": [ ] @@ -11509,33 +11677,32 @@ }, "response": [ { - "id": "meshUserV2Put", - "name": "meshUserV2Put", + "id": "meshWorkspaceGroupBindingCreate", + "name": "meshWorkspaceGroupBindingCreate", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshusers/:username", - "variable": [ - { - "key": "username", - "description": "The username that uniquely identifies the meshUser.", - "system": false, - "disabled": false - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshusers/:username" + "path": "/api/meshobjects/meshworkspacebindings/groupbindings", + "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/groupbindings" }, - "method": "PUT", + "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json", - "disabled": false + "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + }, + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"samira-johnson\"\n },\n \"spec\": {\n \"email\": \"sjohnson@example.com\",\n \"euid\": \"f11dc0f3-70a9-4509-9017-c49d30c2073e\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceGroupBinding\",\n \"metadata\": {\n \"name\": \"my-group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", "urlencoded": [ ] @@ -11544,15 +11711,15 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"uuid\" : \"13c9ae80-b95b-4e96-b8c4-10cb0812bf52\",\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"f11dc0f3-70a9-4509-9017-c49d30c2073e\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"test\", \"qa\" ]\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers/samira-johnson\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?username=samira-johnson\"\n }\n }\n}", - "code": 200 + "body": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-group-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Member\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/my-group-binding-name\"\n }\n }\n}", + "code": 201 } ] }, @@ -11636,15 +11803,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"77d986cc-ac85-46b2-ae00-b3a70b094644\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/77d986cc-ac85-46b2-ae00-b3a70b094644\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] }, { - "id": "meshWorkspaceGroupBindingCreate", - "name": "/api/meshobjects/meshworkspacebindings/groupbindings", - "description": "This creates a new group binding and associates a user group together with a workspace role to a workspace.\n\n**Authentication:** This endpoint supports API User authentication.", + "id": "meshWorkspaceUserBindingCreate", + "name": "/api/meshobjects/meshworkspacebindings/userbindings", + "description": "Creating a meshWorkspaceUserBinding assigns the user to a workspace with a specified workspace role.\n\n**Authentication:** This endpoint supports API User authentication.", "variable": [ ], @@ -11654,27 +11821,27 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshworkspacebindings/groupbindings", - "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/groupbindings" + "path": "/api/meshobjects/meshworkspacebindings/userbindings", + "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/userbindings" }, "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceGroupBinding\",\n \"metadata\": {\n \"name\": \"my-group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceUserBinding\",\n \"metadata\": {\n \"name\": \"another-user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"john.doe49a0\"\n }\n} ", "urlencoded": [ ] @@ -11682,32 +11849,32 @@ }, "response": [ { - "id": "meshWorkspaceGroupBindingCreate", - "name": "meshWorkspaceGroupBindingCreate", + "id": "meshWorkspaceUserBindingCreate", + "name": "meshWorkspaceUserBindingCreate", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshworkspacebindings/groupbindings", - "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/groupbindings" + "path": "/api/meshobjects/meshworkspacebindings/userbindings", + "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/userbindings" }, "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." }, { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." } ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceGroupBinding\",\n \"metadata\": {\n \"name\": \"my-group-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"testgroup\"\n }\n} ", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceUserBinding\",\n \"metadata\": {\n \"name\": \"another-user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"john.doe49a0\"\n }\n} ", "urlencoded": [ ] @@ -11716,14 +11883,14 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-group-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Member\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/my-group-binding-name\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshWorkspaceUserBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"another-user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Member\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"john.doe49a0\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings/another-user-binding-name\"\n }\n }\n}", "code": 201 } ] @@ -11824,96 +11991,9 @@ ] }, { - "id": "meshWorkspaceUserBindingCreate", - "name": "/api/meshobjects/meshworkspacebindings/userbindings", - "description": "Creating a meshWorkspaceUserBinding assigns the user to a workspace with a specified workspace role.\n\n**Authentication:** This endpoint supports API User authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshworkspacebindings/userbindings", - "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/userbindings" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." - }, - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceUserBinding\",\n \"metadata\": {\n \"name\": \"another-user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"john.doe49a0\"\n }\n} ", - "urlencoded": [ - - ] - } - }, - "response": [ - { - "id": "meshWorkspaceUserBindingCreate", - "name": "meshWorkspaceUserBindingCreate", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshworkspacebindings/userbindings", - "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/userbindings" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." - }, - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshWorkspaceUserBinding\",\n \"metadata\": {\n \"name\": \"another-user-binding-name\"\n },\n \"targetRef\": {\n \"name\": \"test-workspace\"\n },\n \"roleRef\": { \"name\": \"Workspace Member\" },\n \"subject\": {\n \"name\" : \"john.doe49a0\"\n }\n} ", - "urlencoded": [ - - ] - } - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"kind\" : \"meshWorkspaceUserBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"another-user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Member\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"john.doe49a0\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings/another-user-binding-name\"\n }\n }\n}", - "code": 201 - } - ] - }, - { - "id": "meshWorkspaceDelete", + "id": "meshWorkspace", "name": "/api/meshobjects/meshworkspaces/{identifier}", - "description": "Delete a meshWorkspace by identifier. This operation marks the workspace as deleted and removes or\ndisconnects all attached objects (e.g. users, workspace user groups and payment methods). Workspace\ndeletion is only possible if the workspace contains no projects and no tenants.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Get a specific meshWorkspace by identifier\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -11934,7 +12014,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshworkspaces/:identifier" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -11946,8 +12026,8 @@ }, "response": [ { - "id": "meshWorkspaceDelete", - "name": "meshWorkspaceDelete", + "id": "meshWorkspace", + "name": "meshWorkspace", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -11962,7 +12042,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshworkspaces/:identifier" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -11972,10 +12052,18 @@ } ] }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 204 + "body": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-09T14:56:57Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n}", + "code": 200 } ] }, @@ -12077,15 +12165,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-03T13:50:10.541598661Z\"\n },\n \"spec\" : {\n \"displayName\" : \"updated workspace name\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"my-workspace\",\n \"tags\" : {\n \"costCenter\" : [ \"4058\" ],\n \"workspaceOwner\" : [ \"Anna Admin\" ]\n },\n \"createdOn\" : \"2025-12-09T14:58:38.731585303Z\"\n },\n \"spec\" : {\n \"displayName\" : \"updated workspace name\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/my-workspace\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=my-workspace\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=my-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=my-workspace\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=my-workspace\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=my-workspace\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshWorkspace", + "id": "meshWorkspaceDelete", "name": "/api/meshobjects/meshworkspaces/{identifier}", - "description": "Get a specific meshWorkspace by identifier\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Delete a meshWorkspace by identifier. This operation marks the workspace as deleted and removes or\ndisconnects all attached objects (e.g. users, workspace user groups and payment methods). Workspace\ndeletion is only possible if the workspace contains no projects and no tenants.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -12106,7 +12194,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshworkspaces/:identifier" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -12118,8 +12206,8 @@ }, "response": [ { - "id": "meshWorkspace", - "name": "meshWorkspace", + "id": "meshWorkspaceDelete", + "name": "meshWorkspaceDelete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -12134,7 +12222,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshworkspaces/:identifier" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -12144,18 +12232,10 @@ } ] }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", - "disabled": false - } - ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-12-03T13:48:42Z\"\n },\n \"spec\" : {\n \"displayName\" : \"admin-customer\",\n \"platformBuilderAccessEnabled\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/admin-customer\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=admin-customer\"\n },\n \"meshprojects\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=admin-customer\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=admin-customer\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods?workspaceIdentifier=admin-customer\"\n },\n \"meshworkspaceusergroups\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups?workspaceIdentifier=admin-customer\"\n }\n }\n}", - "code": 200 + "code": 204 } ] }, @@ -12231,7 +12311,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"11284a3b-df7c-4185-863f-7715a9ea12be\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshWorkspaceUserGroup\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"my-user-group\",\n \"ownedByWorkspace\" : \"sample-workspace\"\n },\n \"spec\" : {\n \"displayName\" : \"My User Group\",\n \"egid\" : \"aeddeef1-873b-4433-91e7-a45418d6576a\",\n \"members\" : [ \"sample-user\" ],\n \"tags\" : { }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaceusergroups/sample-workspace.my-user-group\"\n },\n \"meshworkspace\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/sample-workspace\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceUserGroupIdentifier=my-user-group\"\n }\n }\n}", "code": 200 } ] @@ -12345,7 +12425,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/e2f5bb69-068d-4e09-af45-929fbd7f123e\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings/0229609e-8f90-4b35-9ec2-d9009d77a96b\"\n }\n }\n}", "code": 200 } ] @@ -12475,7 +12555,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/ee81e3fe-1f5b-40bd-b12d-679a319c1a33\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n },\n \"roleRef\" : {\n \"name\" : \"Project User\"\n },\n \"targetRef\" : {\n \"name\" : \"test-project-1\",\n \"displayName\" : \"Test Project 1\",\n \"ownedByWorkspace\" : \"test-workspace\"\n },\n \"subject\" : {\n \"name\" : \"username1\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/userbindings/7620d4a8-ae31-487a-985a-866c9c45ddd6\"\n }\n }\n}", "code": 200 } ] @@ -12605,7 +12685,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/a36604bc-dd67-4116-9b7b-f5b734ef2936\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"77d986cc-ac85-46b2-ae00-b3a70b094644\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\n },\n \"targetRef\" : {\n \"name\" : \"test-workspace\",\n \"displayName\" : \"test-workspace Workspace\"\n },\n \"subject\" : {\n \"name\" : \"testgroup\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/groupbindings/77d986cc-ac85-46b2-ae00-b3a70b094644\"\n }\n }\n}", "code": 200 } ] diff --git a/static/billing-api/meshmetering-openapi-docs.json b/static/billing-api/meshmetering-openapi-docs.json index 9df32ccfc..c71e01c38 100644 --- a/static/billing-api/meshmetering-openapi-docs.json +++ b/static/billing-api/meshmetering-openapi-docs.json @@ -394,7 +394,7 @@ }, "examples": { "meshTenantUsageReportsList": { - "value": "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"20962ae2-a793-40ae-bd66-23147cd60596\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"41dd4121-bc36-4301-86c0-79567179b22a\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"74fafd76-a4ce-49fc-a926-21919891b4a3\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"26a4f1f4-4048-46d8-8e8a-38e59d5aa322\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -449,7 +449,7 @@ }, "examples": { "meshTenantUsageReport": { - "value": "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"20962ae2-a793-40ae-bd66-23147cd60596\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"74fafd76-a4ce-49fc-a926-21919891b4a3\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}" } } } diff --git a/static/billing-api/meshmetering-postman-collection-original.json b/static/billing-api/meshmetering-postman-collection-original.json index 2c232a6d6..f57c7eae3 100644 --- a/static/billing-api/meshmetering-postman-collection-original.json +++ b/static/billing-api/meshmetering-postman-collection-original.json @@ -381,7 +381,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"20962ae2-a793-40ae-bd66-23147cd60596\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"41dd4121-bc36-4301-86c0-79567179b22a\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"74fafd76-a4ce-49fc-a926-21919891b4a3\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"26a4f1f4-4048-46d8-8e8a-38e59d5aa322\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -441,7 +441,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"20962ae2-a793-40ae-bd66-23147cd60596\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"74fafd76-a4ce-49fc-a926-21919891b4a3\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}", "code" : 200 } ] }, { diff --git a/static/billing-api/meshmetering-postman-collection.json b/static/billing-api/meshmetering-postman-collection.json index d0ced3171..f50d1f046 100644 --- a/static/billing-api/meshmetering-postman-collection.json +++ b/static/billing-api/meshmetering-postman-collection.json @@ -482,7 +482,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"20962ae2-a793-40ae-bd66-23147cd60596\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"41dd4121-bc36-4301-86c0-79567179b22a\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"74fafd76-a4ce-49fc-a926-21919891b4a3\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"26a4f1f4-4048-46d8-8e8a-38e59d5aa322\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -559,7 +559,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"20962ae2-a793-40ae-bd66-23147cd60596\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"74fafd76-a4ce-49fc-a926-21919891b4a3\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}", "code": 200 } ]