diff --git a/static/api/meshstack-openapi-docs.json b/static/api/meshstack-openapi-docs.json index 449fd36af..82067c3b3 100644 --- a/static/api/meshstack-openapi-docs.json +++ b/static/api/meshstack-openapi-docs.json @@ -85,7 +85,7 @@ }, "examples": { "apiKeyLoginResponseRedirect": { - "value": "client_id=bc00f618-6cb0-4896-a289-aaf415119520&client_secret=Lx1wa4Q37ndOzJ3Kt1OF7upximrHWymD&grant_type=client_credentials" + "value": "client_id=53a0a9af-080f-4b84-9b2a-fe75a8e22d63&client_secret=jbgCXZi0GBFs6zIMgt2JBl1Q3MXG1eMH&grant_type=client_credentials" } } }, @@ -95,7 +95,7 @@ }, "examples": { "apiKeyLoginResponse": { - "value": "{\n \"clientId\" : \"bc00f618-6cb0-4896-a289-aaf415119520\",\n \"clientSecret\" : \"Lx1wa4Q37ndOzJ3Kt1OF7upximrHWymD\"\n} " + "value": "{\n \"clientId\" : \"53a0a9af-080f-4b84-9b2a-fe75a8e22d63\",\n \"clientSecret\" : \"jbgCXZi0GBFs6zIMgt2JBl1Q3MXG1eMH\"\n} " } } } @@ -114,7 +114,7 @@ }, "examples": { "apiKeyLoginResponse": { - "value": "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjI5NTI4NDIsImlhdCI6MTc2Mjk1MjU0MiwianRpIjoiZTk3Y2M3YTQtMmM1OS00YWI0LThmOGYtZjllYzI0NjdhNmU1IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiZDQ4MjhhZDItMGUzMy00ZDE2LWFjOTUtZTkyMjE2NzgwZjBjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYmMwMGY2MTgtNmNiMC00ODk2LWEyODktYWFmNDE1MTE5NTIwIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiY2xpZW50SG9zdCI6IjEyNy4wLjAuMSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWJjMDBmNjE4LTZjYjAtNDg5Ni1hMjg5LWFhZjQxNTExOTUyMCIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiJiYzAwZjYxOC02Y2IwLTQ4OTYtYTI4OS1hYWY0MTUxMTk1MjAifQ.EKuPxGqeE0xtCJoWFRdmSQgSbrn42yAgvuW9vVwxA6lASKc6t0JUwJY6ZPzM6ST2CHSKpw8qvp_zt4b-cZf47vRr0_E_yj7Gk7ulbnaNaEbofIgb7R6FId1cWYHZH2OkXxu1QwYXBff3dMZvHt8d0v7ndpzTAj37usM5sMo2MNfG1Qn1UNVappE2G72vhzgpcWijxfSXZC6Z3x6qjTkKoqxRzO3KmQdqZSiKRV380hKpdM4dh1QUoqJobiqcNLCaNiPK40PvKBoxLGICkNSZLdybkmoVhDHjT851wW7wet5_AyXYxfYHg5M5IKCldhjy1vSevqOL-E1QiAE8ulPTsQ\",\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.eyJleHAiOjE3NjI5NTMzMTcsImlhdCI6MTc2Mjk1MzAxNywianRpIjoiOWNjYzk3NjUtNjJhNC00ZDFhLWEzZjItZGNkMzFiY2IzNzYxIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYTdiZjYyM2YtNzJmMS00MDQ3LTk4MTYtYTUxZDk0ODQ1NjYzIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiNTNhMGE5YWYtMDgwZi00Yjg0LTliMmEtZmU3NWE4ZTIyZDYzIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJjbGllbnRIb3N0IjoiMTI3LjAuMC4xIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTUzYTBhOWFmLTA4MGYtNGI4NC05YjJhLWZlNzVhOGUyMmQ2MyIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiI1M2EwYTlhZi0wODBmLTRiODQtOWIyYS1mZTc1YThlMjJkNjMifQ.cKQBBPjmxN5xJr7RQuvO3v42gHGXTgS_q6FT-2edJ5d4MdosrSwTgZbdnPx6rj3Fn-7nPJ-Fbfivc0E-uK9FsLgT4w_C1H_RX7y1RxsFO5OXEDZEgsSBMd9Bq19gWp3HWW1oBUoJlthKcbVoSaWOJhURUBi9u5luiRiCzjt-ujKbe4UA3GAhR6WF1Fxqj2qO_kJzOvIpRFnjxJR-yFtxTHMd616HSNbVgVCWDi6G8PWbmI1buZ_MSI6ylnkaSrOJfdUldJ0MCk4heCFqko7j68RmdMYgiolMi-MHZ3h1IshVMRgaYal-4ENCto7JuNkpPhcAvgnjikKBz6mpe4RKzA\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}" } } } @@ -250,7 +250,7 @@ }, "examples": { "meshObjectsRootV1": { - "value": "{\n \"_links\" : {\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 \"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 \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}" + "value": "{\n \"_links\" : {\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\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}" } } }, @@ -260,7 +260,7 @@ }, "examples": { "meshObjectsRootV2": { - "value": "{\n \"_links\" : {\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 \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\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 \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,author,type,workspaceName}\",\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 \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\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 \"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 \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}" + "value": "{\n \"_links\" : {\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\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 \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\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 \"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 \"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 \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,author,type,workspaceName}\",\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-11-12T13:02:29.354557099Z\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mbbdds1\",\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\" : \"8c972db2-5610-4be8-866b-e52a3f3f9a9b\",\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-11-12T13:10:24.411669789Z\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mbbdds1\",\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\" : \"b2fbf2ac-7b10-405c-b274-4ebbd6bc194d\",\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\" : \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:02:30.191238834Z\"\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\" : \"8785c693-9607-4528-83c6-61835f5e366b\",\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/43e4dcc0-412e-4a1f-a01f-7992ded77491\"\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=43e4dcc0-412e-4a1f-a01f-7992ded77491\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:10:25.254005335Z\"\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\" : \"0679e122-1f5f-4bda-891f-b73ad126ea4b\",\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/4c371e05-18d4-47c2-9438-f71e38e7f509\"\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=4c371e05-18d4-47c2-9438-f71e38e7f509\"\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-11-12T13:02:31.038122489Z\"\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-11-12T13:02:31.059707907Z\"\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-11-12T13:10:26.050000466Z\"\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-11-12T13:10:26.064176135Z\"\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-11-12T13:02:34.070695144Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"096a4b52-9c43-4cb6-a0f9-b3d10a123487\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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-11-12T13:02:34.079186673Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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-11-12T13:10:29.064439983Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b6117fe0-04a5-4713-a996-768c31b0eb3d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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-11-12T13:10:29.072602692Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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}" } } } @@ -781,7 +781,7 @@ }, "examples": { "meshBuildingBlockPostV2": { - "value": "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"28e4a02d-3094-40f5-8745-10220666803d\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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\": \"a65c1b1d-7c5e-406a-8e16-8a7964fb498a\"\n }]\n }\n} " + "value": "{\n \"apiVersion\" : \"v2-preview\",\n \"kind\" : \"meshBuildingBlock\",\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\": {\n \"kind\": \"meshBuildingBlockDefinitionVersion\",\n \"uuid\": \"e28c610c-6de3-4a61-a3da-376e7823e989\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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\": \"4c9e3921-df72-4aed-af63-2301a50d6fa4\"\n }]\n }\n} " } } }, @@ -791,7 +791,7 @@ }, "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\": \"8e9d9b3d-8a5c-4057-b965-da83da65b0fa\"\n }]\n }\n} " + "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\": \"cfc76581-5780-4f38-a494-269ec53b24e7\"\n }]\n }\n} " } } } @@ -807,7 +807,7 @@ }, "examples": { "meshBuildingBlockPostV2": { - "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"555a8c9d-c780-4216-88f2-9567ff5d35bb\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:02:34.997961052Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"a65c1b1d-7c5e-406a-8e16-8a7964fb498a\",\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/555a8c9d-c780-4216-88f2-9567ff5d35bb\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/555a8c9d-c780-4216-88f2-9567ff5d35bb/purge\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"27849687-f087-4bd3-919c-5f21718dbafd\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:10:29.931180877Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"4c9e3921-df72-4aed-af63-2301a50d6fa4\",\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/27849687-f087-4bd3-919c-5f21718dbafd\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/27849687-f087-4bd3-919c-5f21718dbafd/purge\"\n }\n }\n}" } } }, @@ -817,7 +817,7 @@ }, "examples": { "meshBuildingBlockPost": { - "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b\",\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-11-12T13:02:32.329511759Z\"\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\" : \"8e9d9b3d-8a5c-4057-b965-da83da65b0fa\",\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/30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b\"\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/30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b/purge\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"fddf6776-b817-4b9b-9139-47a13b5aa8f6\",\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-11-12T13:10:27.361938861Z\"\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\" : \"cfc76581-5780-4f38-a494-269ec53b24e7\",\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/fddf6776-b817-4b9b-9139-47a13b5aa8f6\"\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/fddf6776-b817-4b9b-9139-47a13b5aa8f6/purge\"\n }\n }\n}" } } } @@ -890,10 +890,10 @@ }, "examples": { "meshCommunicationDefinitionListFilteredByType": { - "value": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"112858e7-68e1-459c-a66e-26ce378f81ba\"\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-11-14\",\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/112858e7-68e1-459c-a66e-26ce378f81ba\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"60102910-ed7c-456c-99b8-2f9a415754c6\"\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-11-15\",\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/60102910-ed7c-456c-99b8-2f9a415754c6\"\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\" : \"3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\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-11-14\",\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/3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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-11-15\",\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/5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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}" }, "meshCommunicationDefinitionList": { - "value": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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-11-13\",\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"112858e7-68e1-459c-a66e-26ce378f81ba\"\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-11-14\",\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/112858e7-68e1-459c-a66e-26ce378f81ba\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"60102910-ed7c-456c-99b8-2f9a415754c6\"\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-11-15\",\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/60102910-ed7c-456c-99b8-2f9a415754c6\"\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\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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-11-13\",\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\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-11-14\",\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/3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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-11-15\",\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/5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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}" } } } @@ -961,7 +961,7 @@ }, "examples": { "meshCommunicationDefinitionPost": { - "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"8a1cd512-f753-4130-a65b-d4c2113848b4\"\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/8a1cd512-f753-4130-a65b-d4c2113848b4\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e1664934-f496-41a3-94fc-77943c78d44d\"\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/e1664934-f496-41a3-94fc-77943c78d44d\"\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\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=8da49f9f-3c72-46b4-adac-92637b5e6230&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\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=a6e2c891-4051-4193-9c45-ea906be4e3f5&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\": \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\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\": \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}" } } } @@ -1120,7 +1120,7 @@ }, "examples": { "meshCommunicationPost": { - "value": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n}" } } } @@ -1237,7 +1237,7 @@ }, "examples": { "meshEventLogList": { - "value": "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4e6a2f31-0a28-424e-a0ff-f656771a9f56\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/4e6a2f31-0a28-424e-a0ff-f656771a9f56\"\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\" : \"5763d75d-5556-4986-b18e-42a3efcb62a9\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/5763d75d-5556-4986-b18e-42a3efcb62a9\"\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}" } } } @@ -1306,7 +1306,7 @@ }, "examples": { "meshLandingZoneList": { - "value": "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\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\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\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\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -1354,29 +1354,29 @@ "content": { "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json;charset=UTF-8": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshlandingzones1577368408" + "$ref": "#/components/schemas/api-meshobjects-meshlandingzones360157889" }, "examples": { "meshLandingZonePost_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\" : \"1473de8c-d850-44f4-91c4-7dfeeff29de4\",\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 }\n}" + "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\" : \"66291c52-77ab-43ce-b7ae-a9e133879b95\",\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 }\n}" }, - "meshLandingZonePost_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\" : \"7f44a554-5e33-42e6-8417-23864ff25917\",\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 }\n}" - }, - "meshLandingZonePost_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\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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 }\n}" - }, - "meshLandingZonePost_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\" : \"694cca0d-e378-4368-9e82-b863d1e33256\",\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 }\n}" + "meshLandingZonePost_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\" : \"a4db927e-bbb1-4544-a766-f5624243fb16\",\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 }\n}" }, "meshLandingZonePost_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\" : \"33b130b4-a450-4310-bd80-f9a448ee932e\",\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 }\n}" + "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\" : \"922448ae-db49-4a23-b505-fd53e4896b93\",\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 }\n}" }, - "meshLandingZonePost_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\" : \"c4d0e00d-d4ba-4314-9a8d-82e297b5f5bc\",\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 }\n}" + "meshLandingZonePost_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\" : \"0904061e-3de8-4756-ace0-28ba53223664\",\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 }\n}" }, "meshLandingZonePost_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\" : \"fa021c63-e28a-4db6-b283-0011a066f27a\",\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 }\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\" : \"941e0fa6-b112-4ba1-8d38-a63957364d8f\",\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 }\n}" + }, + "meshLandingZonePost_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\" : \"bce30989-5ecc-411e-bdfb-669062cc66b6\",\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 }\n}" + }, + "meshLandingZonePost_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\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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 }\n}" } } } @@ -1392,25 +1392,25 @@ }, "examples": { "meshLandingZonePost_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\" : \"1473de8c-d850-44f4-91c4-7dfeeff29de4\",\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 },\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}" - }, - "meshLandingZonePost_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\" : \"7f44a554-5e33-42e6-8417-23864ff25917\",\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 },\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}" - }, - "meshLandingZonePost_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\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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 },\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-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\" : \"66291c52-77ab-43ce-b7ae-a9e133879b95\",\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 },\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}" }, - "meshLandingZonePost_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\" : \"694cca0d-e378-4368-9e82-b863d1e33256\",\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 },\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}" + "meshLandingZonePost_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\" : \"a4db927e-bbb1-4544-a766-f5624243fb16\",\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 },\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}" }, "meshLandingZonePost_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\" : \"33b130b4-a450-4310-bd80-f9a448ee932e\",\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 },\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\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"922448ae-db49-4a23-b505-fd53e4896b93\",\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 },\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}" }, - "meshLandingZonePost_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\" : \"c4d0e00d-d4ba-4314-9a8d-82e297b5f5bc\",\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 },\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}" + "meshLandingZonePost_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\" : \"0904061e-3de8-4756-ace0-28ba53223664\",\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 },\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}" }, "meshLandingZonePost_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\" : \"fa021c63-e28a-4db6-b283-0011a066f27a\",\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 },\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\" : \"A new azurerg landing zone for testing\",\n \"displayName\" : \"New Landing Zone azurerg\",\n \"platformRef\" : {\n \"uuid\" : \"941e0fa6-b112-4ba1-8d38-a63957364d8f\",\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 },\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}" + }, + "meshLandingZonePost_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\" : \"bce30989-5ecc-411e-bdfb-669062cc66b6\",\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 },\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}" + }, + "meshLandingZonePost_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\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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 },\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}" } } } @@ -1574,7 +1574,7 @@ ], "summary": "List platforms", "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.", - "operationId": "meshPlatformListV", + "operationId": "meshPlatformList", "parameters": [ { "name": "searchTerm", @@ -1606,35 +1606,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/meshPlatformListV2" + "$ref": "#/components/schemas/meshPlatformListV1" }, "examples": { - "meshPlatformListV2": { - "value": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\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}" + "meshPlatformListV1": { + "value": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\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\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\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/meshPlatformListV1" + "$ref": "#/components/schemas/meshPlatformListV2" }, "examples": { - "meshPlatformListV1": { - "value": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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}" + "meshPlatformListV2": { + "value": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\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\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\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}" } } } @@ -1654,8 +1654,8 @@ "Platforms" ], "summary": "Create platform", - "description": "Create a new platform with openshift configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", - "operationId": "meshPlatformV", + "description": "Create a new platform with azurerg configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "operationId": "meshPlatformCreate", "parameters": [ { "name": "Content-Type", @@ -1685,26 +1685,26 @@ "$ref": "#/components/schemas/api-meshobjects-meshplatforms-1075042019" }, "examples": { - "meshPlatformV2-Post-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 }" - }, - "meshPlatformV2-Post-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}" + "meshPlatformV2-Post-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}" }, "meshPlatformV2-Post-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 }" }, - "meshPlatformV2-Post-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}" + "meshPlatformV2-Post-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}" + }, + "meshPlatformV2-Post-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 }" }, "meshPlatformV2-Post-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 }" }, - "meshPlatformV2-Post-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}" + "meshPlatformV2-Post-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}" }, - "meshPlatformV2-Post-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}" + "meshPlatformV2-Post-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}" } } }, @@ -1713,26 +1713,26 @@ "$ref": "#/components/schemas/api-meshobjects-meshplatforms-1788285441" }, "examples": { - "meshPlatformV1-Post-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}" - }, - "meshPlatformV1-Post-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}" - }, - "meshPlatformV1-Post-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}" - }, "meshPlatformV1-Post-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}" }, "meshPlatformV1-Post-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}" }, + "meshPlatformV1-Post-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}" + }, "meshPlatformV1-Post-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}" }, + "meshPlatformV1-Post-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}" + }, "meshPlatformV1-Post-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}" + }, + "meshPlatformV1-Post-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}" } } } @@ -1744,57 +1744,57 @@ "content": { "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatformV2-Post-openshift" + "$ref": "#/components/schemas/meshPlatformV2-Post-azurerg" }, "examples": { - "meshPlatformV2-Post-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" - }, - "meshPlatformV2-Post-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Post-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatformV2-Post-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Post-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Post-aws": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + }, + "meshPlatformV2-Post-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatformV2-Post-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Post-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Post-gcp": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Post-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Post-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } }, "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatformV1-Post-azurerg" + "$ref": "#/components/schemas/meshPlatformV1-Post-aws" }, "examples": { - "meshPlatformV1-Post-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" - }, - "meshPlatformV1-Post-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" - }, - "meshPlatformV1-Post-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" - }, "meshPlatformV1-Post-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatformV1-Post-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + }, + "meshPlatformV1-Post-gcp": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatformV1-Post-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + }, + "meshPlatformV1-Post-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatformV1-Post-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + }, + "meshPlatformV1-Post-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } } @@ -2017,7 +2017,7 @@ }, "examples": { "meshProjectListV2": { - "value": "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&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 \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}" } } } @@ -2069,7 +2069,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\" : \"vfaf6mpdsv1\"\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\" : \"gd4r3mpdsv1\"\n }\n}" } } } @@ -2085,7 +2085,7 @@ }, "examples": { "meshProjectPost": { - "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\n \"createdOn\" : \"2025-11-12T13:02:56.045823712Z\"\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/vfaf6mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\n \"createdOn\" : \"2025-11-12T13:10:50.638289609Z\"\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/gd4r3mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}" } } } @@ -2194,7 +2194,7 @@ }, "examples": { "meshServiceInstanceListV2": { - "value": "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"vfaf6mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"vfaf6mtdg1\",\n \"instanceId\" : \"vfaf6mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mtdg12\",\n \"serviceId\" : \"vfaf6mtdg5\",\n \"planId\" : \"vfaf6mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/vfaf6mtdg9\"\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\" : \"gd4r3mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"gd4r3mtdg1\",\n \"instanceId\" : \"gd4r3mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mtdg12\",\n \"serviceId\" : \"gd4r3mtdg5\",\n \"planId\" : \"gd4r3mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/gd4r3mtdg9\"\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}" } } } @@ -2246,7 +2246,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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}" } } } @@ -2262,7 +2262,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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}" } } } @@ -2520,7 +2520,7 @@ }, "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-11-13T13:03:00.403298724Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"ae2aff8b-35df-4eea-a2dd-31f50ad5809a\",\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}" + "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-11-13T13:10:54.471986094Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"bad4394e-82e7-4436-a922-054bae1870cb\",\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}" } } }, @@ -2530,7 +2530,7 @@ }, "examples": { "meshTenantListV4": { - "value": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"c2aad318-5e12-4549-8d46-8c02c573d411\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.412110616Z\"\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/c2aad318-5e12-4549-8d46-8c02c573d411\"\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\" : \"9171b172-2310-409b-a273-885854863e18\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.406156546Z\"\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/9171b172-2310-409b-a273-885854863e18\"\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}" + "value": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"f1eac5d5-6de4-46d4-815e-fbd5519d5e21\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.413523462Z\"\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/f1eac5d5-6de4-46d4-815e-fbd5519d5e21\"\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\" : \"5277909b-aa81-4464-b403-4a02903ed180\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.408177053Z\"\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/5277909b-aa81-4464-b403-4a02903ed180\"\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}" } } } @@ -2608,7 +2608,7 @@ }, "examples": { "meshTenantPostV4": { - "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"d89142f5-6ee5-434c-9b85-d21365192b38\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:02.088362573Z\"\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/d89142f5-6ee5-434c-9b85-d21365192b38\"\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}" + "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"177883e6-7665-4b40-8a5e-2194adcbf1bd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:56.057514896Z\"\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/177883e6-7665-4b40-8a5e-2194adcbf1bd\"\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}" } } }, @@ -2762,7 +2762,7 @@ }, "examples": { "meshUserListV2": { - "value": "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"b54e6540-5a3b-4023-90ed-16af4beb7f07\",\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 \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"95269413-3e80-46f3-9d9c-277c3b84c55c\",\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}" } } } @@ -2788,7 +2788,7 @@ "content": { "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshusers-username-179515684" + "$ref": "#/components/schemas/api-meshobjects-meshusers-179515684" }, "examples": { "meshUserV2Post": { @@ -2872,7 +2872,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-11-12T13:01:43Z\"\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-11-12T13:01:43Z\"\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-11-12T13:01:43Z\"\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-11-12T13:09: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-11-12T13:09: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-11-12T13:09: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}" } } } @@ -2940,7 +2940,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-11-12T13:03:06.045167397Z\"\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-11-12T13:10:59.778096093Z\"\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}" } } } @@ -3125,7 +3125,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-11-12T13:02:29.354557099Z\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mbbdds1\",\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\" : \"8c972db2-5610-4be8-866b-e52a3f3f9a9b\",\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-11-12T13:10:24.411669789Z\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mbbdds1\",\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\" : \"b2fbf2ac-7b10-405c-b274-4ebbd6bc194d\",\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}" } } } @@ -3186,7 +3186,7 @@ }, "examples": { "meshBuildingBlockDefinitionPutV1": { - "value": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\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\": \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\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}" } } } @@ -3202,7 +3202,7 @@ }, "examples": { "meshBuildingBlockDefinitionPutV1": { - "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:02:30.191238834Z\"\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\" : \"8785c693-9607-4528-83c6-61835f5e366b\",\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/43e4dcc0-412e-4a1f-a01f-7992ded77491\"\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=43e4dcc0-412e-4a1f-a01f-7992ded77491\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:10:25.254005335Z\"\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\" : \"0679e122-1f5f-4bda-891f-b73ad126ea4b\",\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/4c371e05-18d4-47c2-9438-f71e38e7f509\"\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=4c371e05-18d4-47c2-9438-f71e38e7f509\"\n }\n }\n}" } } } @@ -3343,7 +3343,7 @@ }, "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-11-12T13:02:34.079186673Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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}" + "value": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:10:29.072602692Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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}" } } }, @@ -3353,7 +3353,7 @@ }, "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-11-12T13:02:31.059707907Z\"\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}" + "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-11-12T13:10:26.064176135Z\"\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}" } } } @@ -3439,7 +3439,7 @@ }, "examples": { "meshCommunicationDefinition": { - "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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-11-13\",\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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-11-13\",\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n}" } } } @@ -3516,7 +3516,7 @@ }, "examples": { "meshCommunicationDefinitionPut": { - "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n}" } } } @@ -3612,7 +3612,7 @@ }, "examples": { "meshCommunication": { - "value": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n}" } } } @@ -3688,7 +3688,7 @@ }, "examples": { "meshEventLog": { - "value": "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4e6a2f31-0a28-424e-a0ff-f656771a9f56\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/4e6a2f31-0a28-424e-a0ff-f656771a9f56\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5763d75d-5556-4986-b18e-42a3efcb62a9\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/5763d75d-5556-4986-b18e-42a3efcb62a9\"\n }\n }\n}" } } } @@ -3748,7 +3748,7 @@ }, "examples": { "meshLandingZone": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-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\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}" } } } @@ -3809,7 +3809,7 @@ }, "examples": { "meshLandingZonePut": { - "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLandingZone\",\n \"metadata\": {\n \"name\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}" + "value": "{\n \"apiVersion\": \"v1-preview\",\n \"kind\": \"meshLandingZone\",\n \"metadata\": {\n \"name\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}" } } } @@ -3825,7 +3825,7 @@ }, "examples": { "meshLandingZonePut": { - "value": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated landing zone description\",\n \"displayName\" : \"Updated Landing Zone\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123123123\",\n \"awsEnrollAccount\" : false,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsRoleMappings\" : [ ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-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\" : \"test-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated landing zone description\",\n \"displayName\" : \"Updated Landing Zone\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123123123\",\n \"awsEnrollAccount\" : false,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsRoleMappings\" : [ ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}" } } } @@ -4063,8 +4063,8 @@ "Platforms" ], "summary": "Get platform", - "description": "Get a platform with azurerg configuration. This example shows the complete response including all configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", - "operationId": "meshPlatformV", + "description": "Get a platform with openshift configuration. This example shows the complete response including all configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "operationId": "meshPlatformGet", "parameters": [ { "name": "uuid", @@ -4092,57 +4092,57 @@ "content": { "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatformV2-Get-azurerg" + "$ref": "#/components/schemas/meshPlatformV2-Get-openshift" }, "examples": { - "meshPlatformV2-Get-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Get-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Get-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Get-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Get-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Get-aws": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatformV2-Get-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Get-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Get-kubernetes": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Get-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Get-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatformV2-Get-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } }, "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatformV1-Get-azure" + "$ref": "#/components/schemas/meshPlatformV1-Get-gcp" }, "examples": { - "meshPlatformV1-Get-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Get-gcp": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Get-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Get-kubernetes": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Get-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Get-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Get-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Get-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Get-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Get-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, "meshPlatformV1-Get-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Get-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Get-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } } @@ -4162,8 +4162,8 @@ "Platforms" ], "summary": "Update platform", - "description": "Update an existing platform with kubernetes configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", - "operationId": "meshPlatformV", + "description": "Update an existing platform with azurerg configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "operationId": "meshPlatformUpdate", "parameters": [ { "name": "uuid", @@ -4177,79 +4177,79 @@ { "name": "Content-Type", "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;charset=UTF-8" + "example": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8" }, { "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" } ], "requestBody": { "content": { - "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8": { + "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshplatforms-uuid840776026" + "$ref": "#/components/schemas/api-meshobjects-meshplatforms-uuid-1785714494" }, "examples": { - "meshPlatformV2-Put-kubernetes": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"adaf2c9c-71b6-4536-bc29-5cee827a9313\",\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 }" + "meshPlatformV1-Put-azurerg": { + "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\",\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}" }, - "meshPlatformV2-Put-aws": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\",\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}" + "meshPlatformV1-Put-azure": { + "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"8341e5f2-e538-4866-8308-0200795e9301\",\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}" }, - "meshPlatformV2-Put-gcp": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"dee79369-96c6-43f1-ad14-49a9e4cf4976\",\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}" + "meshPlatformV1-Put-openshift": { + "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"2985b272-584a-4bc7-9326-60c03ca4e541\",\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}" }, - "meshPlatformV2-Put-openshift": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"e19caf66-b020-4a81-bda3-d25783b60387\",\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 }" + "meshPlatformV1-Put-aks": { + "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\",\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}" }, - "meshPlatformV2-Put-azurerg": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\",\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}" + "meshPlatformV1-Put-gcp": { + "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"42d99876-6452-42fa-b244-98fcfb18fc2a\",\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}" }, - "meshPlatformV2-Put-azure": { - "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\",\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}" + "meshPlatformV1-Put-aws": { + "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"ea98930b-e0e2-443a-be6b-1800c2235f9b\",\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}" }, - "meshPlatformV2-Put-aks": { - "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\",\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 }" + "meshPlatformV1-Put-kubernetes": { + "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"d3c033de-ab2f-438c-8b6c-06658546a504\",\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}" } } }, - "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8": { + "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8": { "schema": { - "$ref": "#/components/schemas/api-meshobjects-meshplatforms-uuid-1785714494" + "$ref": "#/components/schemas/api-meshobjects-meshplatforms-uuid840776026" }, "examples": { - "meshPlatformV1-Put-azure": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"333a1231-ee0b-4116-a676-d32d40ab5d9d\",\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}" + "meshPlatformV2-Put-gcp": { + "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\",\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}" }, - "meshPlatformV1-Put-aks": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"32802469-eb0a-4262-9899-367675a4bb41\",\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}" + "meshPlatformV2-Put-aws": { + "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"02f90bc7-4b44-4faa-9913-9db76bd59461\",\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}" }, - "meshPlatformV1-Put-aws": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\",\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}" + "meshPlatformV2-Put-kubernetes": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"3504cb55-d7a3-43fe-9037-ba30590f59f3\",\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 }" }, - "meshPlatformV1-Put-gcp": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\",\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}" + "meshPlatformV2-Put-openshift": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"160afde9-729c-41b8-91e2-d107491eda3d\",\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 }" }, - "meshPlatformV1-Put-kubernetes": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"b8a40267-ce60-4494-b971-185519e1268e\",\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}" + "meshPlatformV2-Put-azurerg": { + "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\",\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}" }, - "meshPlatformV1-Put-openshift": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"6784dd02-e591-4398-93a6-c69bf0f27783\",\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}" + "meshPlatformV2-Put-azure": { + "value": "{\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"6858108a-94ac-4565-97d9-cc8f996eacbd\",\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}" }, - "meshPlatformV1-Put-azurerg": { - "value": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"14eaa869-732e-4137-bc88-bffd7c9b7755\",\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}" + "meshPlatformV2-Put-aks": { + "value": " {\n \"apiVersion\": \"v2-preview\",\n \"kind\": \"meshPlatform\",\n \"metadata\": {\n \"uuid\": \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\",\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 }" } } } @@ -4259,59 +4259,59 @@ "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/meshPlatformV2-Put-kubernetes" + "$ref": "#/components/schemas/meshPlatformV1-Put-azurerg" }, "examples": { - "meshPlatformV2-Put-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Put-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Put-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Put-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Put-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Put-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Put-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Put-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Put-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Put-gcp": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Put-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Put-aws": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV2-Put-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV1-Put-kubernetes": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } }, - "application/vnd.meshcloud.api.meshplatform.v1.hal+json": { + "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json": { "schema": { - "$ref": "#/components/schemas/meshPlatformV1-Put-azure" + "$ref": "#/components/schemas/meshPlatformV2-Put-gcp" }, "examples": { - "meshPlatformV1-Put-azure": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Put-gcp": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Put-aks": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Put-aws": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Put-aws": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Put-kubernetes": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Put-gcp": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Put-openshift": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Put-kubernetes": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Put-azurerg": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Put-openshift": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Put-azure": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" }, - "meshPlatformV1-Put-azurerg": { - "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" + "meshPlatformV2-Put-aks": { + "value": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}" } } } @@ -4332,7 +4332,7 @@ ], "summary": "Delete platform", "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.", - "operationId": "meshPlatformDeleteV", + "operationId": "meshPlatformDelete", "parameters": [ { "name": "uuid", @@ -4346,12 +4346,12 @@ { "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": { @@ -4416,7 +4416,7 @@ }, "examples": { "meshProjectGroupBindingListV3": { - "value": "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"a4a4c984-c6f7-47ee-9929-40e595aee823\"\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/a4a4c984-c6f7-47ee-9929-40e595aee823\"\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\" : \"5520e378-a482-47b0-821a-31ec3acc4cdf\"\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/5520e378-a482-47b0-821a-31ec3acc4cdf\"\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}" } } } @@ -4548,7 +4548,7 @@ }, "examples": { "meshProjectUserBindingListV3": { - "value": "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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/deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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\" : \"d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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/d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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}" } } } @@ -4844,7 +4844,7 @@ }, "examples": { "meshProjectV2": { - "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-11-12T13:02:56.763868806Z\"\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-11-12T13:10:51.354454077Z\"\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}" } } } @@ -4905,7 +4905,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\" : \"vfaf6mpdsv1\"\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\" : \"gd4r3mpdsv1\"\n }\n}" } } } @@ -4921,7 +4921,7 @@ }, "examples": { "meshProjectPut": { - "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}" } } } @@ -4976,7 +4976,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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}" } } } @@ -5037,7 +5037,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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}" } } } @@ -5332,7 +5332,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-11-13T13:03:00.403298724Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"ae2aff8b-35df-4eea-a2dd-31f50ad5809a\",\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-11-13T13:10:54.471986094Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"bad4394e-82e7-4436-a922-054bae1870cb\",\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}" } } } @@ -5387,7 +5387,7 @@ }, "examples": { "meshTenantV4": { - "value": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"c2aad318-5e12-4549-8d46-8c02c573d411\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.412110616Z\"\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/c2aad318-5e12-4549-8d46-8c02c573d411\"\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\" : \"f1eac5d5-6de4-46d4-815e-fbd5519d5e21\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.413523462Z\"\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/f1eac5d5-6de4-46d4-815e-fbd5519d5e21\"\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}" } } } @@ -5472,7 +5472,7 @@ }, "examples": { "meshUserV2": { - "value": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"b54e6540-5a3b-4023-90ed-16af4beb7f07\",\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 \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"95269413-3e80-46f3-9d9c-277c3b84c55c\",\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}" } } } @@ -5509,11 +5509,11 @@ "content": { "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8": { "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\": \"feffc0cc-4f26-4bdf-a33f-49f89165c5ef\",\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\": \"3496453d-f60f-4e79-ad18-7a14cdc523e6\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}" } } } @@ -5529,7 +5529,7 @@ }, "examples": { "meshUserV2Put": { - "value": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"feffc0cc-4f26-4bdf-a33f-49f89165c5ef\",\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 \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"3496453d-f60f-4e79-ad18-7a14cdc523e6\",\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}" } } } @@ -5624,7 +5624,7 @@ }, "examples": { "meshWorkspaceGroupBindingList": { - "value": "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"363cb208-d208-436a-8766-5c1c358fcbc3\"\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/363cb208-d208-436a-8766-5c1c358fcbc3\"\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\" : \"a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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/a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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}" } } } @@ -5888,7 +5888,7 @@ }, "examples": { "meshWorkspace": { - "value": "{\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:01:43Z\"\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-11-12T13:09: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}" } } } @@ -5965,7 +5965,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-11-12T13:03:06.045167397Z\"\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-11-12T13:10:59.778096093Z\"\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}" } } } @@ -6149,7 +6149,7 @@ }, "examples": { "meshProjectGroupBindingV3": { - "value": "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"a4a4c984-c6f7-47ee-9929-40e595aee823\"\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/a4a4c984-c6f7-47ee-9929-40e595aee823\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"5520e378-a482-47b0-821a-31ec3acc4cdf\"\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/5520e378-a482-47b0-821a-31ec3acc4cdf\"\n }\n }\n}" } } } @@ -6235,7 +6235,7 @@ }, "examples": { "meshProjectUserBindingV3": { - "value": "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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/deed32a6-98f9-40f7-8c7b-52bff44b7319\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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/d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\n }\n }\n}" } } } @@ -6321,7 +6321,7 @@ }, "examples": { "meshWorkspaceGroupBinding": { - "value": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"363cb208-d208-436a-8766-5c1c358fcbc3\"\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/363cb208-d208-436a-8766-5c1c358fcbc3\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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/a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\n }\n }\n}" } } } @@ -6516,8 +6516,8 @@ "tags": [ "Building Block Runs" ], - "summary": "Update source for a building block run", - "description": "Update source steps for a meshBuildingBlockRun with status changes, messages, and outputs\n\n**Authentication:** This endpoint supports API Key authentication.", + "summary": "Abort a building block run", + "description": "Abort a meshBuildingBlockRun that is currently in progress\n\n**Authentication:** This endpoint supports API Key authentication.", "operationId": "meshBuildingBlockRun", "parameters": [ { @@ -6556,11 +6556,11 @@ "$ref": "#/components/schemas/api-meshobjects-meshbuildingblockruns-blockRunUuid-status-source-sourceId-1686374648" }, "examples": { - "meshBuildingBlockRunSourceUpdate": { - "value": "{\n \"status\": \"IN_PROGRESS\",\n \"steps\": [{\n \"id\": \"step1\",\n \"status\": \"SUCCEEDED\",\n \"userMessage\": \"Step was successful.\",\n \"systemMessage\": \"Step was successful.\",\n \"outputs\": {\n \"outputName\": {\n \"value\": \"hello-world\",\n \"type\": \"STRING\",\n \"isSensitive\": false\n }\n }\n },\n {\n \"id\": \"step2\",\n \"status\": \"IN_PROGRESS\"\n }]\n} " - }, "meshBuildingBlockRunAbort": { "value": "{\n \"status\": \"ABORTED\" \n} " + }, + "meshBuildingBlockRunSourceUpdate": { + "value": "{\n \"status\": \"IN_PROGRESS\",\n \"steps\": [{\n \"id\": \"step1\",\n \"status\": \"SUCCEEDED\",\n \"userMessage\": \"Step was successful.\",\n \"systemMessage\": \"Step was successful.\",\n \"outputs\": {\n \"outputName\": {\n \"value\": \"hello-world\",\n \"type\": \"STRING\",\n \"isSensitive\": false\n }\n }\n },\n {\n \"id\": \"step2\",\n \"status\": \"IN_PROGRESS\"\n }]\n} " } } } @@ -6572,13 +6572,13 @@ "content": { "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json": { "schema": { - "$ref": "#/components/schemas/meshBuildingBlockRunSourceUpdate" + "$ref": "#/components/schemas/meshBuildingBlockRunAbort" }, "examples": { - "meshBuildingBlockRunSourceUpdate": { + "meshBuildingBlockRunAbort": { "value": "{\n \"runAborted\" : false\n}" }, - "meshBuildingBlockRunAbort": { + "meshBuildingBlockRunSourceUpdate": { "value": "{\n \"runAborted\" : false\n}" } } @@ -6598,1696 +6598,770 @@ }, "components": { "schemas": { - "meshEventLogList": { - "title": "meshEventLogList", + "meshPlatformV1-Get-gcp": { + "title": "meshPlatformV1-Get-gcp", "required": [ - "_embedded", "_links", - "page" + "apiVersion", + "kind", + "metadata", + "spec", + "status" ], "type": "object", "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { + "metadata": { "required": [ - "meshEventLogs" + "name", + "ownedByWorkspace", + "uuid" ], "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)." - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies this event log." - } - }, - "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." - }, - "spec": { - "required": [ - "author", - "content", - "description", - "eventType", - "title" - ], - "type": "object", - "properties": { - "author": { - "type": "string", - "description": "The username or identifier of the user 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": "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." - } - } - }, - "meshTenantV3": { - "title": "meshTenantV3", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "assignedTags", - "ownedByProject", - "ownedByWorkspace", - "platformIdentifier", - "tenantIdentifier" - ], - "type": "object", - "properties": { - "ownedByProject": { - "type": "string", - "description": "The identifier of the meshProject the meshTenant belongs to." - }, - "assignedTags": { - "type": "object", - "description": "The tags assigned to this meshTenant originating from meshWorkspace, Payment Method and meshProject. Keep in mind, that values are an array." - }, "deletedOn": { "type": "string", - "description": "If the meshTenant 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.", + "description": "Timestamp when the meshPlatform was deleted, null if not deleted.", "nullable": true }, - "platformIdentifier": { + "name": { "type": "string", - "description": "The identifier of the related platform instance" + "description": "The platform identifier as 'name' to identify the meshPlatform." }, - "tenantIdentifier": { + "uuid": { "type": "string", - "description": "The full identifier of this tenant, a concatenation of the workspace identifier, project identifier and platform identifier." + "description": "The UUID of the meshPlatform." }, "ownedByWorkspace": { "type": "string", - "description": "The identifier of the meshWorkspace the meshTenant belongs to." + "description": "The identifier of the workspace that owns this meshPlatform." } }, - "description": "Always contains the 'ownedByProject', 'ownedByWorkspace' and 'platformIdentifier' to identify the meshTenant." + "description": "Contains metadata to uniquely identify the meshPlatform." }, "apiVersion": { "type": "string", - "description": "Version of meshTenant datatype. Matches the version provided in the `Accept` request header." + "description": "Version of meshPlatform 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 this meshObject." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshPlatform' for this endpoint." }, "spec": { "required": [ - "landingZoneIdentifier", - "localId", - "quotas" + "availability", + "config", + "displayName", + "locationRef" ], "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" - } - ] - } + "documentationUrl": { + "type": "string", + "description": "URL for platform documentation.", + "nullable": true }, - "landingZoneIdentifier": { + "endpoint": { "type": "string", - "description": "The identifier of the Landing Zone of this meshTenant. This field will be empty if the meshTenant has no Landing Zone." + "description": "The web console URL endpoint of the platform.", + "nullable": true }, - "localId": { + "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 localId (platform tenant id) assigned with this meshTenant. It will only be set if the tenant was either imported via meshObject API with a localId or if at least one replication run finished successfully for this tenant." - } - }, - "description": "All fields in this section describe the meshTenant." - } - } - }, - "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." - } - } - }, - "meshCommunicationDefinitionPut": { - "title": "meshCommunicationDefinitionPut", - "type": "object" - }, - "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" - } - } - }, - "meshProjectRoleV1Put": { - "title": "meshProjectRoleV1Put", - "type": "object" - }, - "meshServiceInstanceListV2": { - "title": "meshServiceInstanceListV2", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshServiceInstances" - ], - "type": "object", - "properties": { - "meshServiceInstances": { - "type": "array", - "description": "List of meshServiceInstances.", - "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." - } - } - }, - "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", - "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." + "description": "The human-readable display name of the meshPlatform." }, "supportUrl": { "type": "string", - "description": "The URL pointing to support of the Building Block Definition. (optional)" + "description": "URL for platform support documentation.", + "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" - } - ] - } + "description": "description of the meshPlatform.", + "nullable": true }, - "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" + "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." }, - "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." - } - } - }, - "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." - } - } - }, - "meshPlatformListV2": { - "title": "meshPlatformListV2", - "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": { + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "kubernetes": { + "required": [ + "baseUrl" + ], + "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": [ - "autoApprovalThreshold", - "description", - "label", - "maxValue", - "minValue", - "quotaKey" + "accessToken" ], "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": { + "accessToken": { "type": "string", - "description": "Human-readable label for the quota." + "description": "The Access Token of the service account for replicator access." } - } + }, + "description": "Client configuration for Kubernetes" } }, - "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": "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" + }, + "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 }, - "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." + "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." + } }, - "restriction": { - "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." + "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." + } }, - "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": "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": "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": "Tenant tags configuration" }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + "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 + } }, - "contributingWorkspaces": { - "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, - "items": { - "oneOf": [ - { - "type": "object" + "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", + "properties": { + "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" + } + } + } }, - { - "type": "boolean" + "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)" }, - { - "type": "string" + "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" }, - { - "type": "number" + "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": "All fields in this section describe the meshPlatform configuration." + }, + "description": "Replication configuration for GCP (optional, but required for replication)" + } }, - "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." - } - } - }, - "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 Google Cloud Platform (GCP)" }, - "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." - } - } - }, - "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" + "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" + }, + "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." - } - } - }, - "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." - } - } - } - } - }, - "api-meshobjects-meshplatforms-uuid840776026": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "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." + "description": "Configuration for Azure Kubernetes Service (AKS)" }, - "restriction": { + "type": { "type": "string", - "description": "Access restriction level: PUBLIC, PRIVATE, or RESTRICTED." + "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'." }, - "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": { - "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": "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.", - "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": { + "enrollmentConfiguration": { "required": [ - "authType", - "clientId", - "objectId" + "accountFactoryProductId", + "managementAccountId" ], "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": { + "managementAccountId": { "type": "string", - "description": "Authentication type (CREDENTIALS or WORKLOAD_IDENTITY)" + "description": "The Account ID of the management account configured for the platform instance." }, - "objectId": { + "accountFactoryProductId": { "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 Product ID of the AWS Account Factory Product in AWS Service Catalog that should be used for enrollment. Starts with `prod-`." } }, - "description": "Service principal configuration for Azure" + "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." }, - "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." + "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": [ @@ -8319,328 +7393,255 @@ }, "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": { + "automationAccountRole": { "type": "string", - "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." + "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": "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 AWS platform. Checking this option preserves those permissions. Please keep in mind that the platform operator is then responsible for cleaning them up later." }, - "resourceGroupNamePattern": { + "automationAccountExternalId": { "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": "ExternalId to enhance security in a multi account setup when assuming the automation account role.", "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", - "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": { + "accountAliasPattern": { "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": "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." }, - "projectNamePattern": { + "accountEmailPattern": { "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 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." }, - "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." + "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." }, - "tenantTags": { + "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": [ - "namespacePrefix", - "tagMappers" + "organizationRootAccountRole" ], "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": { + "organizationRootAccountRole": { "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": { + "description": "ARN of the Management Account Role. The Management Account contains your AWS organization. E.g. arn:aws:iam::123456789:role/MeshfedServiceRole." + }, + "workloadIdentityConfig": { "required": [ - "serviceAccountCredentialsB64" + "roleArn" ], "type": "object", "properties": { - "serviceAccountCredentialsB64": { + "roleArn": { "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": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." } }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" + "description": "Workload identity configuration (alternative to serviceUserConfig)" }, - "serviceAccountWorkloadIdentityConfig": { + "serviceUserConfig": { "required": [ - "audience" + "accessKey", + "secretKey" ], "type": "object", "properties": { - "serviceAccountEmail": { + "secretKey": { "type": "string", - "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation.", - "nullable": true + "description": "AWS secret key for service user" }, - "audience": { + "accessKey": { "type": "string", - "description": "The audience associated with your workload identity pool provider." + "description": "AWS access key for service user" } }, - "description": "Service account workload identity configuration (alternative to serviceAccountCredentialsConfig)" + "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": "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" + "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." }, - "serviceAccountConfig": { + "awsSso": { + "required": [ + "arn", + "groupNamePattern", + "scimEndpoint", + "signInUrl", + "ssoAccessToken" + ], "type": "object", "properties": { - "serviceAccountCredentialsConfig": { - "required": [ - "serviceAccountCredentialsB64" - ], + "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": { - "serviceAccountCredentialsB64": { - "type": "string", - "description": "Base64 encoded credentials.json file for metering service account" + "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": "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 + "description": "Role mappings for AWS SSO" }, - "deleteRawDataAfterDays": { - "type": "number", - "description": "Number of days after which raw metering data is deleted", - "nullable": true + "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." } }, - "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": "AWS SSO configuration" } }, - "description": "Metering configuration for GCP (optional, but required for metering)" + "description": "Replication configuration for AWS (optional, but required for replication)" + }, + "region": { + "type": "string", + "description": "AWS region" } }, - "description": "Configuration for Google Cloud Platform (GCP)" + "description": "Configuration for AWS" }, - "openshift": { + "azure": { "required": [ - "baseUrl" + "entraTenant" ], "type": "object", "properties": { "replication": { "required": [ - "clientConfig", - "enableTemplateInstantiation", - "identityProviderName", - "projectNamePattern" + "blueprintLocation", + "blueprintServicePrincipal", + "groupNamePattern", + "roleMappings", + "servicePrincipal", + "skipUserGroupPermissionCleanup", + "subscriptionNamePattern", + "userLookUpStrategy" ], "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" - } + "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." } - } - }, - "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." + }, + "description": "Service principal configuration for Azure" }, "tenantTags": { "required": [ @@ -8677,7131 +7678,394 @@ }, "description": "Tenant tags configuration" }, - "identityProviderName": { + "blueprintLocation": { "type": "string", - "description": "Identity provider name" + "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." }, - "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." + "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." }, - "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": { + "roleMappings": { "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": "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." }, - "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": "Configuration for OpenShift" - }, - "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": { + "b2bUserInvitation": { "required": [ - "authType", - "clientId", - "entraTenant", - "objectId" + "redirectUrl", + "sendAzureInvitationMail" ], "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": { + "redirectUrl": { "type": "string", - "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" + "description": "This is the URL that Azure's consent experience redirects users to after they accept their invitation." }, - "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." + "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": "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" + "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." }, - "accessToken": { + "blueprintServicePrincipal": { "type": "string", - "description": "The Access Token of the service account for replicator access." + "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." }, - "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": { + "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 - } - } - }, - "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": "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" - ], - "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": { + "preProvisioned": { "required": [ - "roleArn" + "unusedSubscriptionNamePrefix" ], "type": "object", "properties": { - "roleArn": { + "unusedSubscriptionNamePrefix": { "type": "string", - "description": "ARN of the role that should be used as the entry point for meshStack by assuming it via web identity." + "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": "Workload identity configuration (alternative to serviceUserConfig)" + "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." }, - "serviceUserConfig": { + "customerAgreement": { "required": [ - "accessKey", - "secretKey" + "billingScope", + "destinationEntraId", + "sourceEntraTenant", + "sourceServicePrincipal" ], "type": "object", "properties": { - "secretKey": { + "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": "AWS secret key for service user" + "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." }, - "accessKey": { + "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": "AWS access key for service user" + "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": "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." + "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." }, - "awsRoleMappings": { + "subscriptionOwnerObjectIds": { "type": "array", - "description": "Roles can be mapped from the meshRole to the AWS role.", + "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": { - "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" + "oneOf": [ + { + "type": "object" }, - "permissionSetArns": { - "type": "array", - "description": "Permission set ARNs for role mapping", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } + { + "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": { + "enterpriseEnrollment": { "required": [ - "accessKey", - "secretKey" + "enrollmentAccountId", + "subscriptionOfferType", + "useLegacySubscriptionEnrollment" ], "type": "object", "properties": { - "secretKey": { + "subscriptionOfferType": { "type": "string", - "description": "AWS secret key for metering service user" + "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." }, - "accessKey": { + "enrollmentAccountId": { "type": "string", - "description": "AWS access key for metering service user" + "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": "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": "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": "AWS access configuration for metering. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." + "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!" }, - "savingsPlanFairChargeback": { - "type": "boolean", - "description": "Whether to enable fair chargeback for savings plans" + "subscriptionNamePattern": { + "type": "string", + "description": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." }, - "reservedInstanceFairChargeback": { + "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": "Whether to enable fair chargeback for reserved instances" + "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 AWS (optional, but required for metering)" + "description": "Replication configuration for Azure (optional, but required for replication)" }, - "region": { + "entraTenant": { "type": "string", - "description": "AWS region" + "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Configuration for AWS" - }, - "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": "Configuration for Azure" - } - }, - "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." - } - } - }, - "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." - } - } - }, - "meshPaymentMethodV2Post": { - "title": "meshPaymentMethodV2Post", - "type": "object" - }, - "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." - } - } - }, - "api-login-582311654": { - "required": [ - "clientId", - "clientSecret" - ], - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "The Key ID assigned to your API key upon creation. This ID is used to authenticate your application." - }, - "clientSecret": { - "type": "string", - "description": "The Key Secret associated with your API key. This secret is used in conjunction with the `clientId` to securely authenticate your application." - } - } - }, - "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." - } - }, - "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." - } - } - }, - "api-meshobjects-meshplatforms-uuid-1785714494": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "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": { - "kubernetes": { - "required": [ - "baseUrl" - ], - "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." - } - }, - "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" - }, - "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." - }, - "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)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" - } - }, - "description": "Configuration for Azure Resource Group" - }, - "gcp": { - "type": "object", - "properties": { - "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": "Configuration for Google Cloud Platform (GCP)" - }, - "openshift": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "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." - } - }, - "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" - } - }, - "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." - } - }, - "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" - }, - "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": { - "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" - }, - "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'." - }, - "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", - "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" - } - ] - } - } - } - }, - "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." - } - }, - "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", - "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." - }, - "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." - } - }, - "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" - } - }, - "description": "Configuration for Azure" - } - }, - "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." - } - } - }, - "meshWorkspaceUserGroupList": { - "title": "meshWorkspaceUserGroupList", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshWorkspaceUserGroups" - ], - "type": "object", - "properties": { - "meshWorkspaceUserGroups": { - "type": "array", - "description": "List of meshWorkspaceUserGroups.", - "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-meshprojectbindings-userbindings226655957": { - "required": [ - "apiVersion", - "kind" - ], - "type": "object", - "properties": { - "targetRef": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of the project the user 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" - } - } - }, - "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." - } - } - } - } - }, - "meshObjectsRootV2": { - "title": "meshObjectsRootV2", - "required": [ - "_links" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "All available meshObject Links for the authenticated user." - } - } - }, - "meshProjectUserBindingV3": { - "title": "meshProjectUserBindingV3", - "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 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." - } - } - }, - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The meshProjectUserBinding identifier as 'name' to uniquely identify the meshProjectUserBinding." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshProjectUserBinding." - }, - "apiVersion": { - "type": "string", - "description": "Version of meshProjectUserBinding 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 'meshProjectUserBinding' for this endpoint." - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this user." - } - } - } - } - }, - "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." - } - } - }, - "api-meshobjects-meshlandingzones1577368408": { - "type": "object", - "properties": { - "spec": { - "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, `azurerg` in this case." - }, - "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!" - } - } - } - } - } - } - } - } - }, - "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." - } - } - } - } - }, - "meshProjectGroupBindingCreateV3": { - "title": "meshProjectGroupBindingCreateV3", - "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 group should get assigned to." - }, - "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" - } - } - }, - "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 identifier of the referenced group." - } - } - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this group." - } - } - } - } - }, - "meshTagDefinition": { - "title": "meshTagDefinition", - "required": [ - "_links", - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Must be of the form `$targetKind.$key` since tag definitions must be non-conflicting." - } - }, - "description": "Always contains the 'name' to uniquely identify the meshTagDefinition." - }, - "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." - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a `kind`. This is always `meshTagDefinition` for this endpoint." - }, - "spec": { - "required": [ - "description", - "displayName", - "key", - "targetKind", - "valueType" - ], - "type": "object", - "properties": { - "immutable": { - "type": "boolean", - "description": "Indicates whether the tag value is not editable after initially set.", - "nullable": true - }, - "replicationKey": { - "type": "string", - "description": "The key for this tag when replicated to cloud platforms. If null, replication is disabled.", - "nullable": true - }, - "restricted": { - "type": "boolean", - "description": "Indicates whether only admins can edit this tag.", - "nullable": true - }, - "displayName": { - "type": "string", - "description": "The display name of the tag." - }, - "valueType": { - "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" - }, - "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": [ - "options" - ], - "type": "object", - "properties": { - "defaultValue": { - "type": "string", - "description": "The default value of the tag.", - "nullable": true - }, - "options": { - "type": "array", - "description": "The allowed options for the tag as a string[]", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "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 - }, - "validationRegex": { - "type": "string", - "description": "The regex pattern that the tag value must match.", - "nullable": true - } - }, - "description": "email address, represented as JSON string" - }, - "multiSelect": { - "required": [ - "options" - ], - "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" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "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." - } - } - }, - "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." - } - } - }, - "meshLandingZonePost_azure": { - "title": "meshLandingZonePost_azure", - "type": "object" - }, - "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." - }, - "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." - } - } - }, - "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." - }, - "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" - } - } - }, - "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." - } - } - }, - "meshBuildingBlockRunSourceUpdate": { - "title": "meshBuildingBlockRunSourceUpdate", - "required": [ - "runAborted" - ], - "type": "object", - "properties": { - "runAborted": { - "type": "boolean", - "description": "Indicates if the run has been aborted. In this case the run status is locked\nand the caller should refrain from sending more subsequent updates." - } - } - }, - "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-meshbuildingblockruns-blockRunUuid-status-source-sourceId-1686374648": { - "type": "object", - "properties": { - "steps": { - "type": "array", - "description": "Can contain updates to the steps. (Optional)", - "items": { - "required": [ - "id" - ], - "type": "object", - "properties": { - "outputs": { - "type": "object", - "properties": { - "outputName": { - "required": [ - "isSensitive", - "type", - "value" - ], - "type": "object", - "properties": { - "isSensitive": { - "type": "object", - "description": "Flag if the variable content is sensitive and encrypted. The runner must decrypt this variable content first before it can be used. Information on how to do this will provided in the future." - }, - "type": { - "type": "object", - "description": "The type of the variable. It can be one of mesh_buildingblockrun_iotype" - }, - "value": { - "type": "object", - "description": "The name of the input variable." - } - } - } - }, - "description": "Contains any output this step has provided. (Optional)" - }, - "userMessage": { - "type": "string", - "description": "A message which is displayed to the user. It should not exceed more than 500 characters. (Optional)", - "nullable": true - }, - "systemMessage": { - "type": "string", - "description": "A message which is displayed only to the operators. It should not exceed more than 500 characters. (Optional) ", - "nullable": true - }, - "id": { - "type": "string", - "description": "The ID of the step which should get updates." - }, - "status": { - "type": "string", - "description": "The execution status of this step. Can be `PENDING`, `IN_PROGRESS`, `SUCCEEDED`, `ABORTED` or `FAILED`. (Optional)", - "nullable": true - } - } - } - }, - "status": { - "type": "string", - "description": "The execution status of the building block as whole. Can be any of `PENDING`, `IN_PROGRESS`, `SUCCEEDED`, `ABORTED` or `FAILED`. (Optional)", - "nullable": true - } - } - }, - "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." - } - } - } - } - }, - "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." - } - }, - "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." - } - } - }, - "meshPlatformListV1": { - "title": "meshPlatformListV1", - "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" - ], - "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": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." - } - } - }, - "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-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." - } - } - }, - "meshPlatformV1-Get-azure": { - "title": "meshPlatformV1-Get-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" - ], - "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": { - "kubernetes": { - "required": [ - "baseUrl" - ], - "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." - } - }, - "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" - }, - "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." - }, - "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)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" - } - }, - "description": "Configuration for Azure Resource Group" - }, - "gcp": { - "type": "object", - "properties": { - "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": "Configuration for Google Cloud Platform (GCP)" - }, - "openshift": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "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." - } - }, - "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" - } - }, - "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." - } - }, - "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" - }, - "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": { - "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" - }, - "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'." - }, - "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", - "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" - } - ] - } - } - } - }, - "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." - } - }, - "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", - "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." - }, - "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." - } - }, - "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" - } - }, - "description": "Configuration for Azure" - } - }, - "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." - } - } - }, - "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." - } - } - }, - "importInJson": { - "title": "importInJson", - "type": "object" - }, - "meshLandingZonePut": { - "title": "meshLandingZonePut", - "type": "object" - }, - "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." - } - } - }, - "api-meshobjects-meshprojects-600031310": { - "required": [ - "apiVersion", - "kind", - "metadata", - "spec" - ], - "type": "object", - "properties": { - "metadata": { - "required": [ - "name", - "ownedByWorkspace" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier that should be unique within a workspace" - }, - "ownedByWorkspace": { - "type": "string", - "description": "The identifier of the workspace that the project should belong to." - } - }, - "description": "Fixed fields that help to identify the meshProject." - }, - "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." - } - } - }, - "meshLandingZoneList": { - "title": "meshLandingZoneList", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshLandingZones" - ], - "type": "object", - "properties": { - "meshLandingZones": { - "type": "array", - "description": "List of meshLandingZones.", - "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." - } - } - }, - "meshProjectListV2": { - "title": "meshProjectListV2", - "required": [ - "_embedded", - "_links", - "page" - ], - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { - "required": [ - "meshProjects" - ], - "type": "object", - "properties": { - "meshProjects": { - "type": "array", - "description": "List of meshProjects.", - "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-meshusers-username-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 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 '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." - } - } - }, - "api-login2002944754": { - "required": [ - "client_id", - "client_secret", - "grant_type" - ], - "type": "object", - "properties": { - "grant_type": { - "type": "string", - "description": "The grant type, which must be 'client_credentials'." - }, - "client_secret": { - "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." - }, - "client_id": { - "type": "string", - "description": "The Key ID assigned to your API key upon creation. This ID is used to authenticate your application." - } - } - }, - "api-meshobjects-meshworkspacebindings-groupbindings-439969197": { - "required": [ - "apiVersion", - "kind" - ], - "type": "object", - "properties": { - "targetRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of the workspace the group 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 identifier of the referenced workspace user group." + "description": "Configuration for Azure" + } + }, + "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." }, - "roleRef": { - "required": [ - "name" - ], + "status": { "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the role for this workspace user group." - } - } + "description": "Current status information of the meshPlatform." } } }, - "meshWorkspaceUserBinding": { - "title": "meshWorkspaceUserBinding", + "meshEventLogList": { + "title": "meshEventLogList", "required": [ + "_embedded", "_links", - "apiVersion", - "kind", - "metadata" + "page" ], "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." + "description": "Currently only contains the self link and pagination links." }, - "subject": { + "_embedded": { "required": [ - "name" + "meshEventLogs" ], "type": "object", "properties": { - "name": { - "type": "string", - "description": "The username of the referenced user." + "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)." + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies this event log." + } + }, + "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." + }, + "spec": { + "required": [ + "author", + "content", + "description", + "eventType", + "title" + ], + "type": "object", + "properties": { + "author": { + "type": "string", + "description": "The username or identifier of the user 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": "All fields in this section describe the event log." + } + } + } } - } - }, - "kind": { - "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspaceUserBinding' 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 user." - } - } + "description": "Information about paging." } } }, - "meshLandingZone": { - "title": "meshLandingZone", + "meshTenantV3": { + "title": "meshTenantV3", "required": [ "_links", "apiVersion", "kind", "metadata", - "spec", - "status" + "spec" ], "type": "object", "properties": { "metadata": { "required": [ - "name", - "tags" + "assignedTags", + "ownedByProject", + "ownedByWorkspace", + "platformIdentifier", + "tenantIdentifier" ], "type": "object", "properties": { - "name": { + "ownedByProject": { "type": "string", - "description": "The identifier as 'name' to uniquely identify the meshLandingZone." + "description": "The identifier of the meshProject the meshTenant belongs to." }, - "tags": { + "assignedTags": { "type": "object", - "description": "Key/Value pairs of tags set on the meshLandingZone." + "description": "The tags assigned to this meshTenant originating from meshWorkspace, Payment Method and meshProject. Keep in mind, that values are an array." + }, + "deletedOn": { + "type": "string", + "description": "If the meshTenant 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 + }, + "platformIdentifier": { + "type": "string", + "description": "The identifier of the related platform instance" + }, + "tenantIdentifier": { + "type": "string", + "description": "The full identifier of this tenant, a concatenation of the workspace identifier, project identifier and platform identifier." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the meshTenant belongs to." } }, - "description": "Always contains the 'name' to uniquely identify the meshLandingZone." + "description": "Always contains the 'ownedByProject', 'ownedByWorkspace' and 'platformIdentifier' to identify the meshTenant." }, "apiVersion": { "type": "string", - "description": "Version of meshLandingZone 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", @@ -15809,162 +8073,143 @@ }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." }, "spec": { "required": [ - "automateDeletionApproval", - "automateDeletionReplication", - "displayName", - "platformProperties", - "platformRef" + "landingZoneIdentifier", + "localId", + "quotas" ], "type": "object", "properties": { - "platformProperties": { - "type": "object", - "description": "Custom properties for the platform of the landing zone. The values depend on the platform type. Please refer to mesh_landing_zone_properties for more details." - }, - "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." + "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" + } + ] + } }, - "description": { + "landingZoneIdentifier": { "type": "string", - "description": "The description of the meshLandingZone.", - "nullable": true - }, - "automateDeletionReplication": { - "type": "boolean", - "description": "Whether deletion replication is automated for this landing zone." + "description": "The identifier of the Landing Zone of this meshTenant. This field will be empty if the meshTenant has no Landing Zone." }, - "infoLink": { + "localId": { "type": "string", - "description": "Optional link to additional information about the landing zone.", - "nullable": true - }, - "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." + "description": "The localId (platform tenant id) assigned with this meshTenant. It will only be set if the tenant was either imported via meshObject API with a localId or if at least one replication run finished successfully for this tenant." } }, - "description": "All fields in this section describe the meshLandingZone." + "description": "All fields in this section describe the meshTenant." + } + } + }, + "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": [ - "disabled", - "restricted" + "meshTenants" ], "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." + "meshTenants": { + "type": "array", + "description": "List of meshTenants.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } } }, - "description": "Current status of the meshLandingZone." + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." } } }, - "api-meshobjects-meshcommunications-1284413466": { + "meshCommunicationPost": { + "title": "meshCommunicationPost", + "type": "object" + }, + "api-meshobjectcollections-319085079": { "required": [ - "apiVersion", - "kind", - "spec" + "name", + "owner" ], "type": "object", "properties": { - "apiVersion": { + "owner": { "type": "string", - "description": "Version of Communication datatype. Matches the version part provided within the `Accept` request header." + "description": "The owner of the meshObjectCollection" }, - "kind": { + "name": { "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." + "description": "Name of the meshObjectCollection" } } }, - "api-meshobjects-meshplatforms-1788285441": { + "meshProjectRoleV1Put": { + "title": "meshProjectRoleV1Put", + "type": "object" + }, + "meshPlatformV2-Post-azurerg": { + "title": "meshPlatformV2-Post-azurerg", "required": [ + "_links", "apiVersion", "kind", "metadata", - "spec" + "spec", + "status" ], "type": "object", "properties": { "metadata": { "required": [ "name", - "ownedByWorkspace" + "ownedByWorkspace", + "uuid" ], "type": "object", "properties": { @@ -15977,6 +8222,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." @@ -15988,6 +8237,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." @@ -15997,7 +8250,8 @@ "availability", "config", "displayName", - "locationRef" + "locationRef", + "quotaDefinitions" ], "type": "object", "properties": { @@ -16006,6 +8260,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.", @@ -16013,18 +8313,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." @@ -16045,18 +8345,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", @@ -16082,6 +8382,11 @@ }, "description": "Availability configuration for the meshPlatform." }, + "readme": { + "type": "string", + "description": "README about the meshPlatform in markdown format", + "nullable": true + }, "config": { "required": [ "type" @@ -16125,13 +8430,41 @@ "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.", "nullable": true } }, - "description": "Configuration for Kubernetes" + "description": "Kubernetes configuration, if applicable." }, "gcp": { "type": "object", @@ -16142,16 +8475,46 @@ "billingAccountId", "customerId", "domain", + "gcpRoleMappings", "groupNamePattern", "projectIdPattern", "projectNamePattern", - "roleMappings", "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')" @@ -16221,14 +8584,14 @@ }, "serviceAccountWorkloadIdentityConfig": { "required": [ - "audience", - "serviceAccountEmail" + "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." + "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation.", + "nullable": true }, "audience": { "type": "string", @@ -16244,29 +8607,6 @@ "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." @@ -16285,9 +8625,79 @@ } }, "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 + }, + "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" + } + }, + "description": "Metering configuration for GCP (optional, but required for metering)" } }, - "description": "Configuration for Google Cloud Platform (GCP)" + "description": "GCP configuration, if applicable." }, "azurerg": { "required": [ @@ -16425,7 +8835,7 @@ "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Configuration for Azure Resource Group" + "description": "Azure Resource Group configuration, if applicable." }, "openshift": { "required": [ @@ -16442,6 +8852,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", @@ -16494,28 +8934,48 @@ "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": "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 }, - "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": [ @@ -16525,17 +8985,13 @@ "properties": { "accessToken": { "type": "string", - "description": "The Access Token of the service account for replicator access." + "description": "Access token for Kubernetes API authentication" } }, - "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", @@ -16543,7 +8999,7 @@ "nullable": true } }, - "description": "Configuration for OpenShift" + "description": "Openshift configuration, if applicable." }, "aks": { "required": [ @@ -16647,17 +9103,50 @@ "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.)", "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": [ @@ -16746,7 +9235,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", @@ -16817,7 +9306,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 } }, @@ -16826,6 +9315,7 @@ "awsSso": { "required": [ "arn", + "awsRoleMappings", "groupNamePattern", "scimEndpoint", "signInUrl", @@ -16841,102 +9331,175 @@ "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" - } - ] + "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`" } - } - } - }, - "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": "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": "Role mappings for AWS SSO" - }, - "scimEndpoint": { - "type": "string", - "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." + "description": "Workload identity configuration for metering (alternative to serviceUserConfig)" }, - "arn": { - "type": "string", - "description": "The ARN of your AWS IAM Identity Center Instance. E.g. arn:aws:sso:::instance/ssoins-123456789abc." + "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)" }, - "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. 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": "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": [ @@ -16946,10 +9509,10 @@ "properties": { "replication": { "required": [ + "azureRoleMappings", "blueprintLocation", "blueprintServicePrincipal", "groupNamePattern", - "roleMappings", "servicePrincipal", "skipUserGroupPermissionCleanup", "subscriptionNamePattern", @@ -17028,10 +9591,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." @@ -17041,6 +9600,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", @@ -17202,17 +9805,289 @@ "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" - } - }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + "description": "Configuration for Azure" + } + }, + "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." + } + } + }, + "meshServiceInstanceListV2": { + "title": "meshServiceInstanceListV2", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshServiceInstances" + ], + "type": "object", + "properties": { + "meshServiceInstances": { + "type": "array", + "description": "List of meshServiceInstances.", + "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." + } + } + }, + "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", + "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" + } + ] + } }, - "contributingWorkspaces": { + "notificationSubscriberUsernames": { "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, + "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", "items": { "oneOf": [ { @@ -17229,22 +10104,122 @@ } ] } + }, + "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 meshPlatform configuration." + "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." } } }, - "meshPaymentMethodV2Put": { - "title": "meshPaymentMethodV2Put", - "type": "object" + "apiRoot": { + "title": "apiRoot", + "required": [ + "_links" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "All available Top-Level Links for the authenticated user." + } + } }, - "meshWorkspacePut": { - "title": "meshWorkspacePut", - "type": "object" + "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." + } + } }, - "meshPaymentMethodListV2": { - "title": "meshPaymentMethodListV2", + "meshPlatformListV2": { + "title": "meshPlatformListV2", "required": [ "_embedded", "_links", @@ -17254,32 +10229,282 @@ "properties": { "_links": { "type": "object", - "description": "Currently only contains the self link and pagination links." + "description": "Contains the self link and pagination links (first, last, next, prev)." }, "_embedded": { "required": [ - "meshPaymentMethods" + "meshPlatforms" ], "type": "object", "properties": { - "meshPaymentMethods": { + "meshPlatforms": { "type": "array", - "description": "List of meshPaymentMethods.", + "description": "List of meshPlatforms with their configurations. Each platform object has the same structure as documented in the GET single platform response.", "items": { - "oneOf": [ - { - "type": "object" + "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." }, - { - "type": "boolean" + "apiVersion": { + "type": "string", + "description": "Version of meshPlatform datatype. Matches the version part provided within the `Accept` request header." }, - { - "type": "string" + "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." }, - { - "type": "number" + "status": { + "type": "object", + "description": "Current status information of the meshPlatform." } - ] + } } } }, @@ -17291,426 +10516,291 @@ } } }, - "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." - } - }, - "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." - } - } + "meshTagDefinitionPut": { + "title": "meshTagDefinitionPut", + "type": "object" }, - "meshUserV2": { - "title": "meshUserV2", + "meshBuildingBlockRunCreate": { + "title": "meshBuildingBlockRunCreate", "required": [ "_links", "apiVersion", "kind", - "metadata", - "spec" + "spec", + "status" ], "type": "object", "properties": { "metadata": { "required": [ - "name" + "uuid" ], "type": "object", "properties": { - "name": { + "uuid": { "type": "string", - "description": "The username as 'name' to uniquely identify the meshUser." + "description": "The UUID of this building block run." } - }, - "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." + "description": "Version of meshBuildingBlockRun datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", - "description": "Available links on a meshUser." + "description": "Available links on a meshBuildingBlockRun." }, "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 'meshBuildingBlockRun' for this endpoint." }, "spec": { "required": [ - "email", - "firstName", - "lastName" + "behavior", + "runNumber" ], "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": { + "buildingBlock": { + "required": [ + "uuid" + ], "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." - } - } - }, - "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." + "properties": { + "uuid": { + "type": "string", + "description": "UUID of the referenced building block." + }, + "spec": { + "required": [ + "displayName", + "fullPlatformIdentifier", + "inputs", + "parentBuildingBlocks", + "projectIdentifier", + "workspaceIdentifier" + ], + "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" + } + ] } - } - }, - "subject": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The identifier of this user group." + }, + "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)." + }, + "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." + } + } } + }, + "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." } - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the referenced role for this group." - } + } + } + } + }, + "buildingBlockDefinition": { + "required": [ + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "UUID of the building block definition." + }, + "spec": { + "required": [ + "implementation", + "version" + ], + "type": "object", + "properties": { + "implementation": { + "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." }, - "page": { - "type": "object", - "description": "Information about paging." + "status": { + "type": "string", + "description": "The current execution status of this building block run." } } }, - "meshBuildingBlock": { - "title": "meshBuildingBlock", + "api-meshobjects-meshbuildingblockdefinitions-446701723": { "required": [ - "_links", "apiVersion", "kind", "metadata", - "spec", - "status" + "spec" ], "type": "object", "properties": { "metadata": { "required": [ - "createdOn", - "definitionUuid", - "definitionVersion", - "forcePurge", - "tenantIdentifier", - "uuid" + "ownedByWorkspace" ], "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": { + "ownedByWorkspace": { "type": "string", - "description": "The full identifier of the tenant, this Building Block is created in." + "description": "The identifier of the meshWorkspace the Building Blocks Definition 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." + "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 datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a Building Block." + "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 'meshBuildingBlock' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." }, "spec": { "required": [ + "description", "displayName", - "inputs", - "parentBuildingBlocks" + "notificationSubscriberUsernames", + "supportedPlatforms", + "targetType", + "useInLandingZonesOnly" ], "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." - } - } - } + "symbol": { + "type": "string", + "description": "The symbol of the Building Block Definition as it is shown in meshPanel. (optional)", + "nullable": true }, - "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." - } - } - } + "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 as it is shown in meshPanel." - } - }, - "description": "All fields in this section describe the Building Block." - }, - "status": { - "required": [ - "outputs", - "status" - ], - "type": "object", - "properties": { - "outputs": { + "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 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." + "description": "List of the platforms this Building Block Definition supports", + "items": { + "oneOf": [ + { + "type": "object" }, - "value": { - "type": "string", - "description": "The value, which is set on this output." + { + "type": "boolean" }, - "key": { - "type": "string", - "description": "The key of the output as set on the related Building Block Definition." + { + "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." - } - } - }, - "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": { + "notificationSubscriberUsernames": { "type": "array", - "description": "List of meshTenant.", + "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", "items": { "oneOf": [ { @@ -17727,18 +10817,18 @@ } ] } + }, + "useInLandingZonesOnly": { + "type": "boolean", + "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." } }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." + "description": "All fields in this section describe the Building Block Definition." } } }, - "meshCommunicationDefinitionListFilteredByType": { - "title": "meshCommunicationDefinitionListFilteredByType", + "meshTagDefinitionList": { + "title": "meshTagDefinitionList", "required": [ "_embedded", "_links", @@ -17752,13 +10842,13 @@ }, "_embedded": { "required": [ - "meshCommunicationDefinitions" + "meshTagDefinitions" ], "type": "object", "properties": { - "meshCommunicationDefinitions": { + "meshTagDefinitions": { "type": "array", - "description": "List of meshCommunicationDefinitions.", + "description": "List of meshTagDefinitions.", "items": { "oneOf": [ { @@ -17785,90 +10875,8 @@ } } }, - "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." - } - } - } - } - }, - "meshProjectGroupBindingV3": { - "title": "meshProjectGroupBindingV3", + "meshWorkspaceGroupBindingCreate": { + "title": "meshWorkspaceGroupBindingCreate", "required": [ "_links", "apiVersion", @@ -17880,22 +10888,17 @@ "targetRef": { "required": [ "displayName", - "name", - "ownedByWorkspace" + "name" ], "type": "object", "properties": { "displayName": { "type": "string", - "description": "The name of the project the group is assigned to." + "description": "The name of the workspace 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." + "description": "The identifier of the workspace the group is assigned to." } } }, @@ -17907,14 +10910,14 @@ "properties": { "name": { "type": "string", - "description": "The meshProjectGroupBinding identifier as 'name' to uniquely identify the meshProjectGroupBinding." + "description": "The meshWorkspaceGroupBinding identifier as 'name' to uniquely identify the meshWorkspaceGroupBinding." } }, - "description": "Always contains the 'name' to uniquely identify the meshProjectGroupBinding." + "description": "Always contains the 'name' to uniquely identify the meshWorkspaceGroupBinding." }, "apiVersion": { "type": "string", - "description": "Version of meshProjectGroupBinding datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshWorkspaceGroupBinding datatype. Matches the version part provided within the `Accept` request header." }, "_links": { "type": "object", @@ -17928,107 +10931,30 @@ "properties": { "name": { "type": "string", - "description": "The identifier of this user group." + "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 'meshProjectGroupBinding' for this endpoint." + "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." - } - } - } - } - }, - "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": "object", + "properties": { + "name": { "type": "string", - "description": "The id of the service for the Service Instance" + "description": "The name of the referenced role for this group." } - }, - "description": "Specifications for the Service Instance." + } } } }, - "meshPaymentMethodV2": { - "title": "meshPaymentMethodV2", + "api-meshobjects-meshplatforms-uuid840776026": { "required": [ - "_links", "apiVersion", "kind", "metadata", @@ -18039,256 +10965,1664 @@ "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.", + "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 display name of the meshPaymentMethod as it is shown in meshPanel." + "description": "The human-readable display name of the meshPlatform." }, - "expirationDate": { + "supportUrl": { "type": "string", - "description": "The expiration date (yyyy-MM-dd) of the meshPaymentMethod. The date is considered as UTC.", + "description": "URL for platform support documentation.", "nullable": true }, - "tags": { + "description": { + "type": "string", + "description": "description of the meshPlatform.", + "nullable": true + }, + "availability": { + "required": [ + "publicationState", + "restriction" + ], "type": "object", - "description": "Key/Value pairs of tags set on the meshPaymentMethod. Keep in mind, that values are an array.", + "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 - } - }, - "description": "All fields in this section describe the meshPaymentMethod." - } - } - }, - "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." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "kubernetes": { + "required": [ + "baseUrl" + ], + "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." + } + }, + "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 + } + } + }, + "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." + }, + "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)" + }, + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + } + }, + "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", + "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)" + }, + "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 + }, + "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" + } + }, + "description": "Metering configuration for GCP (optional, but required for metering)" + } + }, + "description": "Configuration for Google Cloud Platform (GCP)" + }, + "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": "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 + }, + "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": "Configuration for OpenShift" + }, + "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 + }, + "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.)", + "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'." + }, + "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" + } }, - "name": { - "type": "string", - "description": "The identifier of the project the user is assigned to." + "description": "Metering configuration for AWS (optional, but required for metering)" + }, + "region": { + "type": "string", + "description": "AWS region" + } + }, + "description": "Configuration for AWS" + }, + "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 + } }, - "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." - } - } - }, - "meshEventLog": { - "title": "meshEventLog", - "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)." - }, - "uuid": { - "type": "string", - "description": "The UUID that uniquely identifies this event log." - } - }, - "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." - }, - "spec": { - "required": [ - "author", - "content", - "description", - "eventType", - "title" - ], - "type": "object", - "properties": { - "author": { - "type": "string", - "description": "The username or identifier of the user 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." + "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": "Configuration for Azure" + } + }, + "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." }, - "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": "All fields in this section describe the event log." - } - } - }, - "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": { + "contributingWorkspaces": { "type": "array", - "description": "List of meshCommunications.", + "description": "A list of workspace identifiers that may contribute to this meshPlatform.", + "nullable": true, "items": { "oneOf": [ { @@ -18307,159 +12641,121 @@ } } }, - "description": "Contains the actual content of the paged response." - }, - "page": { - "type": "object", - "description": "Information about paging." + "description": "All fields in this section describe the meshPlatform configuration." } } }, - "meshBuildingBlockDefinitionListV1": { - "title": "meshBuildingBlockDefinitionListV1", + "meshBuildingBlockRunAbort": { + "title": "meshBuildingBlockRunAbort", "required": [ - "_embedded", - "_links", - "page" + "runAborted" ], "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." + "runAborted": { + "type": "boolean", + "description": "Indicates if the run has been aborted. In this case the run status is locked\nand the caller should refrain from sending more subsequent updates." } } }, - "meshWorkspaceList": { - "title": "meshWorkspaceList", + "meshBuildingBlockDefinitionV1": { + "title": "meshBuildingBlockDefinitionV1", "required": [ - "_embedded", "_links", - "page" + "apiVersion", + "kind", + "metadata", + "spec", + "status" ], "type": "object", "properties": { - "_links": { - "type": "object", - "description": "Currently only contains the self link and pagination links." - }, - "_embedded": { + "metadata": { "required": [ - "meshWorkspaces" + "createdOn", + "ownedByWorkspace", + "tags", + "uuid" ], "type": "object", "properties": { - "meshWorkspaces": { - "type": "array", - "description": "List of meshWorkspaces.", - "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - } - ] - } + "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": "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." + "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." }, - "project-identifier": { + "apiVersion": { "type": "string", - "description": "Immutable unique identifier of the project." + "description": "Version of Building Block Definition datatype. Matches the version part provided within the `Accept` request header." }, - "customer-identifier": { - "type": "string", - "description": "Immutable unique identifier of the customer" + "_links": { + "type": "object", + "description": "Available links on a Building Block Definition." }, - "project-display-name": { + "kind": { "type": "string", - "description": "Human readable project name." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlockDefinition' for this endpoint." }, - "tags": { + "spec": { "required": [ - "costCenter", - "customNumber" + "description", + "displayName", + "notificationSubscriberUsernames", + "runTransparency", + "supportedPlatforms", + "symbol", + "targetType", + "useInLandingZonesOnly" ], "type": "object", "properties": { - "costCenter": { + "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": "A cost center number could be a custom tag.", + "description": "List of the platforms this Building Block Definition supports", "items": { "oneOf": [ { @@ -18477,9 +12773,9 @@ ] } }, - "customNumber": { + "notificationSubscriberUsernames": { "type": "array", - "description": "And any further attribute can be provided as a tag.", + "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", "items": { "oneOf": [ { @@ -18496,242 +12792,63 @@ } ] } + }, + "useInLandingZonesOnly": { + "type": "boolean", + "description": "Indicated whether this Building Block Definitions should be used on Landing Zones only." } }, - "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'." + "description": "All fields in this section describe the Building Block Definition." }, - "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": { + "status": { "required": [ - "uuid" + "latestReleasedVersion", + "latestVersion", + "versions" ], "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." + "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." + } } } - } - } - }, - "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": { + "latestReleasedVersion": { "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." + "description": "The number of the latest version based on this Building Block Definition not including a possible draft version." }, - "communicationsTotal": { + "latestVersion": { "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." + "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." } } }, - "meshProjectV2": { - "title": "meshProjectV2", + "api-meshobjects-meshworkspaces-1513610107": { "required": [ - "_links", "apiVersion", "kind", "metadata", @@ -18742,149 +12859,173 @@ "metadata": { "required": [ "name", - "ownedByWorkspace" + "tags" ], "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 + "description": "The workspaceIdentifier as 'name' to uniquely identify the meshWorkspace. (readonly after creation)" }, - "ownedByWorkspace": { - "type": "string", - "description": "The workspaceIdentifier as 'ownedByWorkspace'." + "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' and 'ownedByWorkspace' to uniquely identify the meshProject." + "description": "Always contains the 'name' to uniquely identify the meshWorkspace." }, "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." + "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 'meshProject' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspace' for this endpoint." }, "spec": { "required": [ - "displayName", - "tags" + "displayName" ], "type": "object", "properties": { - "substitutePaymentMethodIdentifier": { - "type": "string", - "description": "The substitutePaymentMethod of the meshProject", - "nullable": true - }, - "paymentMethodIdentifier": { - "type": "string", - "description": "The meshPaymentMethod of the meshProject.", + "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 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": "The display name of the meshWorkspace as it is shown in meshPanel." } }, - "description": "All fields in this section describe the meshProject." + "description": "All fields in this section describe the meshWorkspace." } } }, - "api-meshobjects-meshserviceinstances2008903272": { + "meshPaymentMethodV2Post": { + "title": "meshPaymentMethodV2Post", + "type": "object" + }, + "api-login-582311654": { "required": [ - "apiVersion", - "kind", - "metadata", - "spec" + "clientId", + "clientSecret" ], "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": { + "clientId": { "type": "string", - "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." + "description": "The Key ID assigned to your API key upon creation. This ID is used to authenticate your application." }, - "kind": { + "clientSecret": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshBuildingBlock' for this endpoint." + "description": "The Key Secret associated with your API key. This secret is used in conjunction with the `clientId` to securely authenticate your application." + } + } + }, + "meshUserListV2": { + "title": "meshUserListV2", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." }, - "spec": { + "_embedded": { "required": [ - "creator", - "displayName", - "planId", - "serviceId" + "meshUsers" ], "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" + "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." + } + }, + "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": "Specifications for the Service Instance." + "description": "Contains the actual content of the paged response." + }, + "page": { + "type": "object", + "description": "Information about paging." } } }, - "api-meshobjects-meshbuildingblockdefinitions-uuid-1197355657": { + "api-meshobjects-meshplatforms-uuid-1785714494": { "required": [ "apiVersion", "kind", @@ -18895,293 +13036,1261 @@ "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 Building Blocks Definition." + "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." }, "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", - "notificationSubscriberUsernames", - "supportedPlatforms", - "targetType", - "useInLandingZonesOnly" + "locationRef" ], "type": "object", "properties": { - "symbol": { + "documentationUrl": { "type": "string", - "description": "The symbol of the Building Block Definition as it is shown in meshPanel. (optional)", + "description": "URL for platform documentation.", "nullable": true }, - "documentationUrl": { + "endpoint": { "type": "string", - "description": "The URL pointing to documentation of the Building Block Definition. (optional)", + "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 display name of the Building Block Definition as it is shown in meshPanel." + "description": "The human-readable display name of the meshPlatform." }, "supportUrl": { "type": "string", - "description": "The URL pointing to support of the Building Block Definition. (optional)", + "description": "URL for platform support documentation.", "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)", + "description": "description of the meshPlatform.", "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" + "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." }, - "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" + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "kubernetes": { + "required": [ + "baseUrl" + ], + "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." + } + }, + "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" + }, + "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" + }, + "gcp": { + "type": "object", + "properties": { + "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)" + } }, - { - "type": "boolean" + "description": "Configuration for Google Cloud Platform (GCP)" + }, + "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." + }, + "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)" + }, + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + } }, - { - "type": "string" + "description": "Configuration for Azure Resource Group" + }, + "openshift": { + "required": [ + "baseUrl" + ], + "type": "object", + "properties": { + "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." + } + }, + "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" + } + }, + "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." + } + }, + "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" + }, + "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 + } }, - { - "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." - } - } - }, - "api-meshobjects-meshprojectroles-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." + "description": "Configuration for OpenShift" + }, + "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" + }, + "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'." + }, + "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", + "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" + } + ] + } + } + } + }, + "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." + } + }, + "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", + "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." + }, + "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." + } + }, + "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" + } }, - "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": "Configuration for Azure" } }, - "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." + "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." }, - "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": { + "contributingWorkspaces": { "type": "array", - "description": "List of outputs, which are set on the Building Block. Empty, just after creation.", + "description": "A list of workspace identifiers that may contribute to this meshPlatform.", + "nullable": true, "items": { "oneOf": [ { @@ -19198,138 +14307,34 @@ } ] } - }, - "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." + "description": "All fields in this section describe the meshPlatform configuration." } - } - }, - "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": { + } + }, + "meshWorkspaceUserGroupList": { + "title": "meshWorkspaceUserGroupList", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshWorkspaceUserGroups" + ], + "type": "object", + "properties": { + "meshWorkspaceUserGroups": { "type": "array", - "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", + "description": "List of meshWorkspaceUserGroups.", "items": { "oneOf": [ { @@ -19346,139 +14351,184 @@ } ] } - }, - "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." + "description": "Contains the actual content of the paged response." }, - "status": { + "page": { + "type": "object", + "description": "Information about paging." + } + } + }, + "api-meshobjects-meshprojectbindings-userbindings226655957": { + "required": [ + "apiVersion", + "kind" + ], + "type": "object", + "properties": { + "targetRef": { "required": [ - "latestReleasedVersion", - "latestVersion", - "versions" + "name", + "ownedByWorkspace" ], "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." + "name": { + "type": "string", + "description": "The identifier of the project the user should get assigned to." }, - "latestVersion": { - "type": "number", - "description": "The number of the latest version based on this Building Block Definition including a possible draft version." + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace which contains the project." } - }, - "description": "All fields in this section describe the current status of the Building Block Definition." + } + }, + "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" + }, + "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." + } + } } } }, - "meshServiceInstanceGet": { - "title": "meshServiceInstanceGet", + "meshObjectsRootV2": { + "title": "meshObjectsRootV2", + "required": [ + "_links" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "All available meshObject Links for the authenticated user." + } + } + }, + "meshProjectUserBindingV3": { + "title": "meshProjectUserBindingV3", "required": [ + "_links", "apiVersion", "kind", - "metadata", - "spec" + "metadata" ], "type": "object", "properties": { - "metadata": { + "targetRef": { "required": [ - "instanceId", - "marketplaceIdentifier", - "ownedByProject", + "displayName", + "name", "ownedByWorkspace" ], "type": "object", "properties": { - "ownedByProject": { - "type": "string", - "description": "The project that this Service Instance belongs to." - }, - "marketplaceIdentifier": { + "displayName": { "type": "string", - "description": "The identifier of the marketplace that this Service Instance belongs to." + "description": "The name of the project the user is assigned to." }, - "instanceId": { + "name": { "type": "string", - "description": "The instance id this Service Instance should use." + "description": "The identifier of the project the user is assigned to." }, "ownedByWorkspace": { "type": "string", - "description": "The workspace that this Service Instance belongs to." + "description": "The identifier of the workspace which contains the project." + } + } + }, + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The meshProjectUserBinding identifier as 'name' to uniquely identify the meshProjectUserBinding." } }, - "description": "Metadata and more fields to identify the Service Instance." + "description": "Always contains the 'name' to uniquely identify the meshProjectUserBinding." }, "apiVersion": { "type": "string", - "description": "Version of Service Instance datatype. Matches the version part provided within the `Accept` request header." + "description": "Version of meshProjectUserBinding 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 'meshBuildingBlock' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProjectUserBinding' for this endpoint." }, - "spec": { + "roleRef": { "required": [ - "creator", - "displayName", - "planId", - "serviceId" + "name" ], "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": { + "name": { "type": "string", - "description": "The id of the service for the Service Instance" + "description": "The name of the referenced role for this user." } - }, - "description": "Specifications for the Service Instance." + } } } }, - "meshPlatformV1-Post-azurerg": { - "title": "meshPlatformV1-Post-azurerg", + "meshPlatformV2-Put-gcp": { + "title": "meshPlatformV2-Put-gcp", "required": [ "_links", "apiVersion", @@ -19534,7 +14584,8 @@ "availability", "config", "displayName", - "locationRef" + "locationRef", + "quotaDefinitions" ], "type": "object", "properties": { @@ -19543,6 +14594,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 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.", @@ -19550,18 +14647,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." @@ -19582,65 +14679,784 @@ }, "availability": { "required": [ - "marketplaceStatus", + "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." }, - "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." + }, + "readme": { + "type": "string", + "description": "README about the meshPlatform in markdown format", + "nullable": true + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "kubernetes": { + "required": [ + "baseUrl" + ], + "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." + } + }, + "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 + } + } + }, + "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" + } + } + } + }, + "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)" + }, + "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 + }, + "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" + } + }, + "description": "Metering configuration for GCP (optional, but required for metering)" + } + }, + "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": "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)" + }, + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + } + }, + "description": "Azure Resource Group configuration, if applicable." }, - "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" + "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": "string", + "description": "The Access Token of the service account for replicator access." + } + }, + "description": "Client configuration for OpenShift" + } }, - { - "type": "boolean" + "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": "string", + "description": "Access token for Kubernetes API authentication" + } + }, + "description": "Kubernetes client configuration for metering access" + } }, - { - "type": "string" + "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": "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" + } }, - { - "type": "number" - } - ] - } - } - }, - "description": "Availability configuration for the meshPlatform." - }, - "config": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "kubernetes": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "replication": { + "description": "Replication configuration for AKS (optional, but required for replication)" + }, + "baseUrl": { + "type": "string", + "description": "Base URL of the AKS cluster" + }, + "metering": { "required": [ - "clientConfig", - "namespaceNamePattern" + "clientConfig" ], "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." + "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": [ @@ -19650,183 +15466,376 @@ "properties": { "accessToken": { "type": "string", - "description": "The Access Token of the service account for replicator access." + "description": "The Access Token of the service account for metering access." } }, - "description": "Client configuration for Kubernetes" + "description": "Processing configuration for metering data" } }, - "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" + "description": "Replication configuration for AKS (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.", + "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 Kubernetes" + "description": "Configuration for Azure Kubernetes Service (AKS)" }, - "gcp": { + "aws": { + "required": [ + "region" + ], "type": "object", "properties": { "replication": { "required": [ - "allowHierarchicalFolderAssignment", - "billingAccountId", - "customerId", - "domain", - "groupNamePattern", - "projectIdPattern", - "projectNamePattern", - "roleMappings", - "serviceAccountConfig", + "accessConfig", + "accountAccessRole", + "accountAliasPattern", + "accountEmailPattern", + "automationAccountRole", + "enforceAccountAlias", + "selfDowngradeAccessRole", "skipUserGroupPermissionCleanup", - "userLookupStrategy" + "waitForExternalAvm" ], "type": "object", "properties": { - "userLookupStrategy": { + "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": "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": "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." }, - "projectNamePattern": { + "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": "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": "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." }, - "projectIdPattern": { + "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": "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": "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." }, - "tenantTags": { + "awsSso": { "required": [ - "namespacePrefix", - "tagMappers" + "arn", + "awsRoleMappings", + "groupNamePattern", + "scimEndpoint", + "signInUrl", + "ssoAccessToken" ], "type": "object", "properties": { - "tagMappers": { + "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": "List of tag mappers for tenant tags", + "description": "Roles can be mapped from the meshRole to the AWS role.", "items": { "required": [ - "key", - "valuePattern" + "permissionSetArns", + "projectRoleRef" ], "type": "object", "properties": { - "valuePattern": { - "type": "string", - "description": "Value pattern for the tag mapper" + "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" }, - "key": { - "type": "string", - "description": "Key for the tag mapper" + "permissionSetArns": { + "type": "array", + "description": "Permission set ARNs for role mapping", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } } } } }, - "namespacePrefix": { + "groupNamePattern": { "type": "string", - "description": "Namespace prefix for tenant tags" + "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": "Tenant tags configuration" - }, - "domain": { + "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": "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": "Cost Explorer filter type. NONE includes all costs, EXCLUDE_TAX filters out tax charges." }, - "serviceAccountConfig": { + "processing": { "type": "object", "properties": { - "serviceAccountCredentialsConfig": { + "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": [ - "serviceAccountCredentialsB64" + "roleArn" ], "type": "object", "properties": { - "serviceAccountCredentialsB64": { + "roleArn": { "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": "ARN of the role for metering access via workload identity federation" } }, - "description": "Service account credentials configuration (alternative to serviceAccountWorkloadIdentityConfig)" + "description": "Workload identity configuration for metering (alternative to serviceUserConfig)" }, - "serviceAccountWorkloadIdentityConfig": { + "serviceUserConfig": { "required": [ - "audience", - "serviceAccountEmail" + "accessKey", + "secretKey" ], "type": "object", "properties": { - "serviceAccountEmail": { + "secretKey": { "type": "string", - "description": "The email address of the Service Account, that gets impersonated for calling Google APIs via Workload Identity Federation." + "description": "AWS secret key for metering service user" }, - "audience": { + "accessKey": { "type": "string", - "description": "The audience associated with your workload identity pool provider." + "description": "AWS access key for metering service user" } }, - "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" + "description": "Service user configuration for metering (alternative to workloadIdentityConfig)" }, - "admin": { + "organizationRootAccountExternalId": { "type": "string", - "description": "Role mapping for admin users" + "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", + "nullable": true } }, - "description": "Role mappings for GCP" + "description": "AWS access configuration for metering. Either the `serviceUserConfig` or `workloadIdentityConfig` must be provided." }, - "allowHierarchicalFolderAssignment": { + "savingsPlanFairChargeback": { "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": "Whether to enable fair chargeback for savings plans" }, - "skipUserGroupPermissionCleanup": { + "reservedInstanceFairChargeback": { "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": "Whether to enable fair chargeback for reserved instances" } }, - "description": "Replication configuration for GCP (optional, but required for replication)" + "description": "Metering configuration for AWS (optional, but required for metering)" + }, + "region": { + "type": "string", + "description": "AWS region" } }, - "description": "Configuration for Google Cloud Platform (GCP)" + "description": "AWS configuration, if applicable." }, - "azurerg": { + "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" ], @@ -19834,24 +15843,17 @@ "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", @@ -19871,32 +15873,14 @@ }, "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": "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": "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 Azure" }, "tenantTags": { "required": [ @@ -19933,823 +15917,2704 @@ }, "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." - }, - "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": "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." }, - "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)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" - } - }, - "description": "Configuration for Azure Resource Group" - }, - "openshift": { - "required": [ - "baseUrl" - ], - "type": "object", - "properties": { - "replication": { - "required": [ - "clientConfig", - "enableTemplateInstantiation", - "identityProviderName", - "projectNamePattern" - ], - "type": "object", - "properties": { - "webConsoleUrl": { + "administrativeUnitId": { "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", + "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 }, - "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": { + "azureRoleMappings": { + "type": "array", + "description": "Role mappings for Azure with project role references", + "items": { + "required": [ + "azureRole", + "projectRoleRef" + ], + "type": "object", + "properties": { + "azureRole": { "required": [ - "key", - "valuePattern" + "alias", + "id" ], "type": "object", "properties": { - "valuePattern": { + "alias": { "type": "string", - "description": "Value pattern for the tag mapper" + "description": "Alias for the Azure role" }, - "key": { + "id": { "type": "string", - "description": "Key for the tag mapper" + "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" + } + ] } }, - "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." + "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": "Tenant tags configuration" + "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." }, - "identityProviderName": { + "groupNamePattern": { "type": "string", - "description": "Identity provider name" + "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." }, - "enableTemplateInstantiation": { + "allowHierarchicalManagementGroupAssignment": { "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" - } - }, - "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." - } - }, - "description": "Client configuration for OpenShift" + "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 OpenShift (optional, but required for replication)" + "description": "Replication configuration for Azure (optional, but required for replication)" }, - "baseUrl": { + "entraTenant": { "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": "Azure Active Directory (Entra ID) tenant" }, - "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": { + "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", "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'." + "description": "Client ID of the service principal for metering" }, "credentialsAuthClientSecret": { "type": "string", - "description": "Client secret for the service principal (required if authType is CREDENTIALS)", + "description": "Client secret for credentials-based authentication", "nullable": true }, "authType": { "type": "string", - "description": "Authentication type for the service principal (CREDENTIALS or WORKLOAD_IDENTITY)" + "description": "Authentication type for the metering service principal" }, "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" + "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": "Replication configuration for AKS (optional, but required for replication)" - }, - "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.)", + "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." + } + } + }, + "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." + } + } + } + } + }, + "meshProjectGroupBindingCreateV3": { + "title": "meshProjectGroupBindingCreateV3", + "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 group should get assigned to." + }, + "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" + } + } + }, + "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 identifier of the referenced group." + } + } + }, + "roleRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the referenced role for this group." + } + } + } + } + }, + "meshTagDefinition": { + "title": "meshTagDefinition", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Must be of the form `$targetKind.$key` since tag definitions must be non-conflicting." + } + }, + "description": "Always contains the 'name' to uniquely identify the meshTagDefinition." + }, + "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." + }, + "kind": { + "type": "string", + "description": "As a common meshObject structure exists, every meshObject has a `kind`. This is always `meshTagDefinition` for this endpoint." + }, + "spec": { + "required": [ + "description", + "displayName", + "key", + "targetKind", + "valueType" + ], + "type": "object", + "properties": { + "immutable": { + "type": "boolean", + "description": "Indicates whether the tag value is not editable after initially set.", + "nullable": true + }, + "replicationKey": { + "type": "string", + "description": "The key for this tag when replicated to cloud platforms. If null, replication is disabled.", + "nullable": true + }, + "restricted": { + "type": "boolean", + "description": "Indicates whether only admins can edit this tag.", + "nullable": true + }, + "displayName": { + "type": "string", + "description": "The display name of the tag." + }, + "valueType": { + "type": "object", + "properties": { + "number": { + "type": "object", + "properties": { + "defaultValue": { + "type": "number", + "description": "The default value of the tag.", "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": "a decimal number, represented a JSON number" }, - "aws": { - "required": [ - "region" - ], + "string": { "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 - } + "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": [ + "options" + ], + "type": "object", + "properties": { + "defaultValue": { + "type": "string", + "description": "The default value of the tag.", + "nullable": true + }, + "options": { + "type": "array", + "description": "The allowed options for the tag as a string[]", + "items": { + "oneOf": [ + { + "type": "object" }, - "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", - "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" - } - ] - } - } - } - }, - "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." - } + { + "type": "boolean" }, - "description": "AWS SSO configuration" - } - }, - "description": "Replication configuration for AWS (optional, but required for replication)" + { + "type": "string" + }, + { + "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 }, - "region": { + "validationRegex": { "type": "string", - "description": "AWS region" + "description": "The regex pattern that the tag value must match.", + "nullable": true + } + }, + "description": "email address, represented as JSON string" + }, + "multiSelect": { + "required": [ + "options" + ], + "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" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } } }, - "description": "Configuration for AWS" + "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." + } + } + }, + "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." + } + } + }, + "meshLandingZonePost_azure": { + "title": "meshLandingZonePost_azure", + "type": "object" + }, + "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." + }, + "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." + } + } + }, + "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." + } + } + }, + "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\"" }, - "azure": { - "required": [ - "entraTenant" - ], - "type": "object", - "properties": { - "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." - } - }, - "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." - } + "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." + }, + "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" + ], + "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." + } + } + }, + "api-meshobjects-meshbuildingblockruns-blockRunUuid-status-source-sourceId-1686374648": { + "type": "object", + "properties": { + "steps": { + "type": "array", + "description": "Can contain updates to the steps. (Optional)", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "outputs": { + "type": "object", + "properties": { + "outputName": { + "required": [ + "isSensitive", + "type", + "value" + ], + "type": "object", + "properties": { + "isSensitive": { + "type": "object", + "description": "Flag if the variable content is sensitive and encrypted. The runner must decrypt this variable content first before it can be used. Information on how to do this will provided in the future." + }, + "type": { + "type": "object", + "description": "The type of the variable. It can be one of mesh_buildingblockrun_iotype" + }, + "value": { + "type": "object", + "description": "The name of the input variable." + } + } + } + }, + "description": "Contains any output this step has provided. (Optional)" + }, + "userMessage": { + "type": "string", + "description": "A message which is displayed to the user. It should not exceed more than 500 characters. (Optional)", + "nullable": true + }, + "systemMessage": { + "type": "string", + "description": "A message which is displayed only to the operators. It should not exceed more than 500 characters. (Optional) ", + "nullable": true + }, + "id": { + "type": "string", + "description": "The ID of the step which should get updates." + }, + "status": { + "type": "string", + "description": "The execution status of this step. Can be `PENDING`, `IN_PROGRESS`, `SUCCEEDED`, `ABORTED` or `FAILED`. (Optional)", + "nullable": true + } + } + } + }, + "status": { + "type": "string", + "description": "The execution status of the building block as whole. Can be any of `PENDING`, `IN_PROGRESS`, `SUCCEEDED`, `ABORTED` or `FAILED`. (Optional)", + "nullable": true + } + } + }, + "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." + } + } + } + } + }, + "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." + } + }, + "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." + } + } + }, + "meshPlatformListV1": { + "title": "meshPlatformListV1", + "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" + ], + "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." }, - "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 + "kind": { + "type": "string", + "description": "The kind of the referenced location, always 'meshLocation'." + } }, - "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": "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." }, - "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." + "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" }, - "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]." + { + "type": "boolean" }, - "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 + { + "type": "string" }, - "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." + { + "type": "number" } - }, - "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." + "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'." + } }, - "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": "Platform-specific configuration settings. Exactly one of its keys needs to be set." }, - "description": "Replication configuration for Azure (optional, but required for replication)" + "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" + } + ] + } + } }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" - } + "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." + } + } + }, + "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-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" }, - "description": "Configuration for Azure" - } - }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } }, - "contributingWorkspaces": { + "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." + } + } + }, + "importInJson": { + "title": "importInJson", + "type": "object" + }, + "meshLandingZonePut": { + "title": "meshLandingZonePut", + "type": "object" + }, + "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." + } + } + }, + "api-meshobjects-meshprojects-600031310": { + "required": [ + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "name", + "ownedByWorkspace" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier that should be unique within a workspace" + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the workspace that the project should belong to." + } + }, + "description": "Fixed fields that help to identify the meshProject." + }, + "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." + } + } + }, + "meshLandingZoneList": { + "title": "meshLandingZoneList", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshLandingZones" + ], + "type": "object", + "properties": { + "meshLandingZones": { + "type": "array", + "description": "List of meshLandingZones.", + "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." + } + } + }, + "meshProjectListV2": { + "title": "meshProjectListV2", + "required": [ + "_embedded", + "_links", + "page" + ], + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "Currently only contains the self link and pagination links." + }, + "_embedded": { + "required": [ + "meshProjects" + ], + "type": "object", + "properties": { + "meshProjects": { "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, + "description": "List of meshProjects.", "items": { "oneOf": [ { @@ -20768,24 +18633,255 @@ } } }, - "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." } } }, - "meshProjectRoleV1": { - "title": "meshProjectRoleV1", + "api-meshobjects-meshusers-179515684": { "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." + } + }, + "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." + }, + "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." + } + } + }, + "api-login2002944754": { + "required": [ + "client_id", + "client_secret", + "grant_type" + ], + "type": "object", + "properties": { + "grant_type": { + "type": "string", + "description": "The grant type, which must be 'client_credentials'." + }, + "client_secret": { + "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." + }, + "client_id": { + "type": "string", + "description": "The Key ID assigned to your API key upon creation. This ID is used to authenticate your application." + } + } + }, + "api-meshobjects-meshworkspacebindings-groupbindings-439969197": { + "required": [ + "apiVersion", + "kind" + ], + "type": "object", + "properties": { + "targetRef": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The identifier of the workspace the group 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 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." + } + } + } + } + }, + "meshWorkspaceUserBinding": { + "title": "meshWorkspaceUserBinding", + "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." + } + } + } + } + }, + "meshLandingZone": { + "title": "meshLandingZone", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec", + "status" + ], + "type": "object", "properties": { "metadata": { "required": [ @@ -20794,60 +18890,107 @@ ], "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." + "description": "The identifier as 'name' to uniquely identify the meshLandingZone." }, "tags": { "type": "object", - "description": "Key/Value pairs of tags set on the meshProjectRole. Keep in mind, that values are an array." + "description": "Key/Value pairs of tags set on the meshLandingZone." } }, - "description": "Always contains the 'name' to uniquely identify the meshProjectRole." + "description": "Always contains the 'name' to uniquely identify the meshLandingZone." }, "apiVersion": { "type": "string", - "description": "Version of meshProjectRole 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": "currently only provides a self link." + "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 'meshProjectRole' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshLandingZone' for this endpoint." }, "spec": { "required": [ - "name", - "rank" + "automateDeletionApproval", + "automateDeletionReplication", + "displayName", + "platformProperties", + "platformRef" ], "type": "object", "properties": { - "name": { - "type": "string", - "description": "The display name of the meshProjectRole." + "platformProperties": { + "type": "object", + "description": "Custom properties for the platform of the landing zone. The values depend on the platform type. Please refer to mesh_landing_zone_properties for more details." }, - "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." + "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": "A detailed description of the meshProjectRole and its permissions.", + "description": "The description of the meshLandingZone.", + "nullable": true + }, + "automateDeletionReplication": { + "type": "boolean", + "description": "Whether deletion replication is automated for this landing zone." + }, + "infoLink": { + "type": "string", + "description": "Optional link to additional information about the landing zone.", "nullable": true + }, + "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." } }, - "description": "All fields in this section describe the meshProjectRole." + "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." } } }, - "api-meshobjects-meshbuildingblocks-1155129151": { + "api-meshobjects-meshcommunications-1284413466": { "required": [ "apiVersion", "kind", @@ -20857,44 +19000,20 @@ "properties": { "apiVersion": { "type": "string", - "description": "Version of Building Block datatype. Matches the version part provided within the `Accept` request header." + "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 'meshBuildingBlock' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshCommunication' for this endpoint." }, "spec": { "required": [ - "buildingBlockDefinitionVersionRef", - "displayName", - "inputs", - "parentBuildingBlocks", - "targetRef" + "communicationDefinitionRef", + "targetMeshObjectRef" ], "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": { + "communicationDefinitionRef": { "required": [ "kind", "uuid" @@ -20903,85 +19022,51 @@ "properties": { "kind": { "type": "string", - "description": "This is a fixed value \"meshTenant\"" + "description": "This is a fixed value \"meshCommunicationDefinition\"" }, "uuid": { "type": "string", - "description": "The uuid of the tenant for this Building Block" + "description": "The UUID of the communication definition associated with this communication." } }, - "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." + "description": "Reference to the associated communication definition." }, - "buildingBlockDefinitionVersionRef": { + "targetMeshObjectRef": { "required": [ "kind", - "uuid" + "name" ], "type": "object", "properties": { "kind": { "type": "string", - "description": "This is a fixed value \"meshBuildingBlockDefinitionVersion\"" + "description": "The type of mesh object being targeted. Supported values are: `meshWorkspace`, `meshTenant`, and `meshBuildingBlock`." }, - "uuid": { + "name": { "type": "string", - "description": "The uuid of the meshBuildingBlockDefinitionVersion for this Building Block" + "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": "The reference to the meshBuildingBlockDefinitionVersion for this Building Block" + "description": "describes which meshObject is targeted." } }, - "description": "All fields in this section describe the Building Block." + "description": "All fields in this section describe the Communication." } } }, - "meshPlatformV2-Post-openshift": { - "title": "meshPlatformV2-Post-openshift", + "api-meshobjects-meshplatforms-1788285441": { "required": [ - "_links", "apiVersion", "kind", "metadata", - "spec", - "status" + "spec" ], "type": "object", "properties": { "metadata": { "required": [ "name", - "ownedByWorkspace", - "uuid" + "ownedByWorkspace" ], "type": "object", "properties": { @@ -20994,10 +19079,6 @@ "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." @@ -21009,10 +19090,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." @@ -21022,8 +19099,7 @@ "availability", "config", "displayName", - "locationRef", - "quotaDefinitions" + "locationRef" ], "type": "object", "properties": { @@ -21032,52 +19108,6 @@ "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.", @@ -21085,18 +19115,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." @@ -21117,19 +19147,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.", @@ -21151,325 +19181,59 @@ ] } } - }, - "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": [ - "baseUrl" - ], - "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." - } - }, - "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 - } - } - }, - "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" - } - } - } - }, - "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)" - }, - "metering": { + }, + "description": "Availability configuration for the meshPlatform." + }, + "config": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "kubernetes": { + "required": [ + "baseUrl" + ], + "type": "object", + "properties": { + "replication": { "required": [ - "bigqueryTable", - "partitionTimeColumn", - "processing", - "serviceAccountConfig" + "clientConfig", + "namespaceNamePattern" ], "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": { + "namespaceNamePattern": { "type": "string", - "description": "BigQuery table containing carbon footprint data (optional)", - "nullable": true + "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." }, - "processing": { + "clientConfig": { + "required": [ + "accessToken" + ], "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 + "accessToken": { + "type": "string", + "description": "The Access Token of the service account for replicator access." } }, - "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": "Client configuration for Kubernetes" } }, - "description": "Metering configuration for GCP (optional, but required for metering)" + "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" + }, + "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": "GCP configuration, if applicable." + "description": "Configuration for Kubernetes" }, "azurerg": { "required": [ @@ -21607,53 +19371,179 @@ "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Azure Resource Group configuration, if applicable." + "description": "Configuration for Azure Resource Group" }, - "openshift": { - "required": [ - "baseUrl" - ], + "gcp": { "type": "object", "properties": { "replication": { "required": [ - "clientConfig", - "enableTemplateInstantiation", - "identityProviderName", - "projectNamePattern" + "allowHierarchicalFolderAssignment", + "billingAccountId", + "customerId", + "domain", + "groupNamePattern", + "projectIdPattern", + "projectNamePattern", + "roleMappings", + "serviceAccountConfig", + "skipUserGroupPermissionCleanup", + "userLookupStrategy" ], "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": { + "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": [ - "name" + "key", + "valuePattern" ], "type": "object", "properties": { - "name": { + "valuePattern": { "type": "string", - "description": "identifier of the project role" + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" } - }, - "description": "Reference to a meshProject role" + } } + }, + "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": "Configuration for Google Cloud Platform (GCP)" + }, + "openshift": { + "required": [ + "baseUrl" + ], + "type": "object", + "properties": { + "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", @@ -21706,48 +19596,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": [ @@ -21757,13 +19627,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", @@ -21771,7 +19645,7 @@ "nullable": true } }, - "description": "Openshift configuration, if applicable." + "description": "Configuration for OpenShift" }, "aks": { "required": [ @@ -21875,50 +19749,17 @@ "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.)", "nullable": true } }, - "description": "Azure Kubernetes Service configuration, if applicable." + "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": [ @@ -22007,7 +19848,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", @@ -22078,7 +19919,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 } }, @@ -22087,7 +19928,6 @@ "awsSso": { "required": [ "arn", - "awsRoleMappings", "groupNamePattern", "scimEndpoint", "signInUrl", @@ -22103,64 +19943,85 @@ "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`" + "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" }, - "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" - } - ] + "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", @@ -22172,96 +20033,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" @@ -22269,10 +20040,6 @@ }, "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" @@ -22281,10 +20048,10 @@ "properties": { "replication": { "required": [ - "azureRoleMappings", "blueprintLocation", "blueprintServicePrincipal", "groupNamePattern", + "roleMappings", "servicePrincipal", "skipUserGroupPermissionCleanup", "subscriptionNamePattern", @@ -22363,6 +20130,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." @@ -22372,50 +20143,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", @@ -22577,63 +20304,9 @@ "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." @@ -22661,91 +20334,67 @@ } }, "description": "All fields in this section describe the meshPlatform configuration." - }, - "status": { - "type": "object", - "description": "Current status information of the meshPlatform." } } }, - "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." - }, + "meshWorkspacePut": { + "title": "meshWorkspacePut", + "type": "object" + }, + "meshPaymentMethodV2Put": { + "title": "meshPaymentMethodV2Put", + "type": "object" + }, + "meshPaymentMethodListV2": { + "title": "meshPaymentMethodListV2", + "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": "Currently only contains the self link and pagination links." }, - "spec": { + "_embedded": { "required": [ - "displayName", - "tags" + "meshPaymentMethods" ], "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." + "meshPaymentMethods": { + "type": "array", + "description": "List of meshPaymentMethods.", + "items": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "number" + } + ] + } } }, - "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." } } }, - "meshPlatformV2-Put-kubernetes": { - "title": "meshPlatformV2-Put-kubernetes", + "meshPlatformV1-Post-aws": { + "title": "meshPlatformV1-Post-aws", "required": [ "_links", "apiVersion", @@ -22801,8 +20450,7 @@ "availability", "config", "displayName", - "locationRef", - "quotaDefinitions" + "locationRef" ], "type": "object", "properties": { @@ -22811,52 +20459,6 @@ "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.", @@ -22864,391 +20466,125 @@ }, "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." }, "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": { - "required": [ - "baseUrl" - ], - "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." - } - }, - "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 - } - } - }, - "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." + "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." }, - "gcp": { + "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": { + "kubernetes": { + "required": [ + "baseUrl" + ], "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)" - }, - "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 - }, - "bigqueryTableForCarbonFootprint": { + "replication": { + "required": [ + "clientConfig", + "namespaceNamePattern" + ], + "type": "object", + "properties": { + "namespaceNamePattern": { "type": "string", - "description": "BigQuery table containing carbon footprint data (optional)", - "nullable": true + "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." }, - "processing": { + "clientConfig": { + "required": [ + "accessToken" + ], "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 + "accessToken": { + "type": "string", + "description": "The Access Token of the service account for replicator access." } }, - "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": "Client configuration for Kubernetes" } }, - "description": "Metering configuration for GCP (optional, but required for metering)" + "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" + }, + "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": "GCP configuration, if applicable." + "description": "Configuration for Kubernetes" }, "azurerg": { "required": [ @@ -23386,53 +20722,179 @@ "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Azure Resource Group configuration, if applicable." + "description": "Configuration for Azure Resource Group" }, - "openshift": { - "required": [ - "baseUrl" - ], + "gcp": { "type": "object", "properties": { "replication": { "required": [ - "clientConfig", - "enableTemplateInstantiation", - "identityProviderName", - "projectNamePattern" + "allowHierarchicalFolderAssignment", + "billingAccountId", + "customerId", + "domain", + "groupNamePattern", + "projectIdPattern", + "projectNamePattern", + "roleMappings", + "serviceAccountConfig", + "skipUserGroupPermissionCleanup", + "userLookupStrategy" ], "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": { + "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": [ - "name" + "key", + "valuePattern" ], "type": "object", "properties": { - "name": { + "valuePattern": { "type": "string", - "description": "identifier of the project role" + "description": "Value pattern for the tag mapper" + }, + "key": { + "type": "string", + "description": "Key for the tag mapper" } - }, - "description": "Reference to a meshProject role" + } } + }, + "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": "Configuration for Google Cloud Platform (GCP)" + }, + "openshift": { + "required": [ + "baseUrl" + ], + "type": "object", + "properties": { + "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", @@ -23485,6 +20947,29 @@ "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" + } + }, + "description": "Role mappings for OpenShift" + }, "clientConfig": { "required": [ "accessToken" @@ -23505,52 +20990,13 @@ "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": "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": "Openshift configuration, if applicable." + "description": "Configuration for OpenShift" }, "aks": { "required": [ @@ -23654,43 +21100,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.)", @@ -23699,6 +21108,10 @@ }, "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" @@ -23786,7 +21199,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", @@ -23857,7 +21270,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 } }, @@ -23866,7 +21279,6 @@ "awsSso": { "required": [ "arn", - "awsRoleMappings", "groupNamePattern", "scimEndpoint", "signInUrl", @@ -23882,175 +21294,102 @@ "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`" - } + "roleMappings": { + "type": "object", + "properties": { + "member": { + "required": [ + "awsRoleName", + "permissionSetArns" + ], + "type": "object", + "properties": { + "awsRoleName": { + "type": "string", + "description": "AWS role name for member role mapping" }, - "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" - } - ] + "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" + } + ] + } } } - } - } - }, - "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)" + "description": "Role mappings for AWS SSO" }, - "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)" + "scimEndpoint": { + "type": "string", + "description": "The SCIM endpoint you can find in your AWS IAM Identity Center Automatic provisioning config." }, - "organizationRootAccountExternalId": { + "arn": { "type": "string", - "description": "ExternalId for enhanced security when assuming the organization root account role for metering.", - "nullable": true + "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 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": "AWS SSO configuration" } }, - "description": "Metering configuration for AWS (optional, but required for metering)" + "description": "Replication configuration for AWS (optional, but required for replication)" }, "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'." + "description": "Configuration for AWS" }, "azure": { "required": [ @@ -24060,10 +21399,10 @@ "properties": { "replication": { "required": [ - "azureRoleMappings", "blueprintLocation", "blueprintServicePrincipal", "groupNamePattern", + "roleMappings", "servicePrincipal", "skipUserGroupPermissionCleanup", "subscriptionNamePattern", @@ -24142,6 +21481,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." @@ -24151,50 +21494,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", @@ -24356,63 +21655,9 @@ "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." @@ -24447,8 +21692,10 @@ } } }, - "api-meshobjects-meshprojects-fullProjectIdentifier-1933825965": { + "meshUserV2Put": { + "title": "meshUserV2Put", "required": [ + "_links", "apiVersion", "kind", "metadata", @@ -24458,128 +21705,68 @@ "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 username as 'name' to uniquely identify the meshUser." } }, - "description": "Fixed fields that help to identify the meshProject. The name and ownedByWorkspace must match the fullProjectIdentifier in the URL path." + "description": "Always contains the 'name' to uniquely identify the meshUser." }, "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." - } - } - }, - "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." - } - } + "description": "Version of meshUser datatype. Matches the version part provided within the `Accept` request header." }, - "apiVersion": { - "type": "string", - "description": "Version of this object" + "_links": { + "type": "object", + "description": "Available links on a meshUser." }, "kind": { "type": "string", - "description": "Type of the returned meshObject" + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshUser' for this endpoint." }, - "subject": { + "spec": { "required": [ - "name" + "email", + "firstName", + "lastName" ], "type": "object", "properties": { - "name": { + "lastName": { "type": "string", - "description": "The username of the referenced user." - } - } - }, - "roleRef": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { + "description": "The last name of the meshUser." + }, + "firstName": { "type": "string", - "description": "The name of the referenced role for this user." + "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." } } }, - "meshServiceInstancePost": { - "title": "meshServiceInstancePost", + "meshUserV2": { + "title": "meshUserV2", "required": [ + "_links", "apiVersion", "kind", "metadata", @@ -24589,83 +21776,85 @@ "properties": { "metadata": { "required": [ - "instanceId", - "marketplaceIdentifier", - "ownedByProject", - "ownedByWorkspace" + "name" ], "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": { + "name": { "type": "string", - "description": "The workspace that this Service Instance belongs to." + "description": "The username as 'name' to uniquely identify the meshUser." } }, - "description": "Metadata and more fields to identify the Service Instance." + "description": "Always contains the 'name' to uniquely identify the meshUser." }, "apiVersion": { "type": "string", - "description": "Version of Service Instance 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." + }, + "_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 '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": [ - "creator", - "displayName", - "planId", - "serviceId" + "email", + "firstName", + "lastName" ], "type": "object", "properties": { - "creator": { + "lastName": { "type": "string", - "description": "The meshUser's `username` that should be passed to the Open Service Broker via the `X-Broker-API-Originating-Identity` header." + "description": "The last name of the meshUser." }, - "displayName": { + "firstName": { "type": "string", - "description": "The display name of the Service Instance." + "description": "The first name of the meshUser." }, - "planId": { + "euid": { "type": "string", - "description": "The id of the plan for this Service Instance" + "description": "External User ID which is used to lookup the user in the cloud platforms.", + "nullable": true }, - "serviceId": { + "email": { "type": "string", - "description": "The id of the service for the Service Instance" + "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": "Specifications for the Service Instance." + "description": "All fields in this section describe the meshUser." } } }, - "api-meshobjects-meshplatforms-1075042019": { + "meshProjectRoleV1Post": { + "title": "meshProjectRoleV1Post", + "type": "object" + }, + "meshPlatformV2-Get-openshift": { + "title": "meshPlatformV2-Get-openshift", "required": [ + "_links", "apiVersion", "kind", "metadata", - "spec" + "spec", + "status" ], "type": "object", "properties": { "metadata": { "required": [ "name", - "ownedByWorkspace" + "ownedByWorkspace", + "uuid" ], "type": "object", "properties": { @@ -24678,6 +21867,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." @@ -24689,6 +21882,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." @@ -24844,213 +22041,75 @@ "kubernetes": { "required": [ "baseUrl" - ], - "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." - } - }, - "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 - } - } - }, - "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" + ], + "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." }, - "b2bUserInvitation": { + "clientConfig": { "required": [ - "redirectUrl", - "sendAzureInvitationMail" + "accessToken" ], "type": "object", "properties": { - "redirectUrl": { + "accessToken": { "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": "The Access Token of the service account for replicator access." } }, - "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" - ], + "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": { - "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" - } - } - } + "compactTimelinesAfterDays": { + "type": "number", + "description": "Number of days after which timeline data is compacted", + "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." + "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." - }, - "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 + "clientConfig": { + "type": "object", + "description": "Processing configuration for metering data" } }, - "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", @@ -25238,52 +22297,190 @@ "type": "string", "description": "Base64 encoded credentials.json file for metering service account" } - }, - "description": "Service account credentials configuration for metering" + }, + "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 + }, + "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" + } + }, + "description": "Metering configuration for GCP (optional, but required for metering)" + } + }, + "description": "Configuration for Google Cloud Platform (GCP)" + }, + "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." + }, + "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": "Service account configuration for metering. Either serviceAccountCredentialsConfig or serviceAccountWorkloadIdentityConfig must be provided." + "description": "Tenant tags configuration" }, - "additionalFilter": { + "userLookUpStrategy": { "type": "string", - "description": "Additional SQL filter for billing data (optional)", - "nullable": true + "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." }, - "bigqueryTableForCarbonFootprint": { + "subscription": { "type": "string", - "description": "BigQuery table containing carbon footprint data (optional)", - "nullable": true + "description": "The Subscription that will contain all the created Resource Groups. Once you set the Subscription, you must not change it." }, - "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" + "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." }, - "carbonFootprintDataCollectionStartMonth": { + "resourceGroupNamePattern": { "type": "string", - "description": "Start month for carbon footprint data collection (optional)", - "nullable": true + "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." }, - "bigqueryTable": { - "type": "string", - "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 } }, - "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": "Azure Resource Group configuration, if applicable." }, "openshift": { "required": [ @@ -25447,7 +22644,7 @@ "nullable": true } }, - "description": "Configuration for OpenShift" + "description": "Openshift configuration, if applicable." }, "aks": { "required": [ @@ -25594,7 +22791,7 @@ "nullable": true } }, - "description": "Configuration for Azure Kubernetes Service (AKS)" + "description": "Azure Kubernetes Service configuration, if applicable." }, "aws": { "required": [ @@ -25943,7 +23140,7 @@ "description": "AWS region" } }, - "description": "Configuration for AWS" + "description": "AWS configuration, if applicable." }, "type": { "type": "string", @@ -26215,133 +23412,1271 @@ "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]." + "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": "All fields in this section describe the meshPlatform configuration." + }, + "status": { + "type": "object", + "description": "Current status information of the meshPlatform." + } + } + }, + "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-meshlandingzones360157889": { + "type": "object", + "properties": { + "spec": { + "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" }, - "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 + { + "type": "string" }, - "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." + { + "type": "number" } - }, - "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": { + "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": "Configures the pattern that defines the desired name of Azure Subscriptions managed by meshStack." + "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 }, - "groupNamePattern": { + "azureFunctionUrl": { "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 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" + } + ] + } + } + } + }, + "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." + } + } + }, + "type": { + "type": "string", + "description": "The platform type, `aws` in this case." + }, + "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." + } } - }, - "description": "Replication configuration for Azure (optional, but required for replication)" - }, - "entraTenant": { - "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + } }, - "metering": { + "azureFunction": { "required": [ - "processing", - "servicePrincipal" + "azureFunctionUrl" ], "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" + "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 }, - "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" + "azureFunctionUrl": { + "type": "string", + "description": "The URL of your Azure Function. This is typically a value like `https://my-function-app.azurewebsites.net/myfunc`" } }, - "description": "Metering configuration for Azure (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." + }, + "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!" } + } + } + } + } + } + } + } + }, + "meshCommunicationDefinitionListFilteredByType": { + "title": "meshCommunicationDefinitionListFilteredByType", + "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": "List of meshCommunicationDefinitions.", + "items": { + "oneOf": [ + { + "type": "object" }, - "description": "Configuration for Azure" + { + "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." } - }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + } + } + } + } + } + }, + "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." + } + } + } + } + }, + "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." + } + } + } + } + }, + "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'." }, - "contributingWorkspaces": { + "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": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, + "description": "List of meshProjectUserBindings.", "items": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "boolean" + "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." + } + } }, - { - "type": "string" + "subject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username of the referenced user." + } + } }, - { - "type": "number" + "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." + } + } + }, + "meshEventLog": { + "title": "meshEventLog", + "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)." + }, + "uuid": { + "type": "string", + "description": "The UUID that uniquely identifies this event log." + } }, - "description": "All fields in this section describe the meshPlatform configuration." + "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." + }, + "spec": { + "required": [ + "author", + "content", + "description", + "eventType", + "title" + ], + "type": "object", + "properties": { + "author": { + "type": "string", + "description": "The username or identifier of the user 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": "All fields in this section describe the event log." } } }, - "meshPlatformV1-Put-azure": { - "title": "meshPlatformV1-Put-azure", + "meshPlatformV1-Put-azurerg": { + "title": "meshPlatformV1-Put-azurerg", "required": [ "_links", "apiVersion", @@ -26459,217 +24794,79 @@ "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": { - "kubernetes": { - "required": [ - "baseUrl" - ], - "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." - } - }, - "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" - }, - "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." + "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": { + "kubernetes": { + "required": [ + "baseUrl" + ], + "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." }, - "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" - } - } - } - }, - "namespacePrefix": { + "accessToken": { "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 replicator access." } }, - "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 configuration for Kubernetes" } }, - "description": "Replication configuration for Azure Resource Group (optional, but required for replication)" + "description": "Replication configuration for Kubernetes (optional, but required for replication)" }, - "entraTenant": { + "baseUrl": { "type": "string", - "description": "Azure Active Directory (Entra ID) tenant" + "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" + }, + "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": "Configuration for Kubernetes" }, "gcp": { "type": "object", @@ -26827,6 +25024,144 @@ }, "description": "Configuration for Google Cloud Platform (GCP)" }, + "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." + }, + "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)" + }, + "entraTenant": { + "type": "string", + "description": "Azure Active Directory (Entra ID) tenant" + } + }, + "description": "Configuration for Azure Resource Group" + }, "openshift": { "required": [ "baseUrl" @@ -27604,15 +25939,1104 @@ "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Configuration for Azure" - } - }, - "description": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + "description": "Configuration for Azure" + } + }, + "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." + } + } + }, + "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." + } + } + }, + "api-meshobjects-meshprojectroles-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" + } + ] + } }, - "contributingWorkspaces": { + "notificationSubscriberUsernames": { "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, + "description": "A list of usernames from the users that should be notified as subscribers for this Building Block Definition.", "items": { "oneOf": [ { @@ -27629,69 +27053,220 @@ } ] } + }, + "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 meshPlatform configuration." + "description": "All fields in this section describe the Building Block Definition." }, "status": { + "required": [ + "latestReleasedVersion", + "latestVersion", + "versions" + ], "type": "object", - "description": "Current status information of the meshPlatform." + "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." } } }, - "meshBuildingBlockV2": { - "title": "meshBuildingBlockV2", + "meshServiceInstanceGet": { + "title": "meshServiceInstanceGet", "required": [ - "_links", "apiVersion", "kind", "metadata", - "spec", - "status" + "spec" ], "type": "object", "properties": { "metadata": { "required": [ - "createdOn", - "ownedByWorkspace", - "uuid" + "instanceId", + "marketplaceIdentifier", + "ownedByProject", + "ownedByWorkspace" ], "type": "object", "properties": { - "markedForDeletionOn": { + "ownedByProject": { "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 + "description": "The project that this Service Instance belongs to." }, - "markedForDeletionBy": { + "marketplaceIdentifier": { "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 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 }, - "createdOn": { + "name": { "type": "string", - "description": "The Building Block has been created at this date (e.g. `2020-12-22T09:37:43Z`)." + "description": "The name to uniquely identify the meshProjectRole." }, - "uuid": { + "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 UUID to uniquely identify the Building Block." + "description": "The display name of the meshProjectRole." }, - "ownedByWorkspace": { + "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": "The identifier of the meshWorkspace the Building Blocks belongs to." + "description": "A detailed description of the meshProjectRole and its permissions.", + "nullable": true } }, - "description": "Always contains the 'uuid' to uniquely identify the Building Block. It also contains additional meta information like the Building Block creation date." - }, + "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." }, - "_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." @@ -27708,7 +27283,7 @@ "properties": { "parentBuildingBlocks": { "type": "array", - "description": "List of parent Building Blocks, which are set on the Building Block.", + "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", @@ -27795,56 +27370,11 @@ } }, "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." } } }, - "meshTenantPostV3": { - "title": "meshTenantPostV3", + "meshProjectPost": { + "title": "meshProjectPost", "required": [ "_links", "apiVersion", @@ -27856,99 +27386,71 @@ "properties": { "metadata": { "required": [ - "assignedTags", - "ownedByProject", - "ownedByWorkspace", - "platformIdentifier", - "tenantIdentifier" + "name", + "ownedByWorkspace" ], "type": "object", "properties": { - "ownedByProject": { + "name": { "type": "string", - "description": "The identifier of the meshProject the meshTenant belongs to." - }, - "assignedTags": { - "type": "object", - "description": "The tags assigned to this meshTenant originating from meshWorkspace, Payment Method and meshProject. Keep in mind, that values are an array." + "description": "The projectIdentifier as 'name'." }, - "deletedOn": { + "createdOn": { "type": "string", - "description": "If the meshTenant 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.", + "description": "The meshProject has been created at this date (e.g. `2020-12-22T09:37:43Z`).", "nullable": true }, - "platformIdentifier": { - "type": "string", - "description": "The identifier of the related platform instance" - }, - "tenantIdentifier": { - "type": "string", - "description": "The full identifier of this tenant is a unique string consisting of the workspace identifier, project identifier and platform identifier separated by '.'." - }, "ownedByWorkspace": { "type": "string", - "description": "The identifier of the meshWorkspace the meshTenant belongs to." + "description": "The workspaceIdentifier as 'ownedByWorkspace'." } }, - "description": "Always contains the 'ownedByProject', 'ownedByWorkspace' and 'platformIdentifier' to identify the meshTenant." + "description": "Always contains the 'name' and 'ownedByWorkspace' to uniquely identify the meshProject." }, "apiVersion": { "type": "string", - "description": "Version of meshTenant datatype. Matches the version provided in the `Accept` request header." + "description": "Version of meshProject 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 meshProject." }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshTenant' for this endpoint." + "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshProject' for this endpoint." }, "spec": { "required": [ - "landingZoneIdentifier", - "quotas" + "displayName", + "tags" ], "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" - } - ] - } - }, - "landingZoneIdentifier": { + "substitutePaymentMethodIdentifier": { "type": "string", - "description": "The identifier of the Landing Zone of this meshTenant. This field will be empty if the meshTenant has no Landing Zone." + "description": "The substitutePaymentMethod of the meshProject", + "nullable": true }, - "localId": { + "paymentMethodIdentifier": { "type": "string", - "description": "The localId (platform tenant id) assigned by the platform for this meshTenant. It will only be set if the tenant was either imported via meshObject API with a localId or if at least one replication run finished successfully for this tenant.", + "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 meshTenant." + "description": "All fields in this section describe the meshProject." } } }, - "meshWorkspace": { - "title": "meshWorkspace", + "api-meshobjects-meshprojects-fullProjectIdentifier-1933825965": { "required": [ - "_links", "apiVersion", "kind", "metadata", @@ -27958,81 +27460,138 @@ "properties": { "metadata": { "required": [ - "createdOn", "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": { - "deletedOn": { + "substitutePaymentMethodIdentifier": { "type": "string", - "description": "If the meshWorkspace has already been deleted, the date when deletion happened is provided via this field. e.g. `2020-12-22T09:37:43Z` (readonly)", + "description": "The substitute payment method of the project.", "nullable": true }, - "name": { + "paymentMethodIdentifier": { "type": "string", - "description": "The workspaceIdentifier as 'name' to uniquely identify the meshWorkspace. (readonly after creation)" + "description": "The payment method of the project.", + "nullable": true }, - "createdOn": { + "displayName": { "type": "string", - "description": "The meshWorkspace has been created at this date (e.g. `2020-12-22T09:37:43Z`, readonly)." + "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 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": "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 meshWorkspace. Can additionally contain meta information like the meshWorkspace creation date." + "description": "All fields in this section describe the project and can be updated." + } + } + }, + "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 meshWorkspace datatype. Matches the version part provided within the `Accept` request header." - }, - "_links": { - "type": "object", - "description": "Available links on a meshWorkspace." + "description": "Version of this object" }, "kind": { "type": "string", - "description": "As a common meshObject structure exists, every meshObject has a 'kind'. This is always 'meshWorkspace' for this endpoint." + "description": "Type of the returned meshObject" }, - "spec": { + "subject": { "required": [ - "displayName" + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The username of the referenced user." + } + } + }, + "roleRef": { + "required": [ + "name" ], "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": { + "name": { "type": "string", - "description": "The display name of the meshWorkspace as it is shown in meshPanel." + "description": "The name of the referenced role for this user." } - }, - "description": "All fields in this section describe the meshWorkspace." + } } } }, - "meshPlatformV2-Get-azurerg": { - "title": "meshPlatformV2-Get-azurerg", + "api-meshobjects-meshplatforms-1075042019": { "required": [ - "_links", "apiVersion", "kind", "metadata", - "spec", - "status" + "spec" ], "type": "object", "properties": { "metadata": { "required": [ "name", - "ownedByWorkspace", - "uuid" + "ownedByWorkspace" ], "type": "object", "properties": { @@ -28045,10 +27604,6 @@ "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." @@ -28060,10 +27615,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." @@ -28287,7 +27838,7 @@ "nullable": true } }, - "description": "Kubernetes configuration, if applicable." + "description": "Configuration for Kubernetes" }, "gcp": { "type": "object", @@ -28658,7 +28209,7 @@ "description": "Azure Active Directory (Entra ID) tenant" } }, - "description": "Azure Resource Group configuration, if applicable." + "description": "Configuration for Azure Resource Group" }, "openshift": { "required": [ @@ -28822,7 +28373,7 @@ "nullable": true } }, - "description": "Openshift configuration, if applicable." + "description": "Configuration for OpenShift" }, "aks": { "required": [ @@ -28969,7 +28520,11 @@ "nullable": true } }, - "description": "Azure Kubernetes Service configuration, if applicable." + "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": [ @@ -29318,11 +28873,7 @@ "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'." + "description": "Configuration for AWS" }, "azure": { "required": [ @@ -29684,15 +29235,388 @@ "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." + }, + "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." + } + } + }, + "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." + } + } + }, + "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": "Platform-specific configuration settings. Exactly one of its keys needs to be set." + "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." + } + } + } }, - "contributingWorkspaces": { + "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." + } + } + }, + "meshTenantPostV3": { + "title": "meshTenantPostV3", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "assignedTags", + "ownedByProject", + "ownedByWorkspace", + "platformIdentifier", + "tenantIdentifier" + ], + "type": "object", + "properties": { + "ownedByProject": { + "type": "string", + "description": "The identifier of the meshProject the meshTenant belongs to." + }, + "assignedTags": { + "type": "object", + "description": "The tags assigned to this meshTenant originating from meshWorkspace, Payment Method and meshProject. Keep in mind, that values are an array." + }, + "deletedOn": { + "type": "string", + "description": "If the meshTenant 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 + }, + "platformIdentifier": { + "type": "string", + "description": "The identifier of the related platform instance" + }, + "tenantIdentifier": { + "type": "string", + "description": "The full identifier of this tenant is a unique string consisting of the workspace identifier, project identifier and platform identifier separated by '.'." + }, + "ownedByWorkspace": { + "type": "string", + "description": "The identifier of the meshWorkspace the meshTenant belongs to." + } + }, + "description": "Always contains the 'ownedByProject', 'ownedByWorkspace' and 'platformIdentifier' to identify the meshTenant." + }, + "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", + "quotas" + ], + "type": "object", + "properties": { + "quotas": { "type": "array", - "description": "A list of workspace identifiers that may contribute to this meshPlatform.", - "nullable": true, + "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": [ { @@ -29709,13 +29633,89 @@ } ] } + }, + "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." + }, + "localId": { + "type": "string", + "description": "The localId (platform tenant id) assigned by the platform for this meshTenant. It will only be set if the tenant was either imported via meshObject API with a localId or if at least one replication run finished successfully for this tenant.", + "nullable": true } }, - "description": "All fields in this section describe the meshPlatform configuration." + "description": "All fields in this section describe the meshTenant." + } + } + }, + "meshWorkspace": { + "title": "meshWorkspace", + "required": [ + "_links", + "apiVersion", + "kind", + "metadata", + "spec" + ], + "type": "object", + "properties": { + "metadata": { + "required": [ + "createdOn", + "name", + "tags" + ], + "type": "object", + "properties": { + "deletedOn": { + "type": "string", + "description": "If the meshWorkspace has already been deleted, the date when deletion happened is provided via this field. e.g. `2020-12-22T09:37:43Z` (readonly)", + "nullable": true + }, + "name": { + "type": "string", + "description": "The workspaceIdentifier as 'name' to uniquely identify the meshWorkspace. (readonly after creation)" + }, + "createdOn": { + "type": "string", + "description": "The meshWorkspace has been created at this date (e.g. `2020-12-22T09:37:43Z`, readonly)." + }, + "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. Can additionally contain meta information like the meshWorkspace creation date." }, - "status": { + "apiVersion": { + "type": "string", + "description": "Version of meshWorkspace datatype. Matches the version part provided within the `Accept` request header." + }, + "_links": { "type": "object", - "description": "Current status information of the meshPlatform." + "description": "Available links on a meshWorkspace." + }, + "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." } } } diff --git a/static/api/meshstack-postman-collection-original.json b/static/api/meshstack-postman-collection-original.json index b39c0c608..5b533c309 100644 --- a/static/api/meshstack-postman-collection-original.json +++ b/static/api/meshstack-postman-collection-original.json @@ -73,7 +73,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "client_id=bc00f618-6cb0-4896-a289-aaf415119520&client_secret=Lx1wa4Q37ndOzJ3Kt1OF7upximrHWymD&grant_type=client_credentials", + "raw" : "client_id=53a0a9af-080f-4b84-9b2a-fe75a8e22d63&client_secret=jbgCXZi0GBFs6zIMgt2JBl1Q3MXG1eMH&grant_type=client_credentials", "urlencoded" : [ ] } }, @@ -95,7 +95,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "client_id=bc00f618-6cb0-4896-a289-aaf415119520&client_secret=Lx1wa4Q37ndOzJ3Kt1OF7upximrHWymD&grant_type=client_credentials", + "raw" : "client_id=53a0a9af-080f-4b84-9b2a-fe75a8e22d63&client_secret=jbgCXZi0GBFs6zIMgt2JBl1Q3MXG1eMH&grant_type=client_credentials", "urlencoded" : [ ] } }, @@ -119,7 +119,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"clientId\" : \"bc00f618-6cb0-4896-a289-aaf415119520\",\n \"clientSecret\" : \"Lx1wa4Q37ndOzJ3Kt1OF7upximrHWymD\"\n} ", + "raw" : "{\n \"clientId\" : \"53a0a9af-080f-4b84-9b2a-fe75a8e22d63\",\n \"clientSecret\" : \"jbgCXZi0GBFs6zIMgt2JBl1Q3MXG1eMH\"\n} ", "urlencoded" : [ ] } }, @@ -129,7 +129,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjI5NTI4NDIsImlhdCI6MTc2Mjk1MjU0MiwianRpIjoiZTk3Y2M3YTQtMmM1OS00YWI0LThmOGYtZjllYzI0NjdhNmU1IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiZDQ4MjhhZDItMGUzMy00ZDE2LWFjOTUtZTkyMjE2NzgwZjBjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYmMwMGY2MTgtNmNiMC00ODk2LWEyODktYWFmNDE1MTE5NTIwIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiY2xpZW50SG9zdCI6IjEyNy4wLjAuMSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWJjMDBmNjE4LTZjYjAtNDg5Ni1hMjg5LWFhZjQxNTExOTUyMCIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiJiYzAwZjYxOC02Y2IwLTQ4OTYtYTI4OS1hYWY0MTUxMTk1MjAifQ.EKuPxGqeE0xtCJoWFRdmSQgSbrn42yAgvuW9vVwxA6lASKc6t0JUwJY6ZPzM6ST2CHSKpw8qvp_zt4b-cZf47vRr0_E_yj7Gk7ulbnaNaEbofIgb7R6FId1cWYHZH2OkXxu1QwYXBff3dMZvHt8d0v7ndpzTAj37usM5sMo2MNfG1Qn1UNVappE2G72vhzgpcWijxfSXZC6Z3x6qjTkKoqxRzO3KmQdqZSiKRV380hKpdM4dh1QUoqJobiqcNLCaNiPK40PvKBoxLGICkNSZLdybkmoVhDHjT851wW7wet5_AyXYxfYHg5M5IKCldhjy1vSevqOL-E1QiAE8ulPTsQ\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}", + "body" : "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjI5NTMzMTcsImlhdCI6MTc2Mjk1MzAxNywianRpIjoiOWNjYzk3NjUtNjJhNC00ZDFhLWEzZjItZGNkMzFiY2IzNzYxIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYTdiZjYyM2YtNzJmMS00MDQ3LTk4MTYtYTUxZDk0ODQ1NjYzIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiNTNhMGE5YWYtMDgwZi00Yjg0LTliMmEtZmU3NWE4ZTIyZDYzIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJjbGllbnRIb3N0IjoiMTI3LjAuMC4xIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTUzYTBhOWFmLTA4MGYtNGI4NC05YjJhLWZlNzVhOGUyMmQ2MyIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiI1M2EwYTlhZi0wODBmLTRiODQtOWIyYS1mZTc1YThlMjJkNjMifQ.cKQBBPjmxN5xJr7RQuvO3v42gHGXTgS_q6FT-2edJ5d4MdosrSwTgZbdnPx6rj3Fn-7nPJ-Fbfivc0E-uK9FsLgT4w_C1H_RX7y1RxsFO5OXEDZEgsSBMd9Bq19gWp3HWW1oBUoJlthKcbVoSaWOJhURUBi9u5luiRiCzjt-ujKbe4UA3GAhR6WF1Fxqj2qO_kJzOvIpRFnjxJR-yFtxTHMd616HSNbVgVCWDi6G8PWbmI1buZ_MSI6ylnkaSrOJfdUldJ0MCk4heCFqko7j68RmdMYgiolMi-MHZ3h1IshVMRgaYal-4ENCto7JuNkpPhcAvgnjikKBz6mpe4RKzA\",\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 } ] }, { @@ -281,7 +281,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_links\" : {\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 \"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 \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", + "body" : "{\n \"_links\" : {\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\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}", "code" : 200 }, { "id" : "meshObjectsRootV2", @@ -307,7 +307,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_links\" : {\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 \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\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 \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,author,type,workspaceName}\",\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 \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\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 \"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 \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", + "body" : "{\n \"_links\" : {\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\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 \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\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 \"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 \"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 \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,author,type,workspaceName}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", "code" : 200 } ] }, { @@ -444,80 +444,6 @@ "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" : "meshBuildingBlockDefinitionListV1", - "name" : "/api/meshobjects/meshbuildingblockdefinitions", - "description" : "List all meshBuildingBlockDefinitions with optional filtering by workspace and pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblockdefinitions", - "port" : "8080", - "query" : [ { - "key" : "workspaceIdentifier", - "disabled" : false, - "description" : "Filter for Building Block Definitions that belong to the meshWorkspace with given identifier. (optional)" - }, { - "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.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." - } ] - }, - "response" : [ { - "id" : "meshBuildingBlockDefinitionListV1", - "name" : "meshBuildingBlockDefinitionListV1", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblockdefinitions", - "port" : "8080", - "query" : [ { - "key" : "workspaceIdentifier", - "disabled" : false, - "description" : "Filter for Building Block Definitions that belong to the meshWorkspace with given identifier. (optional)" - }, { - "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.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." - } ] - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", - "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-11-12T13:02:29.354557099Z\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mbbdds1\",\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\" : \"8c972db2-5610-4be8-866b-e52a3f3f9a9b\",\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", @@ -583,112 +509,82 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:02:30.191238834Z\"\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\" : \"8785c693-9607-4528-83c6-61835f5e366b\",\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/43e4dcc0-412e-4a1f-a01f-7992ded77491\"\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=43e4dcc0-412e-4a1f-a01f-7992ded77491\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:10:25.254005335Z\"\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\" : \"0679e122-1f5f-4bda-891f-b73ad126ea4b\",\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/4c371e05-18d4-47c2-9438-f71e38e7f509\"\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=4c371e05-18d4-47c2-9438-f71e38e7f509\"\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.", + "id" : "meshBuildingBlockDefinitionListV1", + "name" : "/api/meshobjects/meshbuildingblockdefinitions", + "description" : "List all meshBuildingBlockDefinitions with optional filtering by workspace and pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblocks", - "port" : "8080" + "path" : "/api/meshobjects/meshbuildingblockdefinitions", + "port" : "8080", + "query" : [ { + "key" : "workspaceIdentifier", + "disabled" : false, + "description" : "Filter for Building Block Definitions that belong to the meshWorkspace with given identifier. (optional)" + }, { + "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.meshbuildingblock.v2-preview.hal+json;charset=UTF-8", - "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", + "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.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\": \"28e4a02d-3094-40f5-8745-10220666803d\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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\": \"a65c1b1d-7c5e-406a-8e16-8a7964fb498a\"\n }]\n }\n} ", - "urlencoded" : [ ] - } + "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." + } ] }, "response" : [ { - "id" : "meshBuildingBlockPostV2", - "name" : "meshBuildingBlockPostV2", - "originalRequest" : { - "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;charset=UTF-8", - "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\": \"28e4a02d-3094-40f5-8745-10220666803d\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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\": \"a65c1b1d-7c5e-406a-8e16-8a7964fb498a\"\n }]\n }\n} ", - "urlencoded" : [ ] - } - }, - "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\" : \"555a8c9d-c780-4216-88f2-9567ff5d35bb\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:02:34.997961052Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"a65c1b1d-7c5e-406a-8e16-8a7964fb498a\",\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/555a8c9d-c780-4216-88f2-9567ff5d35bb\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/555a8c9d-c780-4216-88f2-9567ff5d35bb/purge\"\n }\n }\n}", - "code" : 201 - }, { - "id" : "meshBuildingBlockPost", - "name" : "meshBuildingBlockPost", + "id" : "meshBuildingBlockDefinitionListV1", + "name" : "meshBuildingBlockDefinitionListV1", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshbuildingblocks", - "port" : "8080" + "path" : "/api/meshobjects/meshbuildingblockdefinitions", + "port" : "8080", + "query" : [ { + "key" : "workspaceIdentifier", + "disabled" : false, + "description" : "Filter for Building Block Definitions that belong to the meshWorkspace with given identifier. (optional)" + }, { + "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.meshbuildingblock.v1.hal+json;charset=UTF-8", - "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", + "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.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\": \"8e9d9b3d-8a5c-4057-b965-da83da65b0fa\"\n }]\n }\n} ", - "urlencoded" : [ ] - } + "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." + } ] }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", + "value" : "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b\",\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-11-12T13:02:32.329511759Z\"\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\" : \"8e9d9b3d-8a5c-4057-b965-da83da65b0fa\",\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/30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b\"\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/30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b/purge\"\n }\n }\n}", - "code" : 201 + "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-11-12T13:10:24.411669789Z\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mbbdds1\",\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\" : \"b2fbf2ac-7b10-405c-b274-4ebbd6bc194d\",\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" : "meshBuildingBlockList", @@ -837,7 +733,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-11-12T13:02:31.038122489Z\"\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-11-12T13:02:31.059707907Z\"\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-11-12T13:10:26.050000466Z\"\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-11-12T13:10:26.064176135Z\"\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,109 +812,112 @@ "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-11-12T13:02:34.070695144Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"096a4b52-9c43-4cb6-a0f9-b3d10a123487\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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-11-12T13:02:34.079186673Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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-11-12T13:10:29.064439983Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b6117fe0-04a5-4713-a996-768c31b0eb3d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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-11-12T13:10:29.072602692Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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" : "meshCommunicationDefinitionListFilteredByType", - "name" : "/api/meshobjects/meshcommunicationdefinitions", - "description" : "List meshCommunicationDefinitions filtered by communication type with pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", + "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/meshcommunicationdefinitions", - "port" : "8080", - "query" : [ { - "key" : "type", - "disabled" : false, - "description" : "Filter by communication type. Example: `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/meshbuildingblocks", + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json;charset=UTF-8", + "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.meshcommunicationdefinition.v1-preview.hal+json", + "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.meshcommunicationdefinition.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.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\": \"e28c610c-6de3-4a61-a3da-376e7823e989\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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\": \"4c9e3921-df72-4aed-af63-2301a50d6fa4\"\n }]\n }\n} ", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshCommunicationDefinitionListFilteredByType", - "name" : "meshCommunicationDefinitionListFilteredByType", + "id" : "meshBuildingBlockPostV2", + "name" : "meshBuildingBlockPostV2", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshcommunicationdefinitions", - "port" : "8080", - "query" : [ { - "key" : "type", - "disabled" : false, - "description" : "Filter by communication type. Example: `NOTIFICATION`." - } ] + "path" : "/api/meshobjects/meshbuildingblocks", + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json;charset=UTF-8", + "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.meshcommunicationdefinition.v1-preview.hal+json", + "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.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", + "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\": \"e28c610c-6de3-4a61-a3da-376e7823e989\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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\": \"4c9e3921-df72-4aed-af63-2301a50d6fa4\"\n }]\n }\n} ", + "urlencoded" : [ ] + } + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"112858e7-68e1-459c-a66e-26ce378f81ba\"\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-11-14\",\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/112858e7-68e1-459c-a66e-26ce378f81ba\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"60102910-ed7c-456c-99b8-2f9a415754c6\"\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-11-15\",\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/60102910-ed7c-456c-99b8-2f9a415754c6\"\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 + "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"27849687-f087-4bd3-919c-5f21718dbafd\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:10:29.931180877Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"4c9e3921-df72-4aed-af63-2301a50d6fa4\",\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/27849687-f087-4bd3-919c-5f21718dbafd\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/27849687-f087-4bd3-919c-5f21718dbafd/purge\"\n }\n }\n}", + "code" : 201 }, { - "id" : "meshCommunicationDefinitionList", - "name" : "meshCommunicationDefinitionList", + "id" : "meshBuildingBlockPost", + "name" : "meshBuildingBlockPost", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshcommunicationdefinitions", - "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/meshbuildingblocks", + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json;charset=UTF-8", + "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.meshcommunicationdefinition.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.meshcommunicationdefinition.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\",\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\": \"cfc76581-5780-4f38-a494-269ec53b24e7\"\n }]\n }\n} ", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "value" : "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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-11-13\",\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"112858e7-68e1-459c-a66e-26ce378f81ba\"\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-11-14\",\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/112858e7-68e1-459c-a66e-26ce378f81ba\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"60102910-ed7c-456c-99b8-2f9a415754c6\"\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-11-15\",\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/60102910-ed7c-456c-99b8-2f9a415754c6\"\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 + "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"fddf6776-b817-4b9b-9139-47a13b5aa8f6\",\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-11-12T13:10:27.361938861Z\"\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\" : \"cfc76581-5780-4f38-a494-269ec53b24e7\",\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/fddf6776-b817-4b9b-9139-47a13b5aa8f6\"\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/fddf6776-b817-4b9b-9139-47a13b5aa8f6/purge\"\n }\n }\n}", + "code" : 201 } ] }, { "id" : "meshCommunicationDefinitionPost", @@ -1085,9 +984,110 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"8a1cd512-f753-4130-a65b-d4c2113848b4\"\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/8a1cd512-f753-4130-a65b-d4c2113848b4\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e1664934-f496-41a3-94fc-77943c78d44d\"\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/e1664934-f496-41a3-94fc-77943c78d44d\"\n }\n }\n}", "code" : 201 } ] + }, { + "id" : "meshCommunicationDefinitionListFilteredByType", + "name" : "/api/meshobjects/meshcommunicationdefinitions", + "description" : "List meshCommunicationDefinitions filtered by communication type with pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshcommunicationdefinitions", + "port" : "8080", + "query" : [ { + "key" : "type", + "disabled" : false, + "description" : "Filter by communication type. Example: `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.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." + } ] + }, + "response" : [ { + "id" : "meshCommunicationDefinitionListFilteredByType", + "name" : "meshCommunicationDefinitionListFilteredByType", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshcommunicationdefinitions", + "port" : "8080", + "query" : [ { + "key" : "type", + "disabled" : false, + "description" : "Filter by communication type. Example: `NOTIFICATION`." + } ] + }, + "method" : "GET", + "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." + } ] + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\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-11-14\",\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/3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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-11-15\",\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/5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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" : "meshCommunicationDefinitionList", + "name" : "meshCommunicationDefinitionList", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshcommunicationdefinitions", + "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.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." + } ] + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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-11-13\",\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\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-11-14\",\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/3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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-11-15\",\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/5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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" : "meshCommunicationList", "name" : "/api/meshobjects/meshcommunications", @@ -1175,7 +1175,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=8da49f9f-3c72-46b4-adac-92637b5e6230&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}", + "body" : "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=a6e2c891-4051-4193-9c45-ea906be4e3f5&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 } ] }, { @@ -1205,7 +1205,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\": \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\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\": \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", "urlencoded" : [ ] } }, @@ -1233,7 +1233,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\": \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\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\": \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", "urlencoded" : [ ] } }, @@ -1243,7 +1243,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n}", "code" : 201 } ] }, { @@ -1353,7 +1353,73 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4e6a2f31-0a28-424e-a0ff-f656771a9f56\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/4e6a2f31-0a28-424e-a0ff-f656771a9f56\"\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\" : \"5763d75d-5556-4986-b18e-42a3efcb62a9\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/5763d75d-5556-4986-b18e-42a3efcb62a9\"\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 + } ] + }, { + "id" : "meshLandingZoneList", + "name" : "/api/meshobjects/meshlandingzones", + "description" : "List all meshLandingZones with pagination support. Disabled meshLandingZones are included in the response.\n\n**Note**: the meshLandingZone endpoint is still experimental and in preview mode, which means it is\nsubject to change and we are planning to introduce a new version without support for backwards\ncompatibility, meaning, the preview version will disappear without prior warning! If this is not\nacceptable, please wait until the final meshLandingZone endpoints are announced in the release notes.\nFrom then on, we will provide backwards-compatible landingzone endpoints, meaning, once new versions\nare introduced, you can continue to use older versions by setting the correct `Accept` header.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshlandingzones", + "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.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." + } ] + }, + "response" : [ { + "id" : "meshLandingZoneList", + "name" : "meshLandingZoneList", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshlandingzones", + "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.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." + } ] + }, + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled" : false + } ], + "cookie" : [ ], + "body" : "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\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\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -1383,7 +1449,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\" : \"1473de8c-d850-44f4-91c4-7dfeeff29de4\",\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 }\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\" : \"66291c52-77ab-43ce-b7ae-a9e133879b95\",\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 }\n}", "urlencoded" : [ ] } }, @@ -1411,7 +1477,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\" : \"1473de8c-d850-44f4-91c4-7dfeeff29de4\",\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 }\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\" : \"66291c52-77ab-43ce-b7ae-a9e133879b95\",\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 }\n}", "urlencoded" : [ ] } }, @@ -1421,11 +1487,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\" : \"1473de8c-d850-44f4-91c4-7dfeeff29de4\",\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 },\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-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\" : \"66291c52-77ab-43ce-b7ae-a9e133879b95\",\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 },\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" : "meshLandingZonePost_kubernetes", - "name" : "meshLandingZonePost_kubernetes", + "id" : "meshLandingZonePost_openshift", + "name" : "meshLandingZonePost_openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -1447,7 +1513,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\" : \"7f44a554-5e33-42e6-8417-23864ff25917\",\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 }\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\" : \"a4db927e-bbb1-4544-a766-f5624243fb16\",\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 }\n}", "urlencoded" : [ ] } }, @@ -1457,11 +1523,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\" : \"7f44a554-5e33-42e6-8417-23864ff25917\",\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 },\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\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"a4db927e-bbb1-4544-a766-f5624243fb16\",\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 },\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" : "meshLandingZonePost_aws", - "name" : "meshLandingZonePost_aws", + "id" : "meshLandingZonePost_gcp", + "name" : "meshLandingZonePost_gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -1483,7 +1549,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\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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 }\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\" : \"922448ae-db49-4a23-b505-fd53e4896b93\",\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 }\n}", "urlencoded" : [ ] } }, @@ -1493,11 +1559,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\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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 },\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\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"922448ae-db49-4a23-b505-fd53e4896b93\",\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 },\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 }, { - "id" : "meshLandingZonePost_aks", - "name" : "meshLandingZonePost_aks", + "id" : "meshLandingZonePost_kubernetes", + "name" : "meshLandingZonePost_kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -1519,7 +1585,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\" : \"694cca0d-e378-4368-9e82-b863d1e33256\",\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 }\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\" : \"0904061e-3de8-4756-ace0-28ba53223664\",\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 }\n}", "urlencoded" : [ ] } }, @@ -1529,11 +1595,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\" : \"694cca0d-e378-4368-9e82-b863d1e33256\",\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 },\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\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"0904061e-3de8-4756-ace0-28ba53223664\",\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 },\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" : "meshLandingZonePost_gcp", - "name" : "meshLandingZonePost_gcp", + "id" : "meshLandingZonePost_azurerg", + "name" : "meshLandingZonePost_azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -1555,7 +1621,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\" : \"33b130b4-a450-4310-bd80-f9a448ee932e\",\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 }\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\" : \"941e0fa6-b112-4ba1-8d38-a63957364d8f\",\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 }\n}", "urlencoded" : [ ] } }, @@ -1565,11 +1631,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\" : \"33b130b4-a450-4310-bd80-f9a448ee932e\",\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 },\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-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\" : \"941e0fa6-b112-4ba1-8d38-a63957364d8f\",\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 },\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" : "meshLandingZonePost_openshift", - "name" : "meshLandingZonePost_openshift", + "id" : "meshLandingZonePost_aks", + "name" : "meshLandingZonePost_aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -1591,7 +1657,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\" : \"c4d0e00d-d4ba-4314-9a8d-82e297b5f5bc\",\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 }\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\" : \"bce30989-5ecc-411e-bdfb-669062cc66b6\",\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 }\n}", "urlencoded" : [ ] } }, @@ -1601,11 +1667,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\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"c4d0e00d-d4ba-4314-9a8d-82e297b5f5bc\",\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 },\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-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\" : \"bce30989-5ecc-411e-bdfb-669062cc66b6\",\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 },\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" : "meshLandingZonePost_azurerg", - "name" : "meshLandingZonePost_azurerg", + "id" : "meshLandingZonePost_aws", + "name" : "meshLandingZonePost_aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -1627,7 +1693,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\" : \"fa021c63-e28a-4db6-b283-0011a066f27a\",\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 }\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\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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 }\n}", "urlencoded" : [ ] } }, @@ -1637,22 +1703,26 @@ "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\" : \"fa021c63-e28a-4db6-b283-0011a066f27a\",\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 },\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-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\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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 },\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" : "meshLandingZoneList", - "name" : "/api/meshobjects/meshlandingzones", - "description" : "List all meshLandingZones with pagination support. Disabled meshLandingZones are included in the response.\n\n**Note**: the meshLandingZone endpoint is still experimental and in preview mode, which means it is\nsubject to change and we are planning to introduce a new version without support for backwards\ncompatibility, meaning, the preview version will disappear without prior warning! If this is not\nacceptable, please wait until the final meshLandingZone endpoints are announced in the release notes.\nFrom then on, we will provide backwards-compatible landingzone endpoints, meaning, once new versions\nare introduced, you can continue to use older versions by setting the correct `Accept` header.\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" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshlandingzones", + "path" : "/api/meshobjects/meshpaymentmethods", "port" : "8080", "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)" @@ -1665,79 +1735,9 @@ "method" : "GET", "header" : [ { "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshlandingzone.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.meshlandingzone.v1-preview.hal+json` for this version of the endpoint." - } ] - }, - "response" : [ { - "id" : "meshLandingZoneList", - "name" : "meshLandingZoneList", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshlandingzones", - "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.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." - } ] - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\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\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", - "code" : 200 - } ] - }, { - "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" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshpaymentmethods", - "port" : "8080", - "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)" - } ] - }, - "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." + "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" : [ { @@ -1849,9 +1849,9 @@ "code" : 201 } ] }, { - "id" : "meshPlatformV2-Post-openshift", + "id" : "meshPlatformListV1", "name" : "/api/meshobjects/meshplatforms", - "description" : "Create a new platform with openshift configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "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" : [ ], "event" : [ ], "request" : { @@ -1859,89 +1859,98 @@ "protocol" : "http", "host" : "localhost", "path" : "/api/meshobjects/meshplatforms", - "port" : "8080" + "port" : "8080", + "query" : [ { + "key" : "searchTerm", + "disabled" : false, + "description" : "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." + }, { + "key" : "page", + "disabled" : false, + "description" : "Page number for pagination (0-indexed)." + }, { + "key" : "size", + "disabled" : false, + "description" : "Number of items per page." + } ] }, - "method" : "POST", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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 \"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 }", - "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." + } ] }, "response" : [ { - "id" : "meshPlatformV2-Post-openshift", - "name" : "meshPlatformV2-Post-openshift", + "id" : "meshPlatformListV1", + "name" : "meshPlatformListV1", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", "path" : "/api/meshobjects/meshplatforms", - "port" : "8080" + "port" : "8080", + "query" : [ { + "key" : "searchTerm", + "disabled" : false, + "description" : "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." + }, { + "key" : "page", + "disabled" : false, + "description" : "Page number for pagination (0-indexed)." + }, { + "key" : "size", + "disabled" : false, + "description" : "Number of items per page." + } ] }, - "method" : "POST", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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 \"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 }", - "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\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", - "code" : 201 + "body" : "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\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\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\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" : "meshPlatformV2-Post-gcp", - "name" : "meshPlatformV2-Post-gcp", + "id" : "meshPlatformListV2", + "name" : "meshPlatformListV2", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", "path" : "/api/meshobjects/meshplatforms", - "port" : "8080" + "port" : "8080", + "query" : [ { + "key" : "searchTerm", + "disabled" : false, + "description" : "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." + }, { + "key" : "page", + "disabled" : false, + "description" : "Page number for pagination (0-indexed)." + }, { + "key" : "size", + "disabled" : false, + "description" : "Number of items per page." + } ] }, - "method" : "POST", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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 \"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}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -1949,11 +1958,43 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", - "code" : 201 - }, { - "id" : "meshPlatformV2-Post-kubernetes", - "name" : "meshPlatformV2-Post-kubernetes", + "body" : "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\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\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\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" : "meshPlatformV2-Post-azurerg", + "name" : "/api/meshobjects/meshplatforms", + "description" : "Create a new platform with azurerg configuration. This example shows all available configuration options for this 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.v2-preview.hal+json;charset=UTF-8", + "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 \"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}", + "urlencoded" : [ ] + } + }, + "response" : [ { + "id" : "meshPlatformV2-Post-azurerg", + "name" : "meshPlatformV2-Post-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -1975,7 +2016,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\": \"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}", "urlencoded" : [ ] } }, @@ -1985,11 +2026,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV1-Post-azurerg", - "name" : "meshPlatformV1-Post-azurerg", + "id" : "meshPlatformV1-Post-aws", + "name" : "meshPlatformV1-Post-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -2011,7 +2052,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\": \"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}", "urlencoded" : [ ] } }, @@ -2021,11 +2062,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV1-Post-aks", - "name" : "meshPlatformV1-Post-aks", + "id" : "meshPlatformV1-Post-azure", + "name" : "meshPlatformV1-Post-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -2047,7 +2088,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\": \"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}", "urlencoded" : [ ] } }, @@ -2057,7 +2098,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { "id" : "meshPlatformV1-Post-gcp", @@ -2093,11 +2134,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV2-Post-azure", - "name" : "meshPlatformV2-Post-azure", + "id" : "meshPlatformV1-Post-kubernetes", + "name" : "meshPlatformV1-Post-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -2108,32 +2149,32 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", "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\": \"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}", "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\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV2-Post-aks", - "name" : "meshPlatformV2-Post-aks", + "id" : "meshPlatformV2-Post-kubernetes", + "name" : "meshPlatformV2-Post-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -2155,7 +2196,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\": \"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 }", "urlencoded" : [ ] } }, @@ -2165,11 +2206,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV2-Post-azurerg", - "name" : "meshPlatformV2-Post-azurerg", + "id" : "meshPlatformV1-Post-aks", + "name" : "meshPlatformV1-Post-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -2180,32 +2221,32 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", "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\": \"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}", "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\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV1-Post-aws", - "name" : "meshPlatformV1-Post-aws", + "id" : "meshPlatformV2-Post-aws", + "name" : "meshPlatformV2-Post-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -2216,32 +2257,32 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", "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\": \"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}", "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\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV2-Post-aws", - "name" : "meshPlatformV2-Post-aws", + "id" : "meshPlatformV2-Post-openshift", + "name" : "meshPlatformV2-Post-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -2263,7 +2304,7 @@ } ], "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\": \"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 }", "urlencoded" : [ ] } }, @@ -2273,11 +2314,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV1-Post-azure", - "name" : "meshPlatformV1-Post-azure", + "id" : "meshPlatformV2-Post-aks", + "name" : "meshPlatformV2-Post-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -2288,32 +2329,32 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", "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\": \"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 }", "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\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV1-Post-kubernetes", - "name" : "meshPlatformV1-Post-kubernetes", + "id" : "meshPlatformV1-Post-openshift", + "name" : "meshPlatformV1-Post-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -2335,7 +2376,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\": \"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}", "urlencoded" : [ ] } }, @@ -2345,11 +2386,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 }, { - "id" : "meshPlatformV1-Post-openshift", - "name" : "meshPlatformV1-Post-openshift", + "id" : "meshPlatformV2-Post-gcp", + "name" : "meshPlatformV2-Post-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -2360,94 +2401,56 @@ "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", "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\": \"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\": \"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}", "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\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 201 - } ] - }, { - "id" : "meshPlatformListV2", - "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" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshplatforms", - "port" : "8080", - "query" : [ { - "key" : "searchTerm", - "disabled" : false, - "description" : "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." - }, { - "key" : "page", - "disabled" : false, - "description" : "Page number for pagination (0-indexed)." - }, { - "key" : "size", - "disabled" : false, - "description" : "Number of items per page." - } ] - }, - "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" : "meshPlatformListV2", - "name" : "meshPlatformListV2", + }, { + "id" : "meshPlatformV2-Post-azure", + "name" : "meshPlatformV2-Post-azure", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", "path" : "/api/meshobjects/meshplatforms", - "port" : "8080", - "query" : [ { - "key" : "searchTerm", - "disabled" : false, - "description" : "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." - }, { - "key" : "page", - "disabled" : false, - "description" : "Page number for pagination (0-indexed)." - }, { - "key" : "size", - "disabled" : false, - "description" : "Number of items per page." - } ] + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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 \"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}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -2455,38 +2458,35 @@ "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\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\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 + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code" : 201 }, { - "id" : "meshPlatformListV1", - "name" : "meshPlatformListV1", + "id" : "meshPlatformV1-Post-azurerg", + "name" : "meshPlatformV1-Post-azurerg", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", "path" : "/api/meshobjects/meshplatforms", - "port" : "8080", - "query" : [ { - "key" : "searchTerm", - "disabled" : false, - "description" : "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." - }, { - "key" : "page", - "disabled" : false, - "description" : "Page number for pagination (0-indexed)." - }, { - "key" : "size", - "disabled" : false, - "description" : "Number of items per page." - } ] + "port" : "8080" }, - "method" : "GET", + "method" : "POST", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"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}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -2494,8 +2494,8 @@ "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\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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 + "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code" : 201 } ] }, { "id" : "meshProjectRoleV1Post", @@ -2658,7 +2658,7 @@ } ], "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\" : \"vfaf6mpdsv1\"\n }\n}", + "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\" : \"gd4r3mpdsv1\"\n }\n}", "urlencoded" : [ ] } }, @@ -2686,7 +2686,7 @@ } ], "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\" : \"vfaf6mpdsv1\"\n }\n}", + "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\" : \"gd4r3mpdsv1\"\n }\n}", "urlencoded" : [ ] } }, @@ -2696,7 +2696,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\n \"createdOn\" : \"2025-11-12T13:02:56.045823712Z\"\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/vfaf6mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\n \"createdOn\" : \"2025-11-12T13:10:50.638289609Z\"\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/gd4r3mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}", "code" : 201 } ] }, { @@ -2786,75 +2786,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&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" : "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/meshserviceinstances", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", - "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\",\n \"serviceId\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded" : [ ] - } - }, - "response" : [ { - "id" : "meshServiceInstancePost", - "name" : "meshServiceInstancePost", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshserviceinstances", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", - "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\",\n \"serviceId\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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\",\n \"serviceId\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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 \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -2960,33 +2892,101 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"vfaf6mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"vfaf6mtdg1\",\n \"instanceId\" : \"vfaf6mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mtdg12\",\n \"serviceId\" : \"vfaf6mtdg5\",\n \"planId\" : \"vfaf6mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/vfaf6mtdg9\"\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\" : \"gd4r3mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"gd4r3mtdg1\",\n \"instanceId\" : \"gd4r3mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mtdg12\",\n \"serviceId\" : \"gd4r3mtdg5\",\n \"planId\" : \"gd4r3mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/gd4r3mtdg9\"\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" : "meshTagDefinitionPost", - "name" : "/api/meshobjects/meshtagdefinitions", - "description" : "Create a new meshTagDefinition\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/meshtagdefinitions", + "path" : "/api/meshobjects/meshserviceinstances", "port" : "8080" }, "method" : "POST", "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", "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" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." }, { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json;charset=UTF-8", - "disabled" : false - } ], + "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\",\n \"serviceId\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", + "urlencoded" : [ ] + } + }, + "response" : [ { + "id" : "meshServiceInstancePost", + "name" : "meshServiceInstancePost", + "originalRequest" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshserviceinstances", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", + "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\",\n \"serviceId\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\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\",\n \"serviceId\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "code" : 200 + } ] + }, { + "id" : "meshTagDefinitionPost", + "name" : "/api/meshobjects/meshtagdefinitions", + "description" : "Create a new meshTagDefinition\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable" : [ ], + "event" : [ ], + "request" : { + "url" : { + "protocol" : "http", + "host" : "localhost", + "path" : "/api/meshobjects/meshtagdefinitions", + "port" : "8080" + }, + "method" : "POST", + "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;charset=UTF-8", + "disabled" : false + } ], "body" : { "mode" : "raw", "raw" : "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshTagDefinition\",\n \"metadata\": {\n \"name\": \"meshProject.environment\"\n },\n \"spec\": {\n \"targetKind\": \"meshProject\",\n \"key\": \"environment\",\n \"valueType\": {\n \"singleSelect\": {\n \"options\": [ \"dev\", \"test\", \"qa\", \"production\" ],\n \"defaultValue\": \"dev\"\n }\n },\n \"description\": \"The environment the project runs in.\",\n \"displayName\": \"Environment\",\n \"sortOrder\": 9999,\n \"mandatory\": true,\n \"immutable\": false,\n \"restricted\": false\n }\n}", @@ -3095,6 +3095,110 @@ "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 } ] + }, { + "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/meshtenants", + "port" : "8080" + }, + "method" : "POST", + "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json;charset=UTF-8", + "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" : [ ] + } + }, + "response" : [ { + "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;charset=UTF-8", + "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\" : \"177883e6-7665-4b40-8a5e-2194adcbf1bd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:56.057514896Z\"\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/177883e6-7665-4b40-8a5e-2194adcbf1bd\"\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;charset=UTF-8", + "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" : "meshTenantListV3", "name" : "/api/meshobjects/meshtenants", @@ -3206,7 +3310,7 @@ "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-11-13T13:03:00.403298724Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"ae2aff8b-35df-4eea-a2dd-31f50ad5809a\",\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\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-11-13T13:10:54.471986094Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"bad4394e-82e7-4436-a922-054bae1870cb\",\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" : "meshTenantListV4", @@ -3269,111 +3373,63 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"c2aad318-5e12-4549-8d46-8c02c573d411\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.412110616Z\"\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/c2aad318-5e12-4549-8d46-8c02c573d411\"\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\" : \"9171b172-2310-409b-a273-885854863e18\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.406156546Z\"\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/9171b172-2310-409b-a273-885854863e18\"\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\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"f1eac5d5-6de4-46d4-815e-fbd5519d5e21\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.413523462Z\"\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/f1eac5d5-6de4-46d4-815e-fbd5519d5e21\"\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\" : \"5277909b-aa81-4464-b403-4a02903ed180\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.408177053Z\"\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/5277909b-aa81-4464-b403-4a02903ed180\"\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" : "meshTenantPostV4", - "name" : "/api/meshobjects/meshtenants", - "description" : "Create a new meshTenant.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshUserV2Post", + "name" : "/api/meshobjects/meshusers", + "description" : "Create a new meshUser.\n\nThis endpoint is only available when SCIM provisioning is disabled for this meshStack and will\notherwise reject all requests. We recommend creating meshUsers using SCIM provisioning from an\nauthoritative IAM system like Entra Id. As an alternative you can provision users via\nmeshObject API using this endpoint.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshtenants", + "path" : "/api/meshobjects/meshusers", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json;charset=UTF-8", - "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." + "value" : "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8", + "disabled" : false } ], "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}", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"new\"\n },\n \"spec\": {\n \"email\": \"new@example.com\",\n \"euid\": \"new123\",\n \"firstName\": \"New\",\n \"lastName\": \"User\",\n \"tags\": {}\n }\n}", "urlencoded" : [ ] } }, "response" : [ { - "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;charset=UTF-8", - "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\" : \"d89142f5-6ee5-434c-9b85-d21365192b38\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:02.088362573Z\"\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/d89142f5-6ee5-434c-9b85-d21365192b38\"\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", + "id" : "meshUserV2Post", + "name" : "meshUserV2Post", "originalRequest" : { "url" : { "protocol" : "http", "host" : "localhost", - "path" : "/api/meshobjects/meshtenants", + "path" : "/api/meshobjects/meshusers", "port" : "8080" }, "method" : "POST", "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json;charset=UTF-8", - "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." + "value" : "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8", + "disabled" : false } ], "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} ", + "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"new\"\n },\n \"spec\": {\n \"email\": \"new@example.com\",\n \"euid\": \"new123\",\n \"firstName\": \"New\",\n \"lastName\": \"User\",\n \"tags\": {}\n }\n}", "urlencoded" : [ ] } }, "header" : [ { "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "value" : "application/vnd.meshcloud.api.meshuser.v2.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}", + "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\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 } ] }, { @@ -3507,69 +3563,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"b54e6540-5a3b-4023-90ed-16af4beb7f07\",\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 \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"95269413-3e80-46f3-9d9c-277c3b84c55c\",\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 } ] }, { - "id" : "meshUserV2Post", - "name" : "/api/meshobjects/meshusers", - "description" : "Create a new meshUser.\n\nThis endpoint is only available when SCIM provisioning is disabled for this meshStack and will\notherwise reject all requests. We recommend creating meshUsers using SCIM provisioning from an\nauthoritative IAM system like Entra Id. As an alternative you can provision users via\nmeshObject API using this endpoint.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshusers", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8", - "disabled" : false - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"new\"\n },\n \"spec\": {\n \"email\": \"new@example.com\",\n \"euid\": \"new123\",\n \"firstName\": \"New\",\n \"lastName\": \"User\",\n \"tags\": {}\n }\n}", - "urlencoded" : [ ] - } - }, - "response" : [ { - "id" : "meshUserV2Post", - "name" : "meshUserV2Post", - "originalRequest" : { - "url" : { - "protocol" : "http", - "host" : "localhost", - "path" : "/api/meshobjects/meshusers", - "port" : "8080" - }, - "method" : "POST", - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8", - "disabled" : false - } ], - "body" : { - "mode" : "raw", - "raw" : "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"new\"\n },\n \"spec\": {\n \"email\": \"new@example.com\",\n \"euid\": \"new123\",\n \"firstName\": \"New\",\n \"lastName\": \"User\",\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 \"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 - } ] - }, { - "id" : "meshWorkspacePost", - "name" : "/api/meshobjects/meshworkspaces", - "description" : "Create a new meshWorkspace\n\n**Authentication:** This endpoint supports API Key authentication.", + "id" : "meshWorkspacePost", + "name" : "/api/meshobjects/meshworkspaces", + "description" : "Create a new meshWorkspace\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -3631,7 +3631,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-11-12T13:03:06.045167397Z\"\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-11-12T13:10:59.778096093Z\"\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 } ] }, { @@ -3697,7 +3697,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-11-12T13:01:43Z\"\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-11-12T13:01:43Z\"\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-11-12T13:01:43Z\"\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-11-12T13:09: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-11-12T13:09: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-11-12T13:09: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}", "code" : 200 } ] }, { @@ -3865,7 +3865,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\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\": \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\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" : [ ] } }, @@ -3893,7 +3893,7 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\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\": \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\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" : [ ] } }, @@ -3903,7 +3903,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:02:30.191238834Z\"\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\" : \"8785c693-9607-4528-83c6-61835f5e366b\",\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/43e4dcc0-412e-4a1f-a01f-7992ded77491\"\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=43e4dcc0-412e-4a1f-a01f-7992ded77491\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:10:25.254005335Z\"\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\" : \"0679e122-1f5f-4bda-891f-b73ad126ea4b\",\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/4c371e05-18d4-47c2-9438-f71e38e7f509\"\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=4c371e05-18d4-47c2-9438-f71e38e7f509\"\n }\n }\n}", "code" : 200 } ] }, { @@ -4005,7 +4005,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-11-12T13:02:29.354557099Z\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mbbdds1\",\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\" : \"8c972db2-5610-4be8-866b-e52a3f3f9a9b\",\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-11-12T13:10:24.411669789Z\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mbbdds1\",\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\" : \"b2fbf2ac-7b10-405c-b274-4ebbd6bc194d\",\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 } ] }, { @@ -4123,7 +4123,7 @@ "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-11-12T13:02:34.079186673Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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}", + "body" : "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:10:29.072602692Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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" : "meshBuildingBlock", @@ -4155,7 +4155,7 @@ "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-11-12T13:02:31.059707907Z\"\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-11-12T13:10:26.064176135Z\"\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 } ] }, { @@ -4201,9 +4201,9 @@ "code" : 202 } ] }, { - "id" : "meshCommunicationDefinitionPut", + "id" : "meshCommunicationDefinitionDelete", "name" : "/api/meshobjects/meshcommunicationdefinitions/{uuid}", - "description" : "Update an existing meshCommunicationDefinition with new communication details\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" : { @@ -4219,27 +4219,17 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "DELETE", "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;charset=UTF-8", - "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\": \"my-new-title\",\n \"message\": \"my-new-message\",\n \"dueDate\": \"2099-05-31\",\n \"type\": \"ACTION_REQUIRED\"\n }\n }\n}", - "urlencoded" : [ ] - } + } ] }, "response" : [ { - "id" : "meshCommunicationDefinitionPut", - "name" : "meshCommunicationDefinitionPut", + "id" : "meshCommunicationDefinitionDelete", + "name" : "meshCommunicationDefinitionDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -4253,32 +4243,16 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "DELETE", "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;charset=UTF-8", - "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\": \"my-new-title\",\n \"message\": \"my-new-message\",\n \"dueDate\": \"2099-05-31\",\n \"type\": \"ACTION_REQUIRED\"\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\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n}", - "code" : 200 + "code" : 204 } ] }, { "id" : "meshCommunicationDefinition", @@ -4337,13 +4311,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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-11-13\",\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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-11-13\",\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshCommunicationDefinitionDelete", + "id" : "meshCommunicationDefinitionPut", "name" : "/api/meshobjects/meshcommunicationdefinitions/{uuid}", - "description" : "Delete a specific meshCommunicationDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Update an existing meshCommunicationDefinition with new communication details\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -4359,17 +4333,27 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "PUT", "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;charset=UTF-8", + "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\": \"my-new-title\",\n \"message\": \"my-new-message\",\n \"dueDate\": \"2099-05-31\",\n \"type\": \"ACTION_REQUIRED\"\n }\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshCommunicationDefinitionDelete", - "name" : "meshCommunicationDefinitionDelete", + "id" : "meshCommunicationDefinitionPut", + "name" : "meshCommunicationDefinitionPut", "originalRequest" : { "url" : { "protocol" : "http", @@ -4383,21 +4367,37 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "PUT", "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;charset=UTF-8", + "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\": \"my-new-title\",\n \"message\": \"my-new-message\",\n \"dueDate\": \"2099-05-31\",\n \"type\": \"ACTION_REQUIRED\"\n }\n }\n}", + "urlencoded" : [ ] + } }, + "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\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n}", + "code" : 200 } ] }, { - "id" : "meshCommunicationDelete", + "id" : "meshCommunication", "name" : "/api/meshobjects/meshcommunications/{uuid}", - "description" : "Delete a meshCommunication to remove it from the system\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Retrieve detailed information about a specific meshCommunication\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -4408,16 +4408,22 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The unique UUID of the meshCommunication.", + "description" : "The UUID that uniquely identifies the meshCommunication.", "system" : false, "disabled" : false } ] }, - "method" : "DELETE" + "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" : "meshCommunicationDelete", - "name" : "meshCommunicationDelete", + "id" : "meshCommunication", + "name" : "meshCommunication", "originalRequest" : { "url" : { "protocol" : "http", @@ -4426,20 +4432,32 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The unique UUID of the meshCommunication.", + "description" : "The UUID that uniquely identifies the meshCommunication.", "system" : false, "disabled" : false } ] }, - "method" : "DELETE" + "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" : [ ], - "code" : 204 + "body" : "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n}", + "code" : 200 } ] }, { - "id" : "meshCommunication", + "id" : "meshCommunicationDelete", "name" : "/api/meshobjects/meshcommunications/{uuid}", - "description" : "Retrieve detailed information about a specific meshCommunication\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Delete a meshCommunication to remove it from the system\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -4450,22 +4468,16 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the meshCommunication.", + "description" : "The unique UUID of the meshCommunication.", "system" : false, "disabled" : false } ] }, - "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." - } ] + "method" : "DELETE" }, "response" : [ { - "id" : "meshCommunication", - "name" : "meshCommunication", + "id" : "meshCommunicationDelete", + "name" : "meshCommunicationDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -4474,27 +4486,15 @@ "port" : "8080", "variable" : [ { "key" : "uuid", - "description" : "The UUID that uniquely identifies the meshCommunication.", + "description" : "The unique UUID of the meshCommunication.", "system" : false, "disabled" : false } ] }, - "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." - } ] + "method" : "DELETE" }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", - "disabled" : false - } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n}", - "code" : 200 + "code" : 204 } ] }, { "id" : "meshEventLog", @@ -4541,13 +4541,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4e6a2f31-0a28-424e-a0ff-f656771a9f56\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/4e6a2f31-0a28-424e-a0ff-f656771a9f56\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5763d75d-5556-4986-b18e-42a3efcb62a9\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/5763d75d-5556-4986-b18e-42a3efcb62a9\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshLandingZonePut", + "id" : "meshLandingZone", "name" : "/api/meshobjects/meshlandingzones/{identifier}", - "description" : "Update an existing meshLandingZone by identifier. 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" : { @@ -4558,32 +4558,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;charset=UTF-8", - "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\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}", - "urlencoded" : [ ] - } + } ] }, "response" : [ { - "id" : "meshLandingZonePut", - "name" : "meshLandingZonePut", + "id" : "meshLandingZone", + "name" : "meshLandingZone", "originalRequest" : { "url" : { "protocol" : "http", @@ -4592,28 +4582,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;charset=UTF-8", - "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\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}", - "urlencoded" : [ ] - } + } ] }, "header" : [ { "key" : "Content-Type", @@ -4621,13 +4601,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated landing zone description\",\n \"displayName\" : \"Updated Landing Zone\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123123123\",\n \"awsEnrollAccount\" : false,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsRoleMappings\" : [ ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-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\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshLandingZone", + "id" : "meshLandingZonePut", "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 by identifier. 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" : { @@ -4638,22 +4618,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;charset=UTF-8", + "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\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshLandingZone", - "name" : "meshLandingZone", + "id" : "meshLandingZonePut", + "name" : "meshLandingZonePut", "originalRequest" : { "url" : { "protocol" : "http", @@ -4662,18 +4652,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;charset=UTF-8", + "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\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}", + "urlencoded" : [ ] + } }, "header" : [ { "key" : "Content-Type", @@ -4681,7 +4681,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-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\" : \"test-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated landing zone description\",\n \"displayName\" : \"Updated Landing Zone\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123123123\",\n \"awsEnrollAccount\" : false,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsRoleMappings\" : [ ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code" : 200 } ] }, { @@ -4739,9 +4739,9 @@ "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" : [ ], "event" : [ ], "request" : { @@ -4757,17 +4757,27 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json;charset=UTF-8", + "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" : { "protocol" : "http", @@ -4781,21 +4791,37 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json;charset=UTF-8", + "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 } ] }, { - "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" : [ ], "event" : [ ], "request" : { @@ -4811,27 +4837,17 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "DELETE", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json;charset=UTF-8", - "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" : { "protocol" : "http", @@ -4845,32 +4861,16 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "DELETE", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json;charset=UTF-8", - "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" : "meshPaymentMethodV2", @@ -4921,9 +4921,9 @@ "code" : 200 } ] }, { - "id" : "meshPlatformV2-Put-kubernetes", + "id" : "meshPlatformV2-Get-openshift", "name" : "/api/meshobjects/meshplatforms/{uuid}", - "description" : "Update an existing platform with kubernetes configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Get a platform with openshift configuration. This example shows the complete response including all configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -4939,27 +4939,17 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"adaf2c9c-71b6-4536-bc29-5cee827a9313\",\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" : [ ] - } + } ] }, "response" : [ { - "id" : "meshPlatformV2-Put-kubernetes", - "name" : "meshPlatformV2-Put-kubernetes", + "id" : "meshPlatformV2-Get-openshift", + "name" : "meshPlatformV2-Get-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -4973,23 +4963,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"adaf2c9c-71b6-4536-bc29-5cee827a9313\",\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", @@ -4997,11 +4977,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Put-azure", - "name" : "meshPlatformV1-Put-azure", + "id" : "meshPlatformV1-Get-gcp", + "name" : "meshPlatformV1-Get-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -5015,23 +4995,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"333a1231-ee0b-4116-a676-d32d40ab5d9d\",\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" : [ { "key" : "Content-Type", @@ -5039,11 +5009,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Put-aks", - "name" : "meshPlatformV1-Put-aks", + "id" : "meshPlatformV1-Get-kubernetes", + "name" : "meshPlatformV1-Get-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -5057,23 +5027,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"32802469-eb0a-4262-9899-367675a4bb41\",\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", @@ -5081,11 +5041,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Put-aws", - "name" : "meshPlatformV2-Put-aws", + "id" : "meshPlatformV1-Get-azure", + "name" : "meshPlatformV1-Get-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -5099,35 +5059,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\",\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\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Put-gcp", - "name" : "meshPlatformV2-Put-gcp", + "id" : "meshPlatformV2-Get-aks", + "name" : "meshPlatformV2-Get-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -5141,23 +5091,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"dee79369-96c6-43f1-ad14-49a9e4cf4976\",\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", @@ -5165,11 +5105,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Put-aws", - "name" : "meshPlatformV1-Put-aws", + "id" : "meshPlatformV2-Get-aws", + "name" : "meshPlatformV2-Get-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -5183,35 +5123,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\",\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" : [ ] - } + "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\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Put-gcp", - "name" : "meshPlatformV1-Put-gcp", + "id" : "meshPlatformV1-Get-azurerg", + "name" : "meshPlatformV1-Get-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -5225,23 +5155,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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." - }, { - "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\": \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\",\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", @@ -5249,11 +5169,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Put-openshift", - "name" : "meshPlatformV2-Put-openshift", + "id" : "meshPlatformV1-Get-aks", + "name" : "meshPlatformV1-Get-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -5267,35 +5187,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"e19caf66-b020-4a81-bda3-d25783b60387\",\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" : [ ] - } + "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\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\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\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Put-kubernetes", - "name" : "meshPlatformV1-Put-kubernetes", + "id" : "meshPlatformV2-Get-azure", + "name" : "meshPlatformV2-Get-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -5309,35 +5219,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"b8a40267-ce60-4494-b971-185519e1268e\",\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" : [ ] - } + "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\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Put-azurerg", - "name" : "meshPlatformV2-Put-azurerg", + "id" : "meshPlatformV2-Get-kubernetes", + "name" : "meshPlatformV2-Get-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -5351,23 +5251,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\",\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", @@ -5375,11 +5265,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Put-azure", - "name" : "meshPlatformV2-Put-azure", + "id" : "meshPlatformV1-Get-aws", + "name" : "meshPlatformV1-Get-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -5393,35 +5283,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\",\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" : [ ] - } + "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\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Put-openshift", - "name" : "meshPlatformV1-Put-openshift", + "id" : "meshPlatformV2-Get-azurerg", + "name" : "meshPlatformV2-Get-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -5435,35 +5315,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"6784dd02-e591-4398-93a6-c69bf0f27783\",\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" : [ ] - } + "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\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Put-aks", - "name" : "meshPlatformV2-Put-aks", + "id" : "meshPlatformV1-Get-openshift", + "name" : "meshPlatformV1-Get-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -5477,35 +5347,25 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\",\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\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Put-azurerg", - "name" : "meshPlatformV1-Put-azurerg", + "id" : "meshPlatformV2-Get-gcp", + "name" : "meshPlatformV2-Get-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -5519,37 +5379,27 @@ "disabled" : false } ] }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"14eaa869-732e-4137-bc88-bffd7c9b7755\",\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" : [ ] - } + "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\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshPlatformV2-Get-azurerg", + "id" : "meshPlatformV1-Put-azurerg", "name" : "/api/meshobjects/meshplatforms/{uuid}", - "description" : "Get a platform with azurerg configuration. This example shows the complete response including all configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Update an existing platform with azurerg configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -5565,17 +5415,27 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\",\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" : [ ] + } }, "response" : [ { - "id" : "meshPlatformV2-Get-azurerg", - "name" : "meshPlatformV2-Get-azurerg", + "id" : "meshPlatformV1-Put-azurerg", + "name" : "meshPlatformV1-Put-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -5589,25 +5449,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\",\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", - "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\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Get-kubernetes", - "name" : "meshPlatformV2-Get-kubernetes", + "id" : "meshPlatformV1-Put-azure", + "name" : "meshPlatformV1-Put-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -5621,25 +5491,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"8341e5f2-e538-4866-8308-0200795e9301\",\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" : [ { "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\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Get-azure", - "name" : "meshPlatformV1-Get-azure", + "id" : "meshPlatformV2-Put-gcp", + "name" : "meshPlatformV2-Put-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -5653,25 +5533,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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\": \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\",\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.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\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Get-openshift", - "name" : "meshPlatformV1-Get-openshift", + "id" : "meshPlatformV1-Put-openshift", + "name" : "meshPlatformV1-Put-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -5685,13 +5575,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"2985b272-584a-4bc7-9326-60c03ca4e541\",\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", @@ -5699,11 +5599,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Get-gcp", - "name" : "meshPlatformV1-Get-gcp", + "id" : "meshPlatformV1-Put-aks", + "name" : "meshPlatformV1-Put-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -5717,13 +5617,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\",\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", @@ -5731,11 +5641,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Get-aks", - "name" : "meshPlatformV1-Get-aks", + "id" : "meshPlatformV1-Put-gcp", + "name" : "meshPlatformV1-Put-gcp", "originalRequest" : { "url" : { "protocol" : "http", @@ -5749,13 +5659,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"42d99876-6452-42fa-b244-98fcfb18fc2a\",\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", @@ -5763,11 +5683,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Get-openshift", - "name" : "meshPlatformV2-Get-openshift", + "id" : "meshPlatformV2-Put-aws", + "name" : "meshPlatformV2-Put-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -5781,13 +5701,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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\": \"02f90bc7-4b44-4faa-9913-9db76bd59461\",\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", @@ -5795,11 +5725,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Get-azure", - "name" : "meshPlatformV2-Get-azure", + "id" : "meshPlatformV2-Put-kubernetes", + "name" : "meshPlatformV2-Put-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -5813,13 +5743,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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\": \"3504cb55-d7a3-43fe-9037-ba30590f59f3\",\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", @@ -5827,11 +5767,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Get-aws", - "name" : "meshPlatformV2-Get-aws", + "id" : "meshPlatformV2-Put-openshift", + "name" : "meshPlatformV2-Put-openshift", "originalRequest" : { "url" : { "protocol" : "http", @@ -5845,13 +5785,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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\": \"160afde9-729c-41b8-91e2-d107491eda3d\",\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", @@ -5859,11 +5809,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Get-kubernetes", - "name" : "meshPlatformV1-Get-kubernetes", + "id" : "meshPlatformV2-Put-azurerg", + "name" : "meshPlatformV2-Put-azurerg", "originalRequest" : { "url" : { "protocol" : "http", @@ -5877,25 +5827,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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\": \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\",\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", - "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\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Get-aks", - "name" : "meshPlatformV2-Get-aks", + "id" : "meshPlatformV2-Put-azure", + "name" : "meshPlatformV2-Put-azure", "originalRequest" : { "url" : { "protocol" : "http", @@ -5909,13 +5869,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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\": \"6858108a-94ac-4565-97d9-cc8f996eacbd\",\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", @@ -5923,11 +5893,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV2-Get-gcp", - "name" : "meshPlatformV2-Get-gcp", + "id" : "meshPlatformV1-Put-aws", + "name" : "meshPlatformV1-Put-aws", "originalRequest" : { "url" : { "protocol" : "http", @@ -5941,25 +5911,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"ea98930b-e0e2-443a-be6b-1800c2235f9b\",\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", - "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\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Get-aws", - "name" : "meshPlatformV1-Get-aws", + "id" : "meshPlatformV2-Put-aks", + "name" : "meshPlatformV2-Put-aks", "originalRequest" : { "url" : { "protocol" : "http", @@ -5973,25 +5953,35 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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\": \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\",\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" : [ { "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\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 }, { - "id" : "meshPlatformV1-Get-azurerg", - "name" : "meshPlatformV1-Get-azurerg", + "id" : "meshPlatformV1-Put-kubernetes", + "name" : "meshPlatformV1-Put-kubernetes", "originalRequest" : { "url" : { "protocol" : "http", @@ -6005,13 +5995,23 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"d3c033de-ab2f-438c-8b6c-06658546a504\",\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", @@ -6019,11 +6019,11 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code" : 200 } ] }, { - "id" : "meshPlatformDeleteV2", + "id" : "meshPlatformDeleteV1", "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" : [ ], @@ -6044,14 +6044,14 @@ "method" : "DELETE", "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" : "meshPlatformDeleteV2", - "name" : "meshPlatformDeleteV2", + "id" : "meshPlatformDeleteV1", + "name" : "meshPlatformDeleteV1", "originalRequest" : { "url" : { "protocol" : "http", @@ -6068,16 +6068,16 @@ "method" : "DELETE", "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." } ] }, "cookie" : [ ], "code" : 204 }, { - "id" : "meshPlatformDeleteV1", - "name" : "meshPlatformDeleteV1", + "id" : "meshPlatformDeleteV2", + "name" : "meshPlatformDeleteV2", "originalRequest" : { "url" : { "protocol" : "http", @@ -6094,9 +6094,9 @@ "method" : "DELETE", "header" : [ { "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." } ] }, "cookie" : [ ], @@ -6233,7 +6233,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"a4a4c984-c6f7-47ee-9929-40e595aee823\"\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/a4a4c984-c6f7-47ee-9929-40e595aee823\"\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\" : \"5520e378-a482-47b0-821a-31ec3acc4cdf\"\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/5520e378-a482-47b0-821a-31ec3acc4cdf\"\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 } ] }, { @@ -6367,13 +6367,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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/deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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 \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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/d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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" : "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" : { @@ -6384,12 +6384,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", @@ -6398,8 +6398,8 @@ } ] }, "response" : [ { - "id" : "meshProjectRoleV1Delete", - "name" : "meshProjectRoleV1Delete", + "id" : "meshProjectRoleV1", + "name" : "meshProjectRoleV1", "originalRequest" : { "url" : { "protocol" : "http", @@ -6408,12 +6408,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", @@ -6421,13 +6421,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" : { @@ -6438,12 +6444,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", @@ -6452,8 +6458,8 @@ } ] }, "response" : [ { - "id" : "meshProjectRoleV1", - "name" : "meshProjectRoleV1", + "id" : "meshProjectRoleV1Delete", + "name" : "meshProjectRoleV1Delete", "originalRequest" : { "url" : { "protocol" : "http", @@ -6462,12 +6468,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", @@ -6475,14 +6481,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", @@ -6597,7 +6597,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\" : \"vfaf6mpdsv1\"\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\" : \"gd4r3mpdsv1\"\n }\n}", "urlencoded" : [ ] } }, @@ -6631,7 +6631,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\" : \"vfaf6mpdsv1\"\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\" : \"gd4r3mpdsv1\"\n }\n}", "urlencoded" : [ ] } }, @@ -6641,7 +6641,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", "code" : 200 } ] }, { @@ -6689,13 +6689,13 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-11-12T13:02:56.763868806Z\"\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-11-12T13:10:51.354454077Z\"\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\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" : { @@ -6705,17 +6705,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;charset=UTF-8", + "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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", + "urlencoded" : [ ] + } }, "response" : [ { - "id" : "meshServiceInstanceGet", - "name" : "meshServiceInstanceGet", + "id" : "meshServiceInstancePut", + "name" : "meshServiceInstancePut", "originalRequest" : { "url" : { "protocol" : "http", @@ -6723,22 +6733,26 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "GET", + "method" : "PUT", "header" : [ { + "key" : "Content-Type", + "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", + "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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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" : "meshServiceInstanceDelete", @@ -6771,9 +6785,9 @@ "code" : 202 } ] }, { - "id" : "meshServiceInstancePut", + "id" : "meshServiceInstanceGet", "name" : "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", - "description" : "Update a specific mesh 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" : { @@ -6783,27 +6797,17 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", - "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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded" : [ ] - } + } ] }, "response" : [ { - "id" : "meshServiceInstancePut", - "name" : "meshServiceInstancePut", + "id" : "meshServiceInstanceGet", + "name" : "meshServiceInstanceGet", "originalRequest" : { "url" : { "protocol" : "http", @@ -6811,31 +6815,27 @@ "path" : "/api/meshobjects/meshserviceinstances/:serviceInstanceId", "port" : "8080" }, - "method" : "PUT", + "method" : "GET", "header" : [ { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", - "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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded" : [ ] - } + } ] }, + "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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "code" : 200 } ] }, { - "id" : "meshTagDefinitionDelete", + "id" : "meshTagDefinitionPut", "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" : "Create or update an existing meshTagDefinition by name\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -6851,17 +6851,26 @@ "disabled" : false } ] }, - "method" : "DELETE", + "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;charset=UTF-8", + "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" : "meshTagDefinitionDelete", - "name" : "meshTagDefinitionDelete", + "id" : "meshTagDefinitionPut", + "name" : "meshTagDefinitionPut", "originalRequest" : { "url" : { "protocol" : "http", @@ -6875,21 +6884,36 @@ "disabled" : false } ] }, - "method" : "DELETE", + "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;charset=UTF-8", + "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" : [ ], - "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\" : \"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 } ] }, { - "id" : "meshTagDefinitionPut", + "id" : "meshTagDefinition", "name" : "/api/meshobjects/meshtagdefinitions/{name}", - "description" : "Create or update an existing meshTagDefinition by name\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" : { @@ -6905,26 +6929,17 @@ "disabled" : false } ] }, - "method" : "PUT", + "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." - }, { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json;charset=UTF-8", - "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" : "meshTagDefinition", + "name" : "meshTagDefinition", "originalRequest" : { "url" : { "protocol" : "http", @@ -6938,22 +6953,13 @@ "disabled" : false } ] }, - "method" : "PUT", + "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." - }, { - "key" : "Content-Type", - "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json;charset=UTF-8", - "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", @@ -6961,13 +6967,13 @@ "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}", + "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" : "meshTagDefinition", + "id" : "meshTagDefinitionDelete", "name" : "/api/meshobjects/meshtagdefinitions/{name}", - "description" : "Get a specific meshTagDefinition by its 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" : { @@ -6983,7 +6989,7 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", @@ -6992,8 +6998,8 @@ } ] }, "response" : [ { - "id" : "meshTagDefinition", - "name" : "meshTagDefinition", + "id" : "meshTagDefinitionDelete", + "name" : "meshTagDefinitionDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -7007,7 +7013,7 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", @@ -7015,14 +7021,8 @@ "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 + "code" : 204 } ] }, { "id" : "meshTenantDeleteV3", @@ -7133,7 +7133,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-11-13T13:03:00.403298724Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"ae2aff8b-35df-4eea-a2dd-31f50ad5809a\",\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-11-13T13:10:54.471986094Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"bad4394e-82e7-4436-a922-054bae1870cb\",\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 } ] }, { @@ -7245,7 +7245,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"c2aad318-5e12-4549-8d46-8c02c573d411\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.412110616Z\"\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/c2aad318-5e12-4549-8d46-8c02c573d411\"\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\" : \"f1eac5d5-6de4-46d4-815e-fbd5519d5e21\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.413523462Z\"\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/f1eac5d5-6de4-46d4-815e-fbd5519d5e21\"\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 } ] }, { @@ -7275,7 +7275,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\": \"feffc0cc-4f26-4bdf-a33f-49f89165c5ef\",\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\": \"3496453d-f60f-4e79-ad18-7a14cdc523e6\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", "urlencoded" : [ ] } }, @@ -7303,7 +7303,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\": \"feffc0cc-4f26-4bdf-a33f-49f89165c5ef\",\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\": \"3496453d-f60f-4e79-ad18-7a14cdc523e6\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", "urlencoded" : [ ] } }, @@ -7313,7 +7313,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"feffc0cc-4f26-4bdf-a33f-49f89165c5ef\",\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 \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"3496453d-f60f-4e79-ad18-7a14cdc523e6\",\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 } ] }, { @@ -7403,9 +7403,77 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"b54e6540-5a3b-4023-90ed-16af4beb7f07\",\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 \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"95269413-3e80-46f3-9d9c-277c3b84c55c\",\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 } ] + }, { + "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;charset=UTF-8", + "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;charset=UTF-8", + "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", @@ -7469,75 +7537,75 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"363cb208-d208-436a-8766-5c1c358fcbc3\"\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/363cb208-d208-436a-8766-5c1c358fcbc3\"\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\" : \"a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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/a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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;charset=UTF-8", + "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json;charset=UTF-8", "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;charset=UTF-8", + "value" : "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json;charset=UTF-8", "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 } ] }, { @@ -7614,74 +7682,6 @@ "body" : "{\n \"_embedded\" : {\n \"meshWorkspaceUserBindings\" : [ {\n \"kind\" : \"meshWorkspaceUserBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\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/user-binding-name\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager&workspaceIdentifier=test-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "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;charset=UTF-8", - "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;charset=UTF-8", - "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" : "meshWorkspacePut", "name" : "/api/meshobjects/meshworkspaces/{identifier}", @@ -7759,13 +7759,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-11-12T13:03:06.045167397Z\"\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-11-12T13:10:59.778096093Z\"\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" : "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" : { @@ -7781,7 +7781,7 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", @@ -7790,8 +7790,8 @@ } ] }, "response" : [ { - "id" : "meshWorkspaceDelete", - "name" : "meshWorkspaceDelete", + "id" : "meshWorkspace", + "name" : "meshWorkspace", "originalRequest" : { "url" : { "protocol" : "http", @@ -7805,7 +7805,7 @@ "disabled" : false } ] }, - "method" : "DELETE", + "method" : "GET", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", @@ -7813,13 +7813,19 @@ "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-11-12T13:09: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 } ] }, { - "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" : { @@ -7835,7 +7841,7 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", @@ -7844,8 +7850,8 @@ } ] }, "response" : [ { - "id" : "meshWorkspace", - "name" : "meshWorkspace", + "id" : "meshWorkspaceDelete", + "name" : "meshWorkspaceDelete", "originalRequest" : { "url" : { "protocol" : "http", @@ -7859,7 +7865,7 @@ "disabled" : false } ] }, - "method" : "GET", + "method" : "DELETE", "header" : [ { "key" : "Accept", "value" : "application/vnd.meshcloud.api.meshworkspace.v2.hal+json", @@ -7867,14 +7873,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-11-12T13:01:43Z\"\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", @@ -8023,7 +8023,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"a4a4c984-c6f7-47ee-9929-40e595aee823\"\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/a4a4c984-c6f7-47ee-9929-40e595aee823\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"5520e378-a482-47b0-821a-31ec3acc4cdf\"\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/5520e378-a482-47b0-821a-31ec3acc4cdf\"\n }\n }\n}", "code" : 200 } ] }, { @@ -8125,7 +8125,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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/deed32a6-98f9-40f7-8c7b-52bff44b7319\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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/d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\n }\n }\n}", "code" : 200 } ] }, { @@ -8257,7 +8257,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"363cb208-d208-436a-8766-5c1c358fcbc3\"\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/363cb208-d208-436a-8766-5c1c358fcbc3\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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/a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\n }\n }\n}", "code" : 200 } ] }, { @@ -8423,9 +8423,9 @@ "code" : 200 } ] }, { - "id" : "meshBuildingBlockRunSourceUpdate", + "id" : "meshBuildingBlockRunAbort", "name" : "/api/meshobjects/meshbuildingblockruns/{blockRunUuid}/status/source/{sourceId}", - "description" : "Update source steps for a meshBuildingBlockRun with status changes, messages, and outputs\n\n**Authentication:** This endpoint supports API Key authentication.", + "description" : "Abort a meshBuildingBlockRun that is currently in progress\n\n**Authentication:** This endpoint supports API Key authentication.", "variable" : [ ], "event" : [ ], "request" : { @@ -8459,13 +8459,13 @@ } ], "body" : { "mode" : "raw", - "raw" : "{\n \"status\": \"IN_PROGRESS\",\n \"steps\": [{\n \"id\": \"step1\",\n \"status\": \"SUCCEEDED\",\n \"userMessage\": \"Step was successful.\",\n \"systemMessage\": \"Step was successful.\",\n \"outputs\": {\n \"outputName\": {\n \"value\": \"hello-world\",\n \"type\": \"STRING\",\n \"isSensitive\": false\n }\n }\n },\n {\n \"id\": \"step2\",\n \"status\": \"IN_PROGRESS\"\n }]\n} ", + "raw" : "{\n \"status\": \"ABORTED\" \n} ", "urlencoded" : [ ] } }, "response" : [ { - "id" : "meshBuildingBlockRunSourceUpdate", - "name" : "meshBuildingBlockRunSourceUpdate", + "id" : "meshBuildingBlockRunAbort", + "name" : "meshBuildingBlockRunAbort", "originalRequest" : { "url" : { "protocol" : "http", @@ -8486,18 +8486,13 @@ }, "method" : "PATCH", "header" : [ { - "key" : "Accept", - "value" : "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json", - "disabled" : false, - "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json` for this version of the endpoint." - }, { "key" : "Content-Type", "value" : "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json;charset=UTF-8", "disabled" : false } ], "body" : { "mode" : "raw", - "raw" : "{\n \"status\": \"IN_PROGRESS\",\n \"steps\": [{\n \"id\": \"step1\",\n \"status\": \"SUCCEEDED\",\n \"userMessage\": \"Step was successful.\",\n \"systemMessage\": \"Step was successful.\",\n \"outputs\": {\n \"outputName\": {\n \"value\": \"hello-world\",\n \"type\": \"STRING\",\n \"isSensitive\": false\n }\n }\n },\n {\n \"id\": \"step2\",\n \"status\": \"IN_PROGRESS\"\n }]\n} ", + "raw" : "{\n \"status\": \"ABORTED\" \n} ", "urlencoded" : [ ] } }, @@ -8510,8 +8505,8 @@ "body" : "{\n \"runAborted\" : false\n}", "code" : 200 }, { - "id" : "meshBuildingBlockRunAbort", - "name" : "meshBuildingBlockRunAbort", + "id" : "meshBuildingBlockRunSourceUpdate", + "name" : "meshBuildingBlockRunSourceUpdate", "originalRequest" : { "url" : { "protocol" : "http", @@ -8532,13 +8527,18 @@ }, "method" : "PATCH", "header" : [ { + "key" : "Accept", + "value" : "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json", + "disabled" : false, + "description" : "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json` for this version of the endpoint." + }, { "key" : "Content-Type", "value" : "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json;charset=UTF-8", "disabled" : false } ], "body" : { "mode" : "raw", - "raw" : "{\n \"status\": \"ABORTED\" \n} ", + "raw" : "{\n \"status\": \"IN_PROGRESS\",\n \"steps\": [{\n \"id\": \"step1\",\n \"status\": \"SUCCEEDED\",\n \"userMessage\": \"Step was successful.\",\n \"systemMessage\": \"Step was successful.\",\n \"outputs\": {\n \"outputName\": {\n \"value\": \"hello-world\",\n \"type\": \"STRING\",\n \"isSensitive\": false\n }\n }\n },\n {\n \"id\": \"step2\",\n \"status\": \"IN_PROGRESS\"\n }]\n} ", "urlencoded" : [ ] } }, diff --git a/static/api/meshstack-postman-collection.json b/static/api/meshstack-postman-collection.json index 435a3f35a..fefaf53f8 100644 --- a/static/api/meshstack-postman-collection.json +++ b/static/api/meshstack-postman-collection.json @@ -92,7 +92,7 @@ ], "body": { "mode": "raw", - "raw": "client_id=bc00f618-6cb0-4896-a289-aaf415119520&client_secret=Lx1wa4Q37ndOzJ3Kt1OF7upximrHWymD&grant_type=client_credentials", + "raw": "client_id=53a0a9af-080f-4b84-9b2a-fe75a8e22d63&client_secret=jbgCXZi0GBFs6zIMgt2JBl1Q3MXG1eMH&grant_type=client_credentials", "urlencoded": [ ] @@ -118,7 +118,7 @@ ], "body": { "mode": "raw", - "raw": "client_id=bc00f618-6cb0-4896-a289-aaf415119520&client_secret=Lx1wa4Q37ndOzJ3Kt1OF7upximrHWymD&grant_type=client_credentials", + "raw": "client_id=53a0a9af-080f-4b84-9b2a-fe75a8e22d63&client_secret=jbgCXZi0GBFs6zIMgt2JBl1Q3MXG1eMH&grant_type=client_credentials", "urlencoded": [ ] @@ -148,7 +148,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"clientId\" : \"bc00f618-6cb0-4896-a289-aaf415119520\",\n \"clientSecret\" : \"Lx1wa4Q37ndOzJ3Kt1OF7upximrHWymD\"\n} ", + "raw": "{\n \"clientId\" : \"53a0a9af-080f-4b84-9b2a-fe75a8e22d63\",\n \"clientSecret\" : \"jbgCXZi0GBFs6zIMgt2JBl1Q3MXG1eMH\"\n} ", "urlencoded": [ ] @@ -164,7 +164,7 @@ "cookie": [ ], - "body": "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjI5NTI4NDIsImlhdCI6MTc2Mjk1MjU0MiwianRpIjoiZTk3Y2M3YTQtMmM1OS00YWI0LThmOGYtZjllYzI0NjdhNmU1IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiZDQ4MjhhZDItMGUzMy00ZDE2LWFjOTUtZTkyMjE2NzgwZjBjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYmMwMGY2MTgtNmNiMC00ODk2LWEyODktYWFmNDE1MTE5NTIwIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiY2xpZW50SG9zdCI6IjEyNy4wLjAuMSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWJjMDBmNjE4LTZjYjAtNDg5Ni1hMjg5LWFhZjQxNTExOTUyMCIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiJiYzAwZjYxOC02Y2IwLTQ4OTYtYTI4OS1hYWY0MTUxMTk1MjAifQ.EKuPxGqeE0xtCJoWFRdmSQgSbrn42yAgvuW9vVwxA6lASKc6t0JUwJY6ZPzM6ST2CHSKpw8qvp_zt4b-cZf47vRr0_E_yj7Gk7ulbnaNaEbofIgb7R6FId1cWYHZH2OkXxu1QwYXBff3dMZvHt8d0v7ndpzTAj37usM5sMo2MNfG1Qn1UNVappE2G72vhzgpcWijxfSXZC6Z3x6qjTkKoqxRzO3KmQdqZSiKRV380hKpdM4dh1QUoqJobiqcNLCaNiPK40PvKBoxLGICkNSZLdybkmoVhDHjT851wW7wet5_AyXYxfYHg5M5IKCldhjy1vSevqOL-E1QiAE8ulPTsQ\",\n \"expires_in\" : 300,\n \"refresh_expires_in\" : 0,\n \"token_type\" : \"Bearer\",\n \"not-before-policy\" : 0,\n \"scope\" : \"profile email\"\n}", + "body": "{\n \"access_token\" : \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPdXJGaUduQnB2QlZNY2NBRjVNT1J3bTA3ODRObHZHRlFXSjlmdm8wTklzIn0.eyJleHAiOjE3NjI5NTMzMTcsImlhdCI6MTc2Mjk1MzAxNywianRpIjoiOWNjYzk3NjUtNjJhNC00ZDFhLWEzZjItZGNkMzFiY2IzNzYxIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL21lc2hmZWQiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYTdiZjYyM2YtNzJmMS00MDQ3LTk4MTYtYTUxZDk0ODQ1NjYzIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiNTNhMGE5YWYtMDgwZi00Yjg0LTliMmEtZmU3NWE4ZTIyZDYzIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtbWVzaGZlZCIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJjbGllbnRIb3N0IjoiMTI3LjAuMC4xIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LTUzYTBhOWFmLTA4MGYtNGI4NC05YjJhLWZlNzVhOGUyMmQ2MyIsImNsaWVudEFkZHJlc3MiOiIxMjcuMC4wLjEiLCJjbGllbnRfaWQiOiI1M2EwYTlhZi0wODBmLTRiODQtOWIyYS1mZTc1YThlMjJkNjMifQ.cKQBBPjmxN5xJr7RQuvO3v42gHGXTgS_q6FT-2edJ5d4MdosrSwTgZbdnPx6rj3Fn-7nPJ-Fbfivc0E-uK9FsLgT4w_C1H_RX7y1RxsFO5OXEDZEgsSBMd9Bq19gWp3HWW1oBUoJlthKcbVoSaWOJhURUBi9u5luiRiCzjt-ujKbe4UA3GAhR6WF1Fxqj2qO_kJzOvIpRFnjxJR-yFtxTHMd616HSNbVgVCWDi6G8PWbmI1buZ_MSI6ylnkaSrOJfdUldJ0MCk4heCFqko7j68RmdMYgiolMi-MHZ3h1IshVMRgaYal-4ENCto7JuNkpPhcAvgnjikKBz6mpe4RKzA\",\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 } ] @@ -359,7 +359,7 @@ "cookie": [ ], - "body": "{\n \"_links\" : {\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 \"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 \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", + "body": "{\n \"_links\" : {\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?customerIdentifier}\",\n \"templated\" : true\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?customerIdentifier,projectIdentifier,platformIdentifier}\",\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}", "code": 200 }, { @@ -391,7 +391,7 @@ "cookie": [ ], - "body": "{\n \"_links\" : {\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 \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\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 \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\n },\n \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,author,type,workspaceName}\",\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 \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\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 \"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 \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants{?workspaceIdentifier,projectIdentifier,platformIdentifier,deletionState}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", + "body": "{\n \"_links\" : {\n \"meshlandingzones\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones\"\n },\n \"meshcommunications\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications{?communicationDefinitionUuid,resolutionStatus,communicationType}\",\n \"templated\" : true\n },\n \"meshcommunicationdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunicationdefinitions{?type}\",\n \"templated\" : true\n },\n \"meshprojectroles\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectroles\"\n },\n \"meshserviceinstances\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances{?workspaceIdentifier,projectIdentifier,marketplaceIdentifier,serviceIdentifier,planIdentifier}\",\n \"templated\" : true\n },\n \"meshtagdefinitions\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtagdefinitions\"\n },\n \"meshpaymentmethods\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshpaymentmethods{?workspaceIdentifier}\",\n \"templated\" : true\n },\n \"meshworkspaces\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces\"\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 \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers{?workspaceIdentifier,projectIdentifier,platformIdentifier,workspaceUserGroupIdentifier,projectRole,workspaceRole,email,firstName,lastName,username,euid}\",\n \"templated\" : true\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 \"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 \"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 \"mesheventlogs\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs{?from,until,title,description,author,type,workspaceName}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects\"\n }\n }\n}", "code": 200 } ] @@ -568,101 +568,6 @@ } ] }, - { - "id": "meshBuildingBlockDefinitionListV1", - "name": "/api/meshobjects/meshbuildingblockdefinitions", - "description": "List all meshBuildingBlockDefinitions with optional filtering by workspace and pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblockdefinitions", - "query": [ - { - "key": "workspaceIdentifier", - "disabled": false, - "description": "Filter for Building Block Definitions that belong to the meshWorkspace with given identifier. (optional)" - }, - { - "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/meshbuildingblockdefinitions" - }, - "method": "GET", - "header": [ - { - "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." - } - ] - }, - "response": [ - { - "id": "meshBuildingBlockDefinitionListV1", - "name": "meshBuildingBlockDefinitionListV1", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblockdefinitions", - "query": [ - { - "key": "workspaceIdentifier", - "disabled": false, - "description": "Filter for Building Block Definitions that belong to the meshWorkspace with given identifier. (optional)" - }, - { - "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/meshbuildingblockdefinitions" - }, - "method": "GET", - "header": [ - { - "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." - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", - "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-11-12T13:02:29.354557099Z\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mbbdds1\",\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\" : \"8c972db2-5610-4be8-866b-e52a3f3f9a9b\",\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", @@ -745,15 +650,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:02:30.191238834Z\"\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\" : \"8785c693-9607-4528-83c6-61835f5e366b\",\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/43e4dcc0-412e-4a1f-a01f-7992ded77491\"\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=43e4dcc0-412e-4a1f-a01f-7992ded77491\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:10:25.254005335Z\"\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\" : \"0679e122-1f5f-4bda-891f-b73ad126ea4b\",\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/4c371e05-18d4-47c2-9438-f71e38e7f509\"\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=4c371e05-18d4-47c2-9438-f71e38e7f509\"\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.", + "id": "meshBuildingBlockDefinitionListV1", + "name": "/api/meshobjects/meshbuildingblockdefinitions", + "description": "List all meshBuildingBlockDefinitions with optional filtering by workspace and pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -763,122 +668,85 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblocks", - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" + "path": "/api/meshobjects/meshbuildingblockdefinitions", + "query": [ + { + "key": "workspaceIdentifier", + "disabled": false, + "description": "Filter for Building Block Definitions that belong to the meshWorkspace with given identifier. (optional)" + }, + { + "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/meshbuildingblockdefinitions" }, - "method": "POST", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json;charset=UTF-8", - "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", + "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.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.meshbuildingblockdefinition.v1-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\": \"28e4a02d-3094-40f5-8745-10220666803d\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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\": \"a65c1b1d-7c5e-406a-8e16-8a7964fb498a\"\n }]\n }\n} ", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshBuildingBlockPostV2", - "name": "meshBuildingBlockPostV2", - "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.v2-preview.hal+json;charset=UTF-8", - "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\": \"28e4a02d-3094-40f5-8745-10220666803d\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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\": \"a65c1b1d-7c5e-406a-8e16-8a7964fb498a\"\n }]\n }\n} ", - "urlencoded": [ - - ] - } - }, - "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\" : \"555a8c9d-c780-4216-88f2-9567ff5d35bb\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:02:34.997961052Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"a65c1b1d-7c5e-406a-8e16-8a7964fb498a\",\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/555a8c9d-c780-4216-88f2-9567ff5d35bb\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/555a8c9d-c780-4216-88f2-9567ff5d35bb/purge\"\n }\n }\n}", - "code": 201 - }, - { - "id": "meshBuildingBlockPost", - "name": "meshBuildingBlockPost", + "id": "meshBuildingBlockDefinitionListV1", + "name": "meshBuildingBlockDefinitionListV1", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshbuildingblocks", - "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" + "path": "/api/meshobjects/meshbuildingblockdefinitions", + "query": [ + { + "key": "workspaceIdentifier", + "disabled": false, + "description": "Filter for Building Block Definitions that belong to the meshWorkspace with given identifier. (optional)" + }, + { + "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/meshbuildingblockdefinitions" }, - "method": "POST", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json;charset=UTF-8", - "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", + "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.meshbuildingblock.v1.hal+json` for this version of the endpoint." + "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\",\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\": \"8e9d9b3d-8a5c-4057-b965-da83da65b0fa\"\n }]\n }\n} ", - "urlencoded": [ - - ] - } + ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", + "value": "application/vnd.meshcloud.api.meshbuildingblockdefinition.v1-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b\",\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-11-12T13:02:32.329511759Z\"\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\" : \"8e9d9b3d-8a5c-4057-b965-da83da65b0fa\",\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/30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b\"\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/30dab6bb-fc09-4ed9-bd0e-b5c76bdd462b/purge\"\n }\n }\n}", - "code": 201 + "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-11-12T13:10:24.411669789Z\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mbbdds1\",\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\" : \"b2fbf2ac-7b10-405c-b274-4ebbd6bc194d\",\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 } ] }, @@ -1067,7 +935,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-11-12T13:02:31.038122489Z\"\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-11-12T13:02:31.059707907Z\"\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-11-12T13:10:26.050000466Z\"\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-11-12T13:10:26.064176135Z\"\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,15 +1034,15 @@ "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-11-12T13:02:34.070695144Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"096a4b52-9c43-4cb6-a0f9-b3d10a123487\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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-11-12T13:02:34.079186673Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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-11-12T13:10:29.064439983Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"b6117fe0-04a5-4713-a996-768c31b0eb3d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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-11-12T13:10:29.072602692Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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": "meshCommunicationDefinitionListFilteredByType", - "name": "/api/meshobjects/meshcommunicationdefinitions", - "description": "List meshCommunicationDefinitions filtered by communication type with pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", + "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": [ ], @@ -1184,119 +1052,122 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshcommunicationdefinitions", - "query": [ - { - "key": "type", - "disabled": false, - "description": "Filter by communication type. Example: `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/meshcommunicationdefinitions" + "path": "/api/meshobjects/meshbuildingblocks", + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" }, - "method": "GET", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json;charset=UTF-8", + "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.meshcommunicationdefinition.v1-preview.hal+json", + "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.meshcommunicationdefinition.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.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\": \"e28c610c-6de3-4a61-a3da-376e7823e989\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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\": \"4c9e3921-df72-4aed-af63-2301a50d6fa4\"\n }]\n }\n} ", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshCommunicationDefinitionListFilteredByType", - "name": "meshCommunicationDefinitionListFilteredByType", + "id": "meshBuildingBlockPostV2", + "name": "meshBuildingBlockPostV2", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshcommunicationdefinitions", - "query": [ - { - "key": "type", - "disabled": false, - "description": "Filter by communication type. Example: `NOTIFICATION`." - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions" + "path": "/api/meshobjects/meshbuildingblocks", + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" }, - "method": "GET", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json;charset=UTF-8", + "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.meshcommunicationdefinition.v1-preview.hal+json", + "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.meshcommunicationdefinition.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.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\": \"e28c610c-6de3-4a61-a3da-376e7823e989\"\n },\n \"targetRef\": {\n \"kind\": \"meshTenant\",\n \"uuid\": \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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\": \"4c9e3921-df72-4aed-af63-2301a50d6fa4\"\n }]\n }\n} ", + "urlencoded": [ + + ] + } }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"112858e7-68e1-459c-a66e-26ce378f81ba\"\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-11-14\",\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/112858e7-68e1-459c-a66e-26ce378f81ba\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"60102910-ed7c-456c-99b8-2f9a415754c6\"\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-11-15\",\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/60102910-ed7c-456c-99b8-2f9a415754c6\"\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 + "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"27849687-f087-4bd3-919c-5f21718dbafd\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:10:29.931180877Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\n },\n \"displayName\" : \"New BuildingBlock v2\",\n \"inputs\" : [ {\n \"key\" : \"resourceName\",\n \"value\" : \"buildingBlock-for-docs\",\n \"valueType\" : \"STRING\"\n } ],\n \"parentBuildingBlocks\" : [ {\n \"buildingBlockUuid\" : \"4c9e3921-df72-4aed-af63-2301a50d6fa4\",\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/27849687-f087-4bd3-919c-5f21718dbafd\"\n },\n \"forcePurge\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshbuildingblocks/27849687-f087-4bd3-919c-5f21718dbafd/purge\"\n }\n }\n}", + "code": 201 }, { - "id": "meshCommunicationDefinitionList", - "name": "meshCommunicationDefinitionList", + "id": "meshBuildingBlockPost", + "name": "meshBuildingBlockPost", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshcommunicationdefinitions", - "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/meshcommunicationdefinitions" + "path": "/api/meshobjects/meshbuildingblocks", + "raw": "{{baseUrl}}/api/meshobjects/meshbuildingblocks" }, - "method": "GET", + "method": "POST", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json;charset=UTF-8", + "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.meshcommunicationdefinition.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.meshcommunicationdefinition.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\",\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\": \"cfc76581-5780-4f38-a494-269ec53b24e7\"\n }]\n }\n} ", + "urlencoded": [ + + ] + } }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "value": "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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-11-13\",\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"112858e7-68e1-459c-a66e-26ce378f81ba\"\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-11-14\",\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/112858e7-68e1-459c-a66e-26ce378f81ba\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"60102910-ed7c-456c-99b8-2f9a415754c6\"\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-11-15\",\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/60102910-ed7c-456c-99b8-2f9a415754c6\"\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 + "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"uuid\" : \"fddf6776-b817-4b9b-9139-47a13b5aa8f6\",\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-11-12T13:10:27.361938861Z\"\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\" : \"cfc76581-5780-4f38-a494-269ec53b24e7\",\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/fddf6776-b817-4b9b-9139-47a13b5aa8f6\"\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/fddf6776-b817-4b9b-9139-47a13b5aa8f6/purge\"\n }\n }\n}", + "code": 201 } ] }, @@ -1382,11 +1253,140 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"8a1cd512-f753-4130-a65b-d4c2113848b4\"\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/8a1cd512-f753-4130-a65b-d4c2113848b4\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"e1664934-f496-41a3-94fc-77943c78d44d\"\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/e1664934-f496-41a3-94fc-77943c78d44d\"\n }\n }\n}", "code": 201 } ] }, + { + "id": "meshCommunicationDefinitionListFilteredByType", + "name": "/api/meshobjects/meshcommunicationdefinitions", + "description": "List meshCommunicationDefinitions filtered by communication type with pagination support\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshcommunicationdefinitions", + "query": [ + { + "key": "type", + "disabled": false, + "description": "Filter by communication type. Example: `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/meshcommunicationdefinitions" + }, + "method": "GET", + "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." + } + ] + }, + "response": [ + { + "id": "meshCommunicationDefinitionListFilteredByType", + "name": "meshCommunicationDefinitionListFilteredByType", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshcommunicationdefinitions", + "query": [ + { + "key": "type", + "disabled": false, + "description": "Filter by communication type. Example: `NOTIFICATION`." + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions" + }, + "method": "GET", + "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." + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\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-11-14\",\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/3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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-11-15\",\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/5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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": "meshCommunicationDefinitionList", + "name": "meshCommunicationDefinitionList", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshcommunicationdefinitions", + "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/meshcommunicationdefinitions" + }, + "method": "GET", + "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." + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshcommunicationdefinition.v1-preview.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"_embedded\" : {\n \"meshCommunicationDefinitions\" : [ {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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-11-13\",\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\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-11-14\",\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/3a655c5b-fb63-48f8-9716-beb9fd5f6851\"\n }\n }\n }, {\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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-11-15\",\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/5ab89a1b-9c62-4310-a82a-d743e1f4333f\"\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": "meshCommunicationList", "name": "/api/meshobjects/meshcommunications", @@ -1497,7 +1497,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=8da49f9f-3c72-46b4-adac-92637b5e6230&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}", + "body": "{\n \"_embedded\" : {\n \"meshCommunications\" : [ {\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications?communicationDefinitionUuid=a6e2c891-4051-4193-9c45-ea906be4e3f5&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 } ] @@ -1535,7 +1535,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\": \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\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\": \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", "urlencoded": [ ] @@ -1568,7 +1568,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\": \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\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\": \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\": \"meshCommunicationDefinition\"\n }\n }\n}", "urlencoded": [ ] @@ -1584,7 +1584,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n}", "code": 201 } ] @@ -1723,15 +1723,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshEventLogs\" : [ {\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4e6a2f31-0a28-424e-a0ff-f656771a9f56\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/4e6a2f31-0a28-424e-a0ff-f656771a9f56\"\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\" : \"5763d75d-5556-4986-b18e-42a3efcb62a9\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/5763d75d-5556-4986-b18e-42a3efcb62a9\"\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 } ] }, { - "id": "meshLandingZonePost_azure", + "id": "meshLandingZoneList", "name": "/api/meshobjects/meshlandingzones", - "description": "Create a new meshLandingZone for azure platform\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "List all meshLandingZones with pagination support. Disabled meshLandingZones are included in the response.\n\n**Note**: the meshLandingZone endpoint is still experimental and in preview mode, which means it is\nsubject to change and we are planning to introduce a new version without support for backwards\ncompatibility, meaning, the preview version will disappear without prior warning! If this is not\nacceptable, please wait until the final meshLandingZone endpoints are announced in the release notes.\nFrom then on, we will provide backwards-compatible landingzone endpoints, meaning, once new versions\nare introduced, you can continue to use older versions by setting the correct `Accept` header.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -1742,13 +1742,98 @@ "url": { "host": "{{baseUrl}}", "path": "/api/meshobjects/meshlandingzones", + "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/meshlandingzones" }, - "method": "POST", + "method": "GET", "header": [ { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json;charset=UTF-8", + "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." + } + ] + }, + "response": [ + { + "id": "meshLandingZoneList", + "name": "meshLandingZoneList", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshlandingzones", + "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/meshlandingzones" + }, + "method": "GET", + "header": [ + { + "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." + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\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\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "code": 200 + } + ] + }, + { + "id": "meshLandingZonePost_azure", + "name": "/api/meshobjects/meshlandingzones", + "description": "Create a new meshLandingZone for azure platform\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshlandingzones", + "raw": "{{baseUrl}}/api/meshobjects/meshlandingzones" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json;charset=UTF-8", "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." }, @@ -1761,7 +1846,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\" : \"1473de8c-d850-44f4-91c4-7dfeeff29de4\",\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 }\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\" : \"66291c52-77ab-43ce-b7ae-a9e133879b95\",\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 }\n}", "urlencoded": [ ] @@ -1794,7 +1879,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\" : \"1473de8c-d850-44f4-91c4-7dfeeff29de4\",\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 }\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\" : \"66291c52-77ab-43ce-b7ae-a9e133879b95\",\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 }\n}", "urlencoded": [ ] @@ -1810,12 +1895,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\" : \"1473de8c-d850-44f4-91c4-7dfeeff29de4\",\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 },\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-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\" : \"66291c52-77ab-43ce-b7ae-a9e133879b95\",\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 },\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": "meshLandingZonePost_kubernetes", - "name": "meshLandingZonePost_kubernetes", + "id": "meshLandingZonePost_openshift", + "name": "meshLandingZonePost_openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -1839,7 +1924,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\" : \"7f44a554-5e33-42e6-8417-23864ff25917\",\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 }\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\" : \"a4db927e-bbb1-4544-a766-f5624243fb16\",\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 }\n}", "urlencoded": [ ] @@ -1855,12 +1940,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\" : \"7f44a554-5e33-42e6-8417-23864ff25917\",\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 },\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\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"a4db927e-bbb1-4544-a766-f5624243fb16\",\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 },\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": "meshLandingZonePost_aws", - "name": "meshLandingZonePost_aws", + "id": "meshLandingZonePost_gcp", + "name": "meshLandingZonePost_gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -1884,7 +1969,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\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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 }\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\" : \"922448ae-db49-4a23-b505-fd53e4896b93\",\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 }\n}", "urlencoded": [ ] @@ -1900,12 +1985,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\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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 },\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\" : \"A new gcp landing zone for testing\",\n \"displayName\" : \"New Landing Zone gcp\",\n \"platformRef\" : {\n \"uuid\" : \"922448ae-db49-4a23-b505-fd53e4896b93\",\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 },\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 }, { - "id": "meshLandingZonePost_aks", - "name": "meshLandingZonePost_aks", + "id": "meshLandingZonePost_kubernetes", + "name": "meshLandingZonePost_kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -1929,7 +2014,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\" : \"694cca0d-e378-4368-9e82-b863d1e33256\",\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 }\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\" : \"0904061e-3de8-4756-ace0-28ba53223664\",\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 }\n}", "urlencoded": [ ] @@ -1945,12 +2030,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\" : \"694cca0d-e378-4368-9e82-b863d1e33256\",\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 },\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\" : \"A new kubernetes landing zone for testing\",\n \"displayName\" : \"New Landing Zone kubernetes\",\n \"platformRef\" : {\n \"uuid\" : \"0904061e-3de8-4756-ace0-28ba53223664\",\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 },\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": "meshLandingZonePost_gcp", - "name": "meshLandingZonePost_gcp", + "id": "meshLandingZonePost_azurerg", + "name": "meshLandingZonePost_azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -1974,7 +2059,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\" : \"33b130b4-a450-4310-bd80-f9a448ee932e\",\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 }\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\" : \"941e0fa6-b112-4ba1-8d38-a63957364d8f\",\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 }\n}", "urlencoded": [ ] @@ -1990,12 +2075,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\" : \"33b130b4-a450-4310-bd80-f9a448ee932e\",\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 },\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-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\" : \"941e0fa6-b112-4ba1-8d38-a63957364d8f\",\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 },\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": "meshLandingZonePost_openshift", - "name": "meshLandingZonePost_openshift", + "id": "meshLandingZonePost_aks", + "name": "meshLandingZonePost_aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2019,7 +2104,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\" : \"c4d0e00d-d4ba-4314-9a8d-82e297b5f5bc\",\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 }\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\" : \"bce30989-5ecc-411e-bdfb-669062cc66b6\",\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 }\n}", "urlencoded": [ ] @@ -2035,12 +2120,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\" : \"A new openshift landing zone for testing\",\n \"displayName\" : \"New Landing Zone openshift\",\n \"platformRef\" : {\n \"uuid\" : \"c4d0e00d-d4ba-4314-9a8d-82e297b5f5bc\",\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 },\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-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\" : \"bce30989-5ecc-411e-bdfb-669062cc66b6\",\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 },\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": "meshLandingZonePost_azurerg", - "name": "meshLandingZonePost_azurerg", + "id": "meshLandingZonePost_aws", + "name": "meshLandingZonePost_aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2064,7 +2149,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\" : \"fa021c63-e28a-4db6-b283-0011a066f27a\",\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 }\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\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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 }\n}", "urlencoded": [ ] @@ -2080,96 +2165,11 @@ "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\" : \"fa021c63-e28a-4db6-b283-0011a066f27a\",\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 },\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-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\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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 },\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": "meshLandingZoneList", - "name": "/api/meshobjects/meshlandingzones", - "description": "List all meshLandingZones with pagination support. Disabled meshLandingZones are included in the response.\n\n**Note**: the meshLandingZone endpoint is still experimental and in preview mode, which means it is\nsubject to change and we are planning to introduce a new version without support for backwards\ncompatibility, meaning, the preview version will disappear without prior warning! If this is not\nacceptable, please wait until the final meshLandingZone endpoints are announced in the release notes.\nFrom then on, we will provide backwards-compatible landingzone endpoints, meaning, once new versions\nare introduced, you can continue to use older versions by setting the correct `Accept` header.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshlandingzones", - "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/meshlandingzones" - }, - "method": "GET", - "header": [ - { - "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." - } - ] - }, - "response": [ - { - "id": "meshLandingZoneList", - "name": "meshLandingZoneList", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshlandingzones", - "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/meshlandingzones" - }, - "method": "GET", - "header": [ - { - "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." - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json", - "disabled": false - } - ], - "cookie": [ - - ], - "body": "{\n \"_embedded\" : {\n \"meshLandingZones\" : [ {\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\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\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", - "code": 200 - } - ] - }, { "id": "meshPaymentMethodListV2", "name": "/api/meshobjects/meshpaymentmethods", @@ -2353,9 +2353,9 @@ ] }, { - "id": "meshPlatformV2-Post-openshift", + "id": "meshPlatformListV1", "name": "/api/meshobjects/meshplatforms", - "description": "Create a new platform with openshift configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "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": [ ], @@ -2366,63 +2366,120 @@ "url": { "host": "{{baseUrl}}", "path": "/api/meshobjects/meshplatforms", + "query": [ + { + "key": "searchTerm", + "disabled": false, + "description": "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." + }, + { + "key": "page", + "disabled": false, + "description": "Page number for pagination (0-indexed)." + }, + { + "key": "size", + "disabled": false, + "description": "Number of items per page." + } + ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms" }, - "method": "POST", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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 \"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 }", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshPlatformV2-Post-openshift", - "name": "meshPlatformV2-Post-openshift", + "id": "meshPlatformListV1", + "name": "meshPlatformListV1", "originalRequest": { "url": { "host": "{{baseUrl}}", "path": "/api/meshobjects/meshplatforms", + "query": [ + { + "key": "searchTerm", + "disabled": false, + "description": "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." + }, + { + "key": "page", + "disabled": false, + "description": "Page number for pagination (0-indexed)." + }, + { + "key": "size", + "disabled": false, + "description": "Number of items per page." + } + ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms" }, - "method": "POST", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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 \"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 }", - "urlencoded": [ - - ] + ] + }, + "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\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\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\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\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": "meshPlatformListV2", + "name": "meshPlatformListV2", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshplatforms", + "query": [ + { + "key": "searchTerm", + "disabled": false, + "description": "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." + }, + { + "key": "page", + "disabled": false, + "description": "Page number for pagination (0-indexed)." + }, + { + "key": "size", + "disabled": false, + "description": "Number of items per page." + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshplatforms" + }, + "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": [ { @@ -2434,12 +2491,54 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", - "code": 201 + "body": "{\n \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\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\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\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": "meshPlatformV2-Post-azurerg", + "name": "/api/meshobjects/meshplatforms", + "description": "Create a new platform with azurerg configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshplatforms", + "raw": "{{baseUrl}}/api/meshobjects/meshplatforms" }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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 \"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}", + "urlencoded": [ + + ] + } + }, + "response": [ { - "id": "meshPlatformV2-Post-gcp", - "name": "meshPlatformV2-Post-gcp", + "id": "meshPlatformV2-Post-azurerg", + "name": "meshPlatformV2-Post-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2463,7 +2562,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\": \"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}", "urlencoded": [ ] @@ -2479,12 +2578,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV2-Post-kubernetes", - "name": "meshPlatformV2-Post-kubernetes", + "id": "meshPlatformV1-Post-aws", + "name": "meshPlatformV1-Post-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2495,20 +2594,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", "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\": \"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}", "urlencoded": [ ] @@ -2517,19 +2616,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\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV1-Post-azurerg", - "name": "meshPlatformV1-Post-azurerg", + "id": "meshPlatformV1-Post-azure", + "name": "meshPlatformV1-Post-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2553,7 +2652,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\": \"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}", "urlencoded": [ ] @@ -2569,12 +2668,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV1-Post-aks", - "name": "meshPlatformV1-Post-aks", + "id": "meshPlatformV1-Post-gcp", + "name": "meshPlatformV1-Post-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2598,7 +2697,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\": \"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}", "urlencoded": [ ] @@ -2614,12 +2713,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV1-Post-gcp", - "name": "meshPlatformV1-Post-gcp", + "id": "meshPlatformV1-Post-kubernetes", + "name": "meshPlatformV1-Post-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2643,7 +2742,7 @@ ], "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\": \"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}", "urlencoded": [ ] @@ -2659,12 +2758,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV2-Post-azure", - "name": "meshPlatformV2-Post-azure", + "id": "meshPlatformV2-Post-kubernetes", + "name": "meshPlatformV2-Post-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2688,7 +2787,7 @@ ], "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\": \"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 }", "urlencoded": [ ] @@ -2704,12 +2803,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV2-Post-aks", - "name": "meshPlatformV2-Post-aks", + "id": "meshPlatformV1-Post-aks", + "name": "meshPlatformV1-Post-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2720,20 +2819,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", "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\": \"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\": \"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}", "urlencoded": [ ] @@ -2742,19 +2841,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\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV2-Post-azurerg", - "name": "meshPlatformV2-Post-azurerg", + "id": "meshPlatformV2-Post-aws", + "name": "meshPlatformV2-Post-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2778,7 +2877,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\": \"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}", "urlencoded": [ ] @@ -2794,12 +2893,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV1-Post-aws", - "name": "meshPlatformV1-Post-aws", + "id": "meshPlatformV2-Post-openshift", + "name": "meshPlatformV2-Post-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2810,20 +2909,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", "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\": \"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 }", "urlencoded": [ ] @@ -2832,19 +2931,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\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV2-Post-aws", - "name": "meshPlatformV2-Post-aws", + "id": "meshPlatformV2-Post-aks", + "name": "meshPlatformV2-Post-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2868,7 +2967,7 @@ ], "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\": \"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 }", "urlencoded": [ ] @@ -2884,12 +2983,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV1-Post-azure", - "name": "meshPlatformV1-Post-azure", + "id": "meshPlatformV1-Post-openshift", + "name": "meshPlatformV1-Post-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2913,7 +3012,7 @@ ], "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\": \"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}", "urlencoded": [ ] @@ -2929,12 +3028,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV1-Post-kubernetes", - "name": "meshPlatformV1-Post-kubernetes", + "id": "meshPlatformV2-Post-gcp", + "name": "meshPlatformV2-Post-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -2945,20 +3044,20 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", "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\": \"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}", "urlencoded": [ ] @@ -2967,19 +3066,64 @@ "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\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 }, { - "id": "meshPlatformV1-Post-openshift", - "name": "meshPlatformV1-Post-openshift", + "id": "meshPlatformV2-Post-azure", + "name": "meshPlatformV2-Post-azure", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshplatforms", + "raw": "{{baseUrl}}/api/meshobjects/meshplatforms" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", + "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 \"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}", + "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\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", + "code": 201 + }, + { + "id": "meshPlatformV1-Post-azurerg", + "name": "meshPlatformV1-Post-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -3003,7 +3147,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\": \"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}", "urlencoded": [ ] @@ -3019,159 +3163,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 201 } ] }, { - "id": "meshPlatformListV2", - "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": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshplatforms", - "query": [ - { - "key": "searchTerm", - "disabled": false, - "description": "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." - }, - { - "key": "page", - "disabled": false, - "description": "Page number for pagination (0-indexed)." - }, - { - "key": "size", - "disabled": false, - "description": "Number of items per page." - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshplatforms" - }, - "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": "meshPlatformListV2", - "name": "meshPlatformListV2", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshplatforms", - "query": [ - { - "key": "searchTerm", - "disabled": false, - "description": "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." - }, - { - "key": "page", - "disabled": false, - "description": "Page number for pagination (0-indexed)." - }, - { - "key": "size", - "disabled": false, - "description": "Number of items per page." - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshplatforms" - }, - "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 \"_embedded\" : {\n \"meshPlatforms\" : [ {\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\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": "meshPlatformListV1", - "name": "meshPlatformListV1", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshplatforms", - "query": [ - { - "key": "searchTerm", - "disabled": false, - "description": "Optional search term to filter for ownedByWorkspace=abc. This is the only filter option at the moment." - }, - { - "key": "page", - "disabled": false, - "description": "Page number for pagination (0-indexed)." - }, - { - "key": "size", - "disabled": false, - "description": "Number of items per page." - } - ], - "raw": "{{baseUrl}}/api/meshobjects/meshplatforms" - }, - "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\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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": "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.", + "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": [ ], @@ -3373,7 +3373,7 @@ ], "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\" : \"vfaf6mpdsv1\"\n }\n}", + "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\" : \"gd4r3mpdsv1\"\n }\n}", "urlencoded": [ ] @@ -3406,7 +3406,7 @@ ], "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\" : \"vfaf6mpdsv1\"\n }\n}", + "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\" : \"gd4r3mpdsv1\"\n }\n}", "urlencoded": [ ] @@ -3422,7 +3422,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\n \"createdOn\" : \"2025-11-12T13:02:56.045823712Z\"\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/vfaf6mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-3\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\n \"createdOn\" : \"2025-11-12T13:10:50.638289609Z\"\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/gd4r3mpdsv1.test-project-3\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-3\"\n }\n }\n}", "code": 201 } ] @@ -3537,94 +3537,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=vfaf6mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&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": "meshServiceInstancePost", - "name": "/api/meshobjects/meshserviceinstances", - "description": "Create a Service Instance\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "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;charset=UTF-8", - "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\",\n \"serviceId\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", - "urlencoded": [ - - ] - } - }, - "response": [ - { - "id": "meshServiceInstancePost", - "name": "meshServiceInstancePost", - "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;charset=UTF-8", - "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\",\n \"serviceId\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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\",\n \"serviceId\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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 \"meshProjects\" : [ {\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"first\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=0&size=1\"\n },\n \"next\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n },\n \"last\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojects?workspaceIdentifier=gd4r3mpdsv1&paymentIdentifier=test-payment&state=ACTIVE&page=1&size=1\"\n }\n },\n \"page\" : {\n \"size\" : 1,\n \"totalElements\" : 2,\n \"totalPages\" : 2,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -3759,15 +3672,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshServiceInstances\" : [ {\n \"kind\" : \"meshServiceInstance\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"ownedByProject\" : \"vfaf6mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"vfaf6mtdg1\",\n \"instanceId\" : \"vfaf6mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mtdg12\",\n \"serviceId\" : \"vfaf6mtdg5\",\n \"planId\" : \"vfaf6mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/vfaf6mtdg9\"\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\" : \"gd4r3mtdg11\",\n \"ownedByWorkspace\" : \"my-mobile-app-team\",\n \"marketplaceIdentifier\" : \"gd4r3mtdg1\",\n \"instanceId\" : \"gd4r3mtdg9\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mtdg12\",\n \"serviceId\" : \"gd4r3mtdg5\",\n \"planId\" : \"gd4r3mtdg7\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/gd4r3mtdg9\"\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": "meshTagDefinitionPost", - "name": "/api/meshobjects/meshtagdefinitions", - "description": "Create a new meshTagDefinition\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": [ ], @@ -3777,26 +3690,27 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtagdefinitions", - "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions" + "path": "/api/meshobjects/meshserviceinstances", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances" }, "method": "POST", "header": [ { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json", + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", "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": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json` for this version of the endpoint." }, { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json;charset=UTF-8", - "disabled": false + "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\": \"v1\",\n \"kind\": \"meshTagDefinition\",\n \"metadata\": {\n \"name\": \"meshProject.environment\"\n },\n \"spec\": {\n \"targetKind\": \"meshProject\",\n \"key\": \"environment\",\n \"valueType\": {\n \"singleSelect\": {\n \"options\": [ \"dev\", \"test\", \"qa\", \"production\" ],\n \"defaultValue\": \"dev\"\n }\n },\n \"description\": \"The environment the project runs in.\",\n \"displayName\": \"Environment\",\n \"sortOrder\": 9999,\n \"mandatory\": true,\n \"immutable\": false,\n \"restricted\": false\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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded": [ ] @@ -3804,13 +3718,99 @@ }, "response": [ { - "id": "meshTagDefinitionPost", - "name": "meshTagDefinitionPost", + "id": "meshServiceInstancePost", + "name": "meshServiceInstancePost", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtagdefinitions", - "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions" + "path": "/api/meshobjects/meshserviceinstances", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json;charset=UTF-8", + "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\",\n \"serviceId\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\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\",\n \"serviceId\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "code": 200 + } + ] + }, + { + "id": "meshTagDefinitionPost", + "name": "/api/meshobjects/meshtagdefinitions", + "description": "Create a new meshTagDefinition\n\n**Authentication:** This endpoint supports API Key authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshtagdefinitions", + "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions" + }, + "method": "POST", + "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;charset=UTF-8", + "disabled": false + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"apiVersion\": \"v1\",\n \"kind\": \"meshTagDefinition\",\n \"metadata\": {\n \"name\": \"meshProject.environment\"\n },\n \"spec\": {\n \"targetKind\": \"meshProject\",\n \"key\": \"environment\",\n \"valueType\": {\n \"singleSelect\": {\n \"options\": [ \"dev\", \"test\", \"qa\", \"production\" ],\n \"defaultValue\": \"dev\"\n }\n },\n \"description\": \"The environment the project runs in.\",\n \"displayName\": \"Environment\",\n \"sortOrder\": 9999,\n \"mandatory\": true,\n \"immutable\": false,\n \"restricted\": false\n }\n}", + "urlencoded": [ + + ] + } + }, + "response": [ + { + "id": "meshTagDefinitionPost", + "name": "meshTagDefinitionPost", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshtagdefinitions", + "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions" }, "method": "POST", "header": [ @@ -3934,6 +3934,138 @@ } ] }, + { + "id": "meshTenantPostV4", + "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.v4-preview.hal+json;charset=UTF-8", + "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": [ + + ] + } + }, + "response": [ + { + "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;charset=UTF-8", + "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\" : \"177883e6-7665-4b40-8a5e-2194adcbf1bd\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:56.057514896Z\"\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/177883e6-7665-4b40-8a5e-2194adcbf1bd\"\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;charset=UTF-8", + "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": "meshTenantListV3", "name": "/api/meshobjects/meshtenants", @@ -4074,7 +4206,7 @@ "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-11-13T13:03:00.403298724Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"ae2aff8b-35df-4eea-a2dd-31f50ad5809a\",\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\" : \"v3\",\n \"metadata\" : {\n \"ownedByProject\" : \"test-project\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"platformIdentifier\" : \"aws.aws-meshstack-dev\",\n \"deletedOn\" : \"2025-11-13T13:10:54.471986094Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"bad4394e-82e7-4436-a922-054bae1870cb\",\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 }, { @@ -4153,15 +4285,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshTenants\" : [ {\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"c2aad318-5e12-4549-8d46-8c02c573d411\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.412110616Z\"\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/c2aad318-5e12-4549-8d46-8c02c573d411\"\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\" : \"9171b172-2310-409b-a273-885854863e18\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.406156546Z\"\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/9171b172-2310-409b-a273-885854863e18\"\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\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"f1eac5d5-6de4-46d4-815e-fbd5519d5e21\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.413523462Z\"\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/f1eac5d5-6de4-46d4-815e-fbd5519d5e21\"\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\" : \"5277909b-aa81-4464-b403-4a02903ed180\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.408177053Z\"\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/5277909b-aa81-4464-b403-4a02903ed180\"\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": "meshTenantPostV4", - "name": "/api/meshobjects/meshtenants", - "description": "Create a new meshTenant.\n\n**Authentication:** This endpoint supports API Key authentication.", + "id": "meshUserV2Post", + "name": "/api/meshobjects/meshusers", + "description": "Create a new meshUser.\n\nThis endpoint is only available when SCIM provisioning is disabled for this meshStack and will\notherwise reject all requests. We recommend creating meshUsers using SCIM provisioning from an\nauthoritative IAM system like Entra Id. As an alternative you can provision users via\nmeshObject API using this endpoint.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -4171,27 +4303,20 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtenants", - "raw": "{{baseUrl}}/api/meshobjects/meshtenants" + "path": "/api/meshobjects/meshusers", + "raw": "{{baseUrl}}/api/meshobjects/meshusers" }, "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json;charset=UTF-8", - "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." + "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8", + "disabled": false } ], "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}", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"new\"\n },\n \"spec\": {\n \"email\": \"new@example.com\",\n \"euid\": \"new123\",\n \"firstName\": \"New\",\n \"lastName\": \"User\",\n \"tags\": {}\n }\n}", "urlencoded": [ ] @@ -4199,77 +4324,25 @@ }, "response": [ { - "id": "meshTenantPostV4", - "name": "meshTenantPostV4", + "id": "meshUserV2Post", + "name": "meshUserV2Post", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtenants", - "raw": "{{baseUrl}}/api/meshobjects/meshtenants" + "path": "/api/meshobjects/meshusers", + "raw": "{{baseUrl}}/api/meshobjects/meshusers" }, "method": "POST", "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json;charset=UTF-8", - "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\" : \"d89142f5-6ee5-434c-9b85-d21365192b38\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:02.088362573Z\"\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/d89142f5-6ee5-434c-9b85-d21365192b38\"\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;charset=UTF-8", - "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." + "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8", + "disabled": false } ], "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} ", + "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"new\"\n },\n \"spec\": {\n \"email\": \"new@example.com\",\n \"euid\": \"new123\",\n \"firstName\": \"New\",\n \"lastName\": \"User\",\n \"tags\": {}\n }\n}", "urlencoded": [ ] @@ -4278,14 +4351,14 @@ "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshtenant.v3.hal+json", + "value": "application/vnd.meshcloud.api.meshuser.v2.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}", + "body": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\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 } ] @@ -4454,84 +4527,11 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshUsers\" : [ {\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"b54e6540-5a3b-4023-90ed-16af4beb7f07\",\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 \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"95269413-3e80-46f3-9d9c-277c3b84c55c\",\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 } ] }, - { - "id": "meshUserV2Post", - "name": "/api/meshobjects/meshusers", - "description": "Create a new meshUser.\n\nThis endpoint is only available when SCIM provisioning is disabled for this meshStack and will\notherwise reject all requests. We recommend creating meshUsers using SCIM provisioning from an\nauthoritative IAM system like Entra Id. As an alternative you can provision users via\nmeshObject API using this endpoint.\n\n**Authentication:** This endpoint supports API Key authentication.", - "variable": [ - - ], - "event": [ - - ], - "request": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshusers", - "raw": "{{baseUrl}}/api/meshobjects/meshusers" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8", - "disabled": false - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"new\"\n },\n \"spec\": {\n \"email\": \"new@example.com\",\n \"euid\": \"new123\",\n \"firstName\": \"New\",\n \"lastName\": \"User\",\n \"tags\": {}\n }\n}", - "urlencoded": [ - - ] - } - }, - "response": [ - { - "id": "meshUserV2Post", - "name": "meshUserV2Post", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshusers", - "raw": "{{baseUrl}}/api/meshobjects/meshusers" - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json;charset=UTF-8", - "disabled": false - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"apiVersion\": \"v2\",\n \"kind\": \"meshUser\",\n \"metadata\": {\n \"name\": \"new\"\n },\n \"spec\": {\n \"email\": \"new@example.com\",\n \"euid\": \"new123\",\n \"firstName\": \"New\",\n \"lastName\": \"User\",\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 \"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 - } - ] - }, { "id": "meshWorkspacePost", "name": "/api/meshobjects/meshworkspaces", @@ -4614,7 +4614,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-11-12T13:03:06.045167397Z\"\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-11-12T13:10:59.778096093Z\"\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 } ] @@ -4699,7 +4699,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshWorkspaces\" : [ {\n \"kind\" : \"meshWorkspace\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"admin-customer\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:01:43Z\"\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-11-12T13:01:43Z\"\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-11-12T13:01:43Z\"\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-11-12T13:09: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-11-12T13:09: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-11-12T13:09: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}", "code": 200 } ] @@ -4915,7 +4915,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\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\": \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\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": [ ] @@ -4948,7 +4948,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"apiVersion\" : \"v1-preview\",\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"metadata\" : {\n \"uuid\": \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\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\": \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\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": [ ] @@ -4964,7 +4964,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"43e4dcc0-412e-4a1f-a01f-7992ded77491\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:02:30.191238834Z\"\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\" : \"8785c693-9607-4528-83c6-61835f5e366b\",\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/43e4dcc0-412e-4a1f-a01f-7992ded77491\"\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=43e4dcc0-412e-4a1f-a01f-7992ded77491\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshBuildingBlockDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4c371e05-18d4-47c2-9438-f71e38e7f509\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"tags\" : { },\n \"createdOn\" : \"2025-11-12T13:10:25.254005335Z\"\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\" : \"0679e122-1f5f-4bda-891f-b73ad126ea4b\",\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/4c371e05-18d4-47c2-9438-f71e38e7f509\"\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=4c371e05-18d4-47c2-9438-f71e38e7f509\"\n }\n }\n}", "code": 200 } ] @@ -5094,7 +5094,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-11-12T13:02:29.354557099Z\"\n },\n \"spec\" : {\n \"displayName\" : \"vfaf6mbbdds1\",\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\" : \"8c972db2-5610-4be8-866b-e52a3f3f9a9b\",\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-11-12T13:10:24.411669789Z\"\n },\n \"spec\" : {\n \"displayName\" : \"gd4r3mbbdds1\",\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\" : \"b2fbf2ac-7b10-405c-b274-4ebbd6bc194d\",\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 } ] @@ -5246,7 +5246,7 @@ "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-11-12T13:02:34.079186673Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"28e4a02d-3094-40f5-8745-10220666803d\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"86984aa4-76f8-471a-9718-d53fcb72ca7e\"\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}", + "body": "{\n \"kind\" : \"meshBuildingBlock\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"uuid\" : \"5646eafe-5d56-43e5-84fe-329bb050d720\",\n \"ownedByWorkspace\" : \"my-workspace\",\n \"createdOn\" : \"2025-11-12T13:10:29.072602692Z\"\n },\n \"spec\" : {\n \"buildingBlockDefinitionVersionRef\" : {\n \"uuid\" : \"e28c610c-6de3-4a61-a3da-376e7823e989\",\n \"kind\" : \"meshBuildingBlockDefinitionVersion\"\n },\n \"targetRef\" : {\n \"kind\" : \"meshTenant\",\n \"uuid\" : \"cec7f7ea-d8f5-43a1-ab03-29a65b5be745\"\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 }, { @@ -5286,7 +5286,7 @@ "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-11-12T13:02:31.059707907Z\"\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-11-12T13:10:26.064176135Z\"\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 } ] @@ -5345,9 +5345,9 @@ ] }, { - "id": "meshCommunicationDefinitionPut", + "id": "meshCommunicationDefinitionDelete", "name": "/api/meshobjects/meshcommunicationdefinitions/{uuid}", - "description": "Update an existing meshCommunicationDefinition with new communication details\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": [ ], @@ -5368,33 +5368,20 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions/:uuid" }, - "method": "PUT", + "method": "DELETE", "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;charset=UTF-8", - "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\": \"my-new-title\",\n \"message\": \"my-new-message\",\n \"dueDate\": \"2099-05-31\",\n \"type\": \"ACTION_REQUIRED\"\n }\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshCommunicationDefinitionPut", - "name": "meshCommunicationDefinitionPut", + "id": "meshCommunicationDefinitionDelete", + "name": "meshCommunicationDefinitionDelete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -5409,41 +5396,20 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions/:uuid" }, - "method": "PUT", + "method": "DELETE", "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;charset=UTF-8", - "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\": \"my-new-title\",\n \"message\": \"my-new-message\",\n \"dueDate\": \"2099-05-31\",\n \"type\": \"ACTION_REQUIRED\"\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\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n}", - "code": 200 + "code": 204 } ] }, @@ -5519,15 +5485,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"d3b9c24a-253b-4792-9c20-f2ef62791b18\"\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-11-13\",\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/d3b9c24a-253b-4792-9c20-f2ef62791b18\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshCommunicationDefinition\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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-11-13\",\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshCommunicationDefinitionDelete", + "id": "meshCommunicationDefinitionPut", "name": "/api/meshobjects/meshcommunicationdefinitions/{uuid}", - "description": "Delete a specific meshCommunicationDefinition by its unique identifier\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Update an existing meshCommunicationDefinition with new communication details\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -5548,20 +5514,33 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions/:uuid" }, - "method": "DELETE", + "method": "PUT", "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;charset=UTF-8", + "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\": \"my-new-title\",\n \"message\": \"my-new-message\",\n \"dueDate\": \"2099-05-31\",\n \"type\": \"ACTION_REQUIRED\"\n }\n }\n}", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshCommunicationDefinitionDelete", - "name": "meshCommunicationDefinitionDelete", + "id": "meshCommunicationDefinitionPut", + "name": "meshCommunicationDefinitionPut", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -5576,27 +5555,48 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunicationdefinitions/:uuid" }, - "method": "DELETE", + "method": "PUT", "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;charset=UTF-8", + "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\": \"my-new-title\",\n \"message\": \"my-new-message\",\n \"dueDate\": \"2099-05-31\",\n \"type\": \"ACTION_REQUIRED\"\n }\n }\n}", + "urlencoded": [ + + ] + } }, + "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\" : \"37ea48eb-f017-48e8-94c0-25b12c1c860b\"\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/37ea48eb-f017-48e8-94c0-25b12c1c860b\"\n }\n }\n}", + "code": 200 } ] }, { - "id": "meshCommunicationDelete", + "id": "meshCommunication", "name": "/api/meshobjects/meshcommunications/{uuid}", - "description": "Delete a meshCommunication to remove it from the system\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Retrieve detailed information about a specific meshCommunication\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -5610,19 +5610,27 @@ "variable": [ { "key": "uuid", - "description": "The unique UUID of the meshCommunication.", + "description": "The UUID that uniquely identifies the meshCommunication.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunications/:uuid" }, - "method": "DELETE" + "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": "meshCommunicationDelete", - "name": "meshCommunicationDelete", + "id": "meshCommunication", + "name": "meshCommunication", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -5630,26 +5638,42 @@ "variable": [ { "key": "uuid", - "description": "The unique UUID of the meshCommunication.", + "description": "The UUID that uniquely identifies the meshCommunication.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunications/:uuid" }, - "method": "DELETE" - }, - "cookie": [ - - ], - "code": 204 + "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 \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"aec3a044-2264-4834-b401-82c4a867c1ca\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"a6e2c891-4051-4193-9c45-ea906be4e3f5\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/aec3a044-2264-4834-b401-82c4a867c1ca\"\n }\n }\n}", + "code": 200 } ] }, { - "id": "meshCommunication", + "id": "meshCommunicationDelete", "name": "/api/meshobjects/meshcommunications/{uuid}", - "description": "Retrieve detailed information about a specific meshCommunication\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Delete a meshCommunication to remove it from the system\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -5663,27 +5687,19 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the meshCommunication.", + "description": "The unique UUID of the meshCommunication.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunications/:uuid" }, - "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." - } - ] + "method": "DELETE" }, "response": [ { - "id": "meshCommunication", - "name": "meshCommunication", + "id": "meshCommunicationDelete", + "name": "meshCommunicationDelete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -5691,35 +5707,19 @@ "variable": [ { "key": "uuid", - "description": "The UUID that uniquely identifies the meshCommunication.", + "description": "The unique UUID of the meshCommunication.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshcommunications/:uuid" }, - "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." - } - ] + "method": "DELETE" }, - "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshcommunication.v1-preview.hal+json", - "disabled": false - } - ], "cookie": [ ], - "body": "{\n \"kind\" : \"meshCommunication\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"233049f6-0cfe-4288-a130-91ba2d768dbc\",\n \"ownedByWorkspace\" : \"my-workspace-identifier\"\n },\n \"spec\" : {\n \"targetMeshObjectRef\" : {\n \"kind\" : \"meshWorkspace\",\n \"name\" : \"my-workspace-identifier\"\n },\n \"communicationDefinitionRef\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"kind\" : \"meshCommunicationDefinition\"\n }\n },\n \"status\" : {\n \"resolutionStatus\" : \"OPEN\",\n \"meshCommunicationDefinition\" : {\n \"uuid\" : \"8da49f9f-3c72-46b4-adac-92637b5e6230\",\n \"title\" : \"Communication definition 1 Title\",\n \"dueDate\" : \"2025-11-13\",\n \"communicationType\" : \"ACTION_REQUIRED\"\n }\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshcommunications/233049f6-0cfe-4288-a130-91ba2d768dbc\"\n }\n }\n}", - "code": 200 + "code": 204 } ] }, @@ -5779,15 +5779,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"4e6a2f31-0a28-424e-a0ff-f656771a9f56\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/4e6a2f31-0a28-424e-a0ff-f656771a9f56\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshEventLog\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"uuid\" : \"5763d75d-5556-4986-b18e-42a3efcb62a9\",\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\" : \"john.doe@example.com\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/mesheventlogs/5763d75d-5556-4986-b18e-42a3efcb62a9\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshLandingZonePut", + "id": "meshLandingZone", "name": "/api/meshobjects/meshlandingzones/{identifier}", - "description": "Update an existing meshLandingZone by identifier. 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": [ ], @@ -5801,40 +5801,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;charset=UTF-8", - "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\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}", - "urlencoded": [ - - ] - } + ] }, "response": [ { - "id": "meshLandingZonePut", - "name": "meshLandingZonePut", + "id": "meshLandingZone", + "name": "meshLandingZone", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -5842,35 +5829,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;charset=UTF-8", - "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\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}", - "urlencoded": [ - - ] - } + ] }, "header": [ { @@ -5882,15 +5856,15 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated landing zone description\",\n \"displayName\" : \"Updated Landing Zone\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123123123\",\n \"awsEnrollAccount\" : false,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsRoleMappings\" : [ ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-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\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshLandingZone", + "id": "meshLandingZonePut", "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 by identifier. 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": [ ], @@ -5904,27 +5878,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;charset=UTF-8", + "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\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}", + "urlencoded": [ + + ] + } }, "response": [ { - "id": "meshLandingZone", - "name": "meshLandingZone", + "id": "meshLandingZonePut", + "name": "meshLandingZonePut", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -5932,22 +5919,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;charset=UTF-8", + "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\": \"test-landing-zone-aws\",\n \"tags\": {}\n },\n \"spec\": {\n \"identifier\": \"test-landing-zone-aws\",\n \"displayName\": \"Updated Landing Zone\",\n \"description\": \"An updated landing zone description\",\n \"platformRef\": {\n \"uuid\": \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\": 123123123,\n \"awsLambdaArn\": \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsEnrollAccount\": false,\n \"awsRoleMappings\": []\n }\n }\n }\n}", + "urlencoded": [ + + ] + } }, "header": [ { @@ -5959,7 +5959,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshLandingZone\",\n \"apiVersion\" : \"v1-preview\",\n \"metadata\" : {\n \"name\" : \"test-landing-zone-aws\",\n \"tags\" : {\n \"environment\" : [ \"dev\", \"qa\" ]\n }\n },\n \"spec\" : {\n \"description\" : \"my test landing zone for AWS\",\n \"displayName\" : \"test-landing-zone-aws\",\n \"platformRef\" : {\n \"uuid\" : \"00e39fb5-5e11-483a-bd55-51451983ae3b\",\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\" : \"123456789012\",\n \"awsEnrollAccount\" : false,\n \"awsRoleMappings\" : [ {\n \"projectRoleRef\" : {\n \"name\" : \"admin\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"PowerUserAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/PowerUserAccess\" ]\n }, {\n \"projectRoleRef\" : {\n \"name\" : \"reader\",\n \"kind\" : \"meshProjectRole\"\n },\n \"platformRole\" : \"ReadOnlyAccess\",\n \"policies\" : [ \"arn:aws:iam::aws:policy/ReadOnlyAccess\" ]\n } ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-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\" : \"test-landing-zone-aws\",\n \"tags\" : { }\n },\n \"spec\" : {\n \"description\" : \"An updated landing zone description\",\n \"displayName\" : \"Updated Landing Zone\",\n \"platformRef\" : {\n \"uuid\" : \"7684852e-ba7d-42dd-ad05-f06b3fbc6a7f\",\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\" : \"123123123\",\n \"awsEnrollAccount\" : false,\n \"awsLambdaArn\" : \"arn:aws:lambda:us-east-1:123456789012:function:test\",\n \"awsRoleMappings\" : [ ]\n }\n }\n },\n \"status\" : {\n \"disabled\" : false,\n \"restricted\" : false\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshlandingzones/test-landing-zone-aws\"\n },\n \"platformInstance\" : {\n \"href\" : \"https://mesh-backend-url/platformInstances/26\"\n }\n }\n}", "code": 200 } ] @@ -6034,9 +6034,9 @@ ] }, { - "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": [ ], @@ -6057,20 +6057,33 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods/:identifier" }, - "method": "DELETE", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json;charset=UTF-8", + "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}}", @@ -6085,27 +6098,48 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods/:identifier" }, - "method": "DELETE", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json;charset=UTF-8", + "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 } ] }, { - "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": [ ], @@ -6126,33 +6160,20 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods/:identifier" }, - "method": "PUT", + "method": "DELETE", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json;charset=UTF-8", - "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}}", @@ -6167,41 +6188,20 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshpaymentmethods/:identifier" }, - "method": "PUT", + "method": "DELETE", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshpaymentmethod.v2.hal+json;charset=UTF-8", - "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 } ] }, @@ -6267,9 +6267,9 @@ ] }, { - "id": "meshPlatformV2-Put-kubernetes", + "id": "meshPlatformV2-Get-openshift", "name": "/api/meshobjects/meshplatforms/{uuid}", - "description": "Update an existing platform with kubernetes configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Get a platform with openshift configuration. This example shows the complete response including all configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -6290,33 +6290,20 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json;charset=UTF-8", - "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\": \"adaf2c9c-71b6-4536-bc29-5cee827a9313\",\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": [ - - ] - } + ] }, "response": [ { - "id": "meshPlatformV2-Put-kubernetes", - "name": "meshPlatformV2-Put-kubernetes", + "id": "meshPlatformV2-Get-openshift", + "name": "meshPlatformV2-Get-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6331,28 +6318,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;charset=UTF-8", - "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\": \"adaf2c9c-71b6-4536-bc29-5cee827a9313\",\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": [ { @@ -6364,12 +6338,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"kubernetes-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Put-azure", - "name": "meshPlatformV1-Put-azure", + "id": "meshPlatformV1-Get-gcp", + "name": "meshPlatformV1-Get-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6384,28 +6358,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"333a1231-ee0b-4116-a676-d32d40ab5d9d\",\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": [ { @@ -6417,12 +6378,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Put-aks", - "name": "meshPlatformV1-Put-aks", + "id": "meshPlatformV1-Get-kubernetes", + "name": "meshPlatformV1-Get-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6437,28 +6398,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"32802469-eb0a-4262-9899-367675a4bb41\",\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": [ { @@ -6470,12 +6418,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Put-aws", - "name": "meshPlatformV2-Put-aws", + "id": "meshPlatformV1-Get-azure", + "name": "meshPlatformV1-Get-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6490,45 +6438,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;charset=UTF-8", - "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\": \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\",\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\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Put-gcp", - "name": "meshPlatformV2-Put-gcp", + "id": "meshPlatformV2-Get-aks", + "name": "meshPlatformV2-Get-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6543,28 +6478,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;charset=UTF-8", - "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\": \"dee79369-96c6-43f1-ad14-49a9e4cf4976\",\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": [ { @@ -6576,12 +6498,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Put-aws", - "name": "meshPlatformV1-Put-aws", + "id": "meshPlatformV2-Get-aws", + "name": "meshPlatformV2-Get-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6596,45 +6518,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\",\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", - "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\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Put-gcp", - "name": "meshPlatformV1-Put-gcp", + "id": "meshPlatformV1-Get-azurerg", + "name": "meshPlatformV1-Get-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6649,28 +6558,15 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\",\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": [ { @@ -6682,12 +6578,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Put-openshift", - "name": "meshPlatformV2-Put-openshift", + "id": "meshPlatformV1-Get-aks", + "name": "meshPlatformV1-Get-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6702,45 +6598,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;charset=UTF-8", - "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\": \"e19caf66-b020-4a81-bda3-d25783b60387\",\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\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\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\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Put-kubernetes", - "name": "meshPlatformV1-Put-kubernetes", + "id": "meshPlatformV2-Get-azure", + "name": "meshPlatformV2-Get-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6755,45 +6638,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"b8a40267-ce60-4494-b971-185519e1268e\",\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\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Put-azurerg", - "name": "meshPlatformV2-Put-azurerg", + "id": "meshPlatformV2-Get-kubernetes", + "name": "meshPlatformV2-Get-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6808,28 +6678,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;charset=UTF-8", - "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\": \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\",\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": [ { @@ -6841,12 +6698,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Put-azure", - "name": "meshPlatformV2-Put-azure", + "id": "meshPlatformV1-Get-aws", + "name": "meshPlatformV1-Get-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6861,45 +6718,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;charset=UTF-8", - "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\": \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\",\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", - "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\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Put-openshift", - "name": "meshPlatformV1-Put-openshift", + "id": "meshPlatformV2-Get-azurerg", + "name": "meshPlatformV2-Get-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6914,45 +6758,32 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"6784dd02-e591-4398-93a6-c69bf0f27783\",\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\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Put-aks", - "name": "meshPlatformV2-Put-aks", + "id": "meshPlatformV1-Get-openshift", + "name": "meshPlatformV1-Get-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -6967,45 +6798,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;charset=UTF-8", - "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\": \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\",\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": [ { "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\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Put-azurerg", - "name": "meshPlatformV1-Put-azurerg", + "id": "meshPlatformV2-Get-gcp", + "name": "meshPlatformV2-Get-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7020,48 +6838,35 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "PUT", + "method": "GET", "header": [ - { - "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", - "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\": \"14eaa869-732e-4137-bc88-bffd7c9b7755\",\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", - "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\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshPlatformV2-Get-azurerg", + "id": "meshPlatformV1-Put-azurerg", "name": "/api/meshobjects/meshplatforms/{uuid}", - "description": "Get a platform with azurerg configuration. This example shows the complete response including all configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Update an existing platform with azurerg configuration. This example shows all available configuration options for this platform type.\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -7082,20 +6887,33 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\",\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": [ + + ] + } }, "response": [ { - "id": "meshPlatformV2-Get-azurerg", - "name": "meshPlatformV2-Get-azurerg", + "id": "meshPlatformV1-Put-azurerg", + "name": "meshPlatformV1-Put-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7110,32 +6928,45 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\",\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", - "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\" : \"2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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/2b1f22b6-b089-4a47-9d30-f20c79ec43de\"\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\" : \"56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\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/56601ce1-a936-41a8-a3fc-3a400b59c8ed\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Get-kubernetes", - "name": "meshPlatformV2-Get-kubernetes", + "id": "meshPlatformV1-Put-azure", + "name": "meshPlatformV1-Put-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7150,32 +6981,45 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"8341e5f2-e538-4866-8308-0200795e9301\",\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": [ { "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\" : \"adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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/adaf2c9c-71b6-4536-bc29-5cee827a9313\"\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\" : \"8341e5f2-e538-4866-8308-0200795e9301\"\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/8341e5f2-e538-4866-8308-0200795e9301\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Get-azure", - "name": "meshPlatformV1-Get-azure", + "id": "meshPlatformV2-Put-gcp", + "name": "meshPlatformV2-Put-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7190,32 +7034,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;charset=UTF-8", + "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\": \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\",\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.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\" : \"333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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/333a1231-ee0b-4116-a676-d32d40ab5d9d\"\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\" : \"e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\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/e22dde2c-dd90-4b84-b4c0-7ee0ce6f381f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Get-openshift", - "name": "meshPlatformV1-Get-openshift", + "id": "meshPlatformV1-Put-openshift", + "name": "meshPlatformV1-Put-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7230,15 +7087,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"2985b272-584a-4bc7-9326-60c03ca4e541\",\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": [ { @@ -7250,12 +7120,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"6784dd02-e591-4398-93a6-c69bf0f27783\"\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/6784dd02-e591-4398-93a6-c69bf0f27783\"\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\" : \"2985b272-584a-4bc7-9326-60c03ca4e541\"\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/2985b272-584a-4bc7-9326-60c03ca4e541\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Get-gcp", - "name": "meshPlatformV1-Get-gcp", + "id": "meshPlatformV1-Put-aks", + "name": "meshPlatformV1-Put-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7270,15 +7140,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\",\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": [ { @@ -7290,12 +7173,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"gcp-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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/8c8777dc-f219-4fe0-bf7e-61df4503d76f\"\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\" : \"90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\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/90c96f5c-6d52-41e6-a0e5-5c48f1905164\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Get-aks", - "name": "meshPlatformV1-Get-aks", + "id": "meshPlatformV1-Put-gcp", + "name": "meshPlatformV1-Put-gcp", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7310,15 +7193,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"42d99876-6452-42fa-b244-98fcfb18fc2a\",\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": [ { @@ -7330,12 +7226,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"32802469-eb0a-4262-9899-367675a4bb41\"\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/32802469-eb0a-4262-9899-367675a4bb41\"\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\" : \"42d99876-6452-42fa-b244-98fcfb18fc2a\"\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/42d99876-6452-42fa-b244-98fcfb18fc2a\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Get-openshift", - "name": "meshPlatformV2-Get-openshift", + "id": "meshPlatformV2-Put-aws", + "name": "meshPlatformV2-Put-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7350,15 +7246,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;charset=UTF-8", + "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\": \"02f90bc7-4b44-4faa-9913-9db76bd59461\",\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": [ { @@ -7370,12 +7279,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"openshift-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"e19caf66-b020-4a81-bda3-d25783b60387\"\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/e19caf66-b020-4a81-bda3-d25783b60387\"\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\" : \"02f90bc7-4b44-4faa-9913-9db76bd59461\"\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/02f90bc7-4b44-4faa-9913-9db76bd59461\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Get-azure", - "name": "meshPlatformV2-Get-azure", + "id": "meshPlatformV2-Put-kubernetes", + "name": "meshPlatformV2-Put-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7390,15 +7299,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;charset=UTF-8", + "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\": \"3504cb55-d7a3-43fe-9037-ba30590f59f3\",\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": [ { @@ -7410,12 +7332,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"azure-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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/30faf356-5f43-4dad-be9f-9ae1aaf190cd\"\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\" : \"3504cb55-d7a3-43fe-9037-ba30590f59f3\"\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/3504cb55-d7a3-43fe-9037-ba30590f59f3\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Get-aws", - "name": "meshPlatformV2-Get-aws", + "id": "meshPlatformV2-Put-openshift", + "name": "meshPlatformV2-Put-openshift", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7430,15 +7352,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;charset=UTF-8", + "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\": \"160afde9-729c-41b8-91e2-d107491eda3d\",\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": [ { @@ -7450,12 +7385,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aws-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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/bb300f50-2bd0-4d41-98d6-b174415d4cc2\"\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\" : \"160afde9-729c-41b8-91e2-d107491eda3d\"\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/160afde9-729c-41b8-91e2-d107491eda3d\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Get-kubernetes", - "name": "meshPlatformV1-Get-kubernetes", + "id": "meshPlatformV2-Put-azurerg", + "name": "meshPlatformV2-Put-azurerg", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7470,32 +7405,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;charset=UTF-8", + "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\": \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\",\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", - "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\" : \"b8a40267-ce60-4494-b971-185519e1268e\"\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/b8a40267-ce60-4494-b971-185519e1268e\"\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\" : \"bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\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/bc74f279-d91a-4cf6-bbd1-1be097c2bd6f\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Get-aks", - "name": "meshPlatformV2-Get-aks", + "id": "meshPlatformV2-Put-azure", + "name": "meshPlatformV2-Put-azure", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7510,15 +7458,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;charset=UTF-8", + "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\": \"6858108a-94ac-4565-97d9-cc8f996eacbd\",\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": [ { @@ -7530,12 +7491,12 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v2-preview\",\n \"metadata\" : {\n \"name\" : \"aks-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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/cbff6ef8-a6a4-49ea-8166-e6aca93dff70\"\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\" : \"6858108a-94ac-4565-97d9-cc8f996eacbd\"\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/6858108a-94ac-4565-97d9-cc8f996eacbd\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV2-Get-gcp", - "name": "meshPlatformV2-Get-gcp", + "id": "meshPlatformV1-Put-aws", + "name": "meshPlatformV1-Put-aws", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7550,32 +7511,45 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"ea98930b-e0e2-443a-be6b-1800c2235f9b\",\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", - "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\" : \"dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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/dee79369-96c6-43f1-ad14-49a9e4cf4976\"\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\" : \"ea98930b-e0e2-443a-be6b-1800c2235f9b\"\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/ea98930b-e0e2-443a-be6b-1800c2235f9b\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Get-aws", - "name": "meshPlatformV1-Get-aws", + "id": "meshPlatformV2-Put-aks", + "name": "meshPlatformV2-Put-aks", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7590,32 +7564,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;charset=UTF-8", + "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\": \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\",\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": [ { "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\" : \"9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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/9fd8f620-9873-48fd-b1ca-58c0e63147d3\"\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\" : \"7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\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/7dd83b14-3b38-4be2-a314-e2b12fa4008c\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 }, { - "id": "meshPlatformV1-Get-azurerg", - "name": "meshPlatformV1-Get-azurerg", + "id": "meshPlatformV1-Put-kubernetes", + "name": "meshPlatformV1-Put-kubernetes", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7630,15 +7617,28 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshplatforms/:uuid" }, - "method": "GET", + "method": "PUT", "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshplatform.v1.hal+json;charset=UTF-8", + "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\": \"d3c033de-ab2f-438c-8b6c-06658546a504\",\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": [ { @@ -7650,13 +7650,13 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshPlatform\",\n \"apiVersion\" : \"v1\",\n \"metadata\" : {\n \"name\" : \"azurerg-dev\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"uuid\" : \"14eaa869-732e-4137-bc88-bffd7c9b7755\"\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/14eaa869-732e-4137-bc88-bffd7c9b7755\"\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\" : \"d3c033de-ab2f-438c-8b6c-06658546a504\"\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/d3c033de-ab2f-438c-8b6c-06658546a504\"\n },\n \"owner\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspaces/test-workspace\"\n }\n }\n}", "code": 200 } ] }, { - "id": "meshPlatformDeleteV2", + "id": "meshPlatformDeleteV1", "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": [ @@ -7683,16 +7683,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": "meshPlatformDeleteV2", - "name": "meshPlatformDeleteV2", + "id": "meshPlatformDeleteV1", + "name": "meshPlatformDeleteV1", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7711,9 +7711,9 @@ "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." } ] }, @@ -7723,8 +7723,8 @@ "code": 204 }, { - "id": "meshPlatformDeleteV1", - "name": "meshPlatformDeleteV1", + "id": "meshPlatformDeleteV2", + "name": "meshPlatformDeleteV2", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -7743,9 +7743,9 @@ "header": [ { "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." } ] }, @@ -7923,7 +7923,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshProjectGroupBindings\" : [ {\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"a4a4c984-c6f7-47ee-9929-40e595aee823\"\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/a4a4c984-c6f7-47ee-9929-40e595aee823\"\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\" : \"5520e378-a482-47b0-821a-31ec3acc4cdf\"\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/5520e378-a482-47b0-821a-31ec3acc4cdf\"\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 } ] @@ -8095,15 +8095,15 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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/deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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 \"_embedded\" : {\n \"meshProjectUserBindings\" : [ {\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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/d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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": "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": [ ], @@ -8117,14 +8117,14 @@ "variable": [ { "key": "identifier", - "description": "The project role identifier.", + "description": "The identifier that uniquely identifies the meshProjectRole.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles/:identifier" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -8136,8 +8136,8 @@ }, "response": [ { - "id": "meshProjectRoleV1Delete", - "name": "meshProjectRoleV1Delete", + "id": "meshProjectRoleV1", + "name": "meshProjectRoleV1", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8145,14 +8145,14 @@ "variable": [ { "key": "identifier", - "description": "The project role identifier.", + "description": "The identifier that uniquely identifies the meshProjectRole.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles/:identifier" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -8162,17 +8162,25 @@ } ] }, + "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": [ ], @@ -8186,14 +8194,14 @@ "variable": [ { "key": "identifier", - "description": "The identifier that uniquely identifies the meshProjectRole.", + "description": "The project role identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles/:identifier" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -8205,8 +8213,8 @@ }, "response": [ { - "id": "meshProjectRoleV1", - "name": "meshProjectRoleV1", + "id": "meshProjectRoleV1Delete", + "name": "meshProjectRoleV1Delete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -8214,14 +8222,14 @@ "variable": [ { "key": "identifier", - "description": "The identifier that uniquely identifies the meshProjectRole.", + "description": "The project role identifier.", "system": false, "disabled": false } ], "raw": "{{baseUrl}}/api/meshobjects/meshprojectroles/:identifier" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -8231,18 +8239,10 @@ } ] }, - "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 } ] }, @@ -8390,7 +8390,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\" : \"vfaf6mpdsv1\"\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\" : \"gd4r3mpdsv1\"\n }\n}", "urlencoded": [ ] @@ -8431,7 +8431,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\" : \"vfaf6mpdsv1\"\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\" : \"gd4r3mpdsv1\"\n }\n}", "urlencoded": [ ] @@ -8447,7 +8447,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"vfaf6mpdsv1\",\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", "code": 200 } ] @@ -8475,139 +8475,41 @@ "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." - } - ] - }, - "response": [ - { - "id": "meshProjectV2", - "name": "meshProjectV2", - "originalRequest": { - "url": { - "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshprojects/:fullProjectIdentifier", - "raw": "{{baseUrl}}/api/meshobjects/meshprojects/:fullProjectIdentifier" - }, - "method": "GET", - "header": [ - { - "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." - } - ] - }, - "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\" : \"vfaf6mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-11-12T13:02:56.763868806Z\"\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/vfaf6mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=vfaf6mpdsv1&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=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=vfaf6mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", - "code": 200 - } - ] - }, - { - "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": "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": [ - - ], - "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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\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", + "id": "meshProjectV2", + "name": "meshProjectV2", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", - "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" + "path": "/api/meshobjects/meshprojects/:fullProjectIdentifier", + "raw": "{{baseUrl}}/api/meshobjects/meshprojects/:fullProjectIdentifier" }, - "method": "DELETE" + "method": "GET", + "header": [ + { + "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." + } + ] }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshproject.v2.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 202 + "body": "{\n \"kind\" : \"meshProject\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"test-project-1\",\n \"ownedByWorkspace\" : \"gd4r3mpdsv1\",\n \"createdOn\" : \"2024-01-01T00:00:00Z\",\n \"deletedOn\" : \"2025-11-12T13:10:51.354454077Z\"\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/gd4r3mpdsv1.test-project-1\"\n },\n \"meshtenants\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshtenants?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshusers\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshusers?workspaceIdentifier=gd4r3mpdsv1&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=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n },\n \"meshprojectgroupbindings\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshprojectbindings/groupbindings?workspaceIdentifier=gd4r3mpdsv1&projectIdentifier=test-project-1\"\n }\n }\n}", + "code": 200 } ] }, @@ -8644,7 +8546,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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded": [ ] @@ -8677,7 +8579,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\" : \"vfaf6mtdg24\",\n \"planId\" : \"vfaf6mtdg26\",\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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"alice@example.com\"\n }\n}", "urlencoded": [ ] @@ -8691,9 +8593,9 @@ ] }, { - "id": "meshTagDefinitionDelete", - "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.", + "id": "meshServiceInstanceDelete", + "name": "/api/meshobjects/meshserviceinstances/{serviceInstanceId}", + "description": "Delete a specific service instance\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -8703,59 +8605,88 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshtagdefinitions/:name", - "variable": [ - { - "key": "name", - "description": "The `metadata.name` of the meshTagDefinition.", - "system": false, - "disabled": false - } + "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": [ + ], - "raw": "{{baseUrl}}/api/meshobjects/meshtagdefinitions/:name" + "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": "DELETE", + "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.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.meshtagdefinition.v1.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." } ] }, "response": [ { - "id": "meshTagDefinitionDelete", - "name": "meshTagDefinitionDelete", + "id": "meshServiceInstanceGet", + "name": "meshServiceInstanceGet", "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" + "path": "/api/meshobjects/meshserviceinstances/:serviceInstanceId", + "raw": "{{baseUrl}}/api/meshobjects/meshserviceinstances/:serviceInstanceId" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshtagdefinition.v1.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.meshtagdefinition.v1.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." } ] }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshserviceinstance.v2.hal+json", + "disabled": false + } + ], "cookie": [ ], - "code": 204 + "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\" : \"gd4r3mtdg24\",\n \"planId\" : \"gd4r3mtdg26\",\n \"creator\" : \"Unknown\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshserviceinstances/serviceInstanceId\"\n }\n }\n}", + "code": 200 } ] }, @@ -8937,6 +8868,75 @@ } ] }, + { + "id": "meshTagDefinitionDelete", + "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.", + "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": "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." + } + ] + }, + "response": [ + { + "id": "meshTagDefinitionDelete", + "name": "meshTagDefinitionDelete", + "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": "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." + } + ] + }, + "cookie": [ + + ], + "code": 204 + } + ] + }, { "id": "meshTenantDeleteV3", "name": "/api/meshobjects/meshtenants/{identifier}", @@ -9076,7 +9076,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-11-13T13:03:00.403298724Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"ae2aff8b-35df-4eea-a2dd-31f50ad5809a\",\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-11-13T13:10:54.471986094Z\",\n \"assignedTags\" : { },\n \"tenantIdentifier\" : \"test-workspace.test-project.aws.aws-meshstack-dev\"\n },\n \"spec\" : {\n \"localId\" : \"bad4394e-82e7-4436-a922-054bae1870cb\",\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 } ] @@ -9220,7 +9220,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshTenant\",\n \"apiVersion\" : \"v4-preview\",\n \"metadata\" : {\n \"uuid\" : \"c2aad318-5e12-4549-8d46-8c02c573d411\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:03:01.412110616Z\"\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/c2aad318-5e12-4549-8d46-8c02c573d411\"\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\" : \"f1eac5d5-6de4-46d4-815e-fbd5519d5e21\",\n \"ownedByWorkspace\" : \"test-workspace\",\n \"ownedByProject\" : \"test-project\",\n \"createdOn\" : \"2025-11-12T13:10:55.413523462Z\"\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/f1eac5d5-6de4-46d4-815e-fbd5519d5e21\"\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 } ] @@ -9259,7 +9259,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\": \"feffc0cc-4f26-4bdf-a33f-49f89165c5ef\",\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\": \"3496453d-f60f-4e79-ad18-7a14cdc523e6\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", "urlencoded": [ ] @@ -9293,7 +9293,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\": \"feffc0cc-4f26-4bdf-a33f-49f89165c5ef\",\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\": \"3496453d-f60f-4e79-ad18-7a14cdc523e6\",\n \"firstName\": \"Samira\",\n \"lastName\": \"Johnson\",\n \"tags\": {}\n }\n}", "urlencoded": [ ] @@ -9309,7 +9309,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"feffc0cc-4f26-4bdf-a33f-49f89165c5ef\",\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 \"name\" : \"samira-johnson\"\n },\n \"spec\" : {\n \"email\" : \"sjohnson@example.com\",\n \"firstName\" : \"Samira\",\n \"lastName\" : \"Johnson\",\n \"euid\" : \"3496453d-f60f-4e79-ad18-7a14cdc523e6\",\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 } ] @@ -9383,132 +9383,47 @@ "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": "GET" - }, - "response": [ - { - "id": "meshUserV2", - "name": "meshUserV2", - "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": "GET" - }, - "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 \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"b54e6540-5a3b-4023-90ed-16af4beb7f07\",\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 - } - ] - }, - { - "id": "meshWorkspaceGroupBindingList", - "name": "/api/meshobjects/meshworkspacebindings/groupbindings", - "description": "List and filter workspace group bindings.\n\nA meshWorkspaceGroupBinding is an assignment of a group 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/groupbindings", - "query": [ - { - "key": "username", - "disabled": false, - "description": "Filter for group bindings associated to the given user" - }, - { - "key": "workspaceRole", - "disabled": false, - "description": "Filter for group bindings with the given workspace role" + "key": "username", + "description": "The username that uniquely identifies the meshUser.", + "system": false, + "disabled": false } ], - "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/groupbindings" + "raw": "{{baseUrl}}/api/meshobjects/meshusers/:username" }, - "method": "GET", - "header": [ - { - "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." - } - ] + "method": "GET" }, "response": [ { - "id": "meshWorkspaceGroupBindingList", - "name": "meshWorkspaceGroupBindingList", + "id": "meshUserV2", + "name": "meshUserV2", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshworkspacebindings/groupbindings", - "query": [ + "path": "/api/meshobjects/meshusers/:username", + "variable": [ { "key": "username", - "disabled": false, - "description": "Filter for group bindings associated to the given user" - }, - { - "key": "workspaceRole", - "disabled": false, - "description": "Filter for group bindings with the given workspace role" + "description": "The username that uniquely identifies the meshUser.", + "system": false, + "disabled": false } ], - "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/groupbindings" + "raw": "{{baseUrl}}/api/meshobjects/meshusers/:username" }, - "method": "GET", - "header": [ - { - "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." - } - ] + "method": "GET" }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshuser.v2.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshWorkspaceGroupBindings\" : [ {\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"363cb208-d208-436a-8766-5c1c358fcbc3\"\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/363cb208-d208-436a-8766-5c1c358fcbc3\"\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 \"kind\" : \"meshUser\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"john-doe\"\n },\n \"spec\" : {\n \"email\" : \"jdoe@example.com\",\n \"firstName\" : \"John\",\n \"lastName\" : \"Doe\",\n \"euid\" : \"95269413-3e80-46f3-9d9c-277c3b84c55c\",\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 } ] @@ -9601,9 +9516,9 @@ ] }, { - "id": "meshWorkspaceUserBindingList", - "name": "/api/meshobjects/meshworkspacebindings/userbindings", - "description": "Provides a paged list of meshWorkspaceUserBindings.\n\nA meshWorkspaceUserBinding is an assignment of users to a workspace with a specified workspace role.\nPlease note that this endpoint can only be used with API users for now. Support for API keys will\nbe added in the future.\n\n**Authentication:** This endpoint supports API User authentication.", + "id": "meshWorkspaceGroupBindingList", + "name": "/api/meshobjects/meshworkspacebindings/groupbindings", + "description": "List and filter workspace group bindings.\n\nA meshWorkspaceGroupBinding is an assignment of a group to a workspace with a specified workspace role.\n\n**Authentication:** This endpoint supports API User authentication.", "variable": [ ], @@ -9613,84 +9528,74 @@ "request": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshworkspacebindings/userbindings", + "path": "/api/meshobjects/meshworkspacebindings/groupbindings", "query": [ { "key": "username", "disabled": false, - "description": "Filter for user bindings associated to the given user" + "description": "Filter for group bindings associated to the given user" }, { "key": "workspaceRole", "disabled": false, - "description": "Filter for user bindings with the given workspace role" - }, - { - "key": "workspaceIdentifier", - "disabled": false, - "description": "Filter for user bindings associated to the given workspace" + "description": "Filter for group bindings with the given workspace role" } ], - "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/userbindings" + "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/groupbindings" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", + "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.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." } ] }, "response": [ { - "id": "meshWorkspaceUserBindingList", - "name": "meshWorkspaceUserBindingList", + "id": "meshWorkspaceGroupBindingList", + "name": "meshWorkspaceGroupBindingList", "originalRequest": { "url": { "host": "{{baseUrl}}", - "path": "/api/meshobjects/meshworkspacebindings/userbindings", + "path": "/api/meshobjects/meshworkspacebindings/groupbindings", "query": [ { "key": "username", "disabled": false, - "description": "Filter for user bindings associated to the given user" + "description": "Filter for group bindings associated to the given user" }, { "key": "workspaceRole", "disabled": false, - "description": "Filter for user bindings with the given workspace role" - }, - { - "key": "workspaceIdentifier", - "disabled": false, - "description": "Filter for user bindings associated to the given workspace" + "description": "Filter for group bindings with the given workspace role" } ], - "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/userbindings" + "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/groupbindings" }, "method": "GET", "header": [ { "key": "Accept", - "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", + "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.meshworkspaceuserbinding.v2.hal+json` for this version of the endpoint." + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json` for this version of the endpoint." } ] }, "header": [ { "key": "Content-Type", - "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", + "value": "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json", "disabled": false } ], "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshWorkspaceUserBindings\" : [ {\n \"kind\" : \"meshWorkspaceUserBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\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/user-binding-name\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager&workspaceIdentifier=test-workspace\"\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\" : \"a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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/a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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 } ] @@ -9782,6 +9687,101 @@ } ] }, + { + "id": "meshWorkspaceUserBindingList", + "name": "/api/meshobjects/meshworkspacebindings/userbindings", + "description": "Provides a paged list of meshWorkspaceUserBindings.\n\nA meshWorkspaceUserBinding is an assignment of users to a workspace with a specified workspace role.\nPlease note that this endpoint can only be used with API users for now. Support for API keys will\nbe added in the future.\n\n**Authentication:** This endpoint supports API User authentication.", + "variable": [ + + ], + "event": [ + + ], + "request": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshworkspacebindings/userbindings", + "query": [ + { + "key": "username", + "disabled": false, + "description": "Filter for user bindings associated to the given user" + }, + { + "key": "workspaceRole", + "disabled": false, + "description": "Filter for user bindings with the given workspace role" + }, + { + "key": "workspaceIdentifier", + "disabled": false, + "description": "Filter for user bindings associated to the given workspace" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/userbindings" + }, + "method": "GET", + "header": [ + { + "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." + } + ] + }, + "response": [ + { + "id": "meshWorkspaceUserBindingList", + "name": "meshWorkspaceUserBindingList", + "originalRequest": { + "url": { + "host": "{{baseUrl}}", + "path": "/api/meshobjects/meshworkspacebindings/userbindings", + "query": [ + { + "key": "username", + "disabled": false, + "description": "Filter for user bindings associated to the given user" + }, + { + "key": "workspaceRole", + "disabled": false, + "description": "Filter for user bindings with the given workspace role" + }, + { + "key": "workspaceIdentifier", + "disabled": false, + "description": "Filter for user bindings associated to the given workspace" + } + ], + "raw": "{{baseUrl}}/api/meshobjects/meshworkspacebindings/userbindings" + }, + "method": "GET", + "header": [ + { + "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." + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json", + "disabled": false + } + ], + "cookie": [ + + ], + "body": "{\n \"_embedded\" : {\n \"meshWorkspaceUserBindings\" : [ {\n \"kind\" : \"meshWorkspaceUserBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"user-binding-name\"\n },\n \"roleRef\" : {\n \"name\" : \"Workspace Manager\"\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/user-binding-name\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-backend-url/api/meshobjects/meshworkspacebindings/userbindings?username=john.doe49a0&workspaceRole=Workspace%20Manager&workspaceIdentifier=test-workspace\"\n }\n },\n \"page\" : {\n \"size\" : 50,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "code": 200 + } + ] + }, { "id": "meshWorkspacePut", "name": "/api/meshobjects/meshworkspaces/{identifier}", @@ -9880,15 +9880,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-11-12T13:03:06.045167397Z\"\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-11-12T13:10:59.778096093Z\"\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": "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": [ ], @@ -9909,7 +9909,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshworkspaces/:identifier" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -9921,8 +9921,8 @@ }, "response": [ { - "id": "meshWorkspaceDelete", - "name": "meshWorkspaceDelete", + "id": "meshWorkspace", + "name": "meshWorkspace", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -9937,7 +9937,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshworkspaces/:identifier" }, - "method": "DELETE", + "method": "GET", "header": [ { "key": "Accept", @@ -9947,17 +9947,25 @@ } ] }, + "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-11-12T13:09: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 } ] }, { - "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": [ ], @@ -9978,7 +9986,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshworkspaces/:identifier" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -9990,8 +9998,8 @@ }, "response": [ { - "id": "meshWorkspace", - "name": "meshWorkspace", + "id": "meshWorkspaceDelete", + "name": "meshWorkspaceDelete", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -10006,7 +10014,7 @@ ], "raw": "{{baseUrl}}/api/meshobjects/meshworkspaces/:identifier" }, - "method": "GET", + "method": "DELETE", "header": [ { "key": "Accept", @@ -10016,18 +10024,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-11-12T13:01:43Z\"\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 } ] }, @@ -10217,7 +10217,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"a4a4c984-c6f7-47ee-9929-40e595aee823\"\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/a4a4c984-c6f7-47ee-9929-40e595aee823\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshProjectGroupBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"5520e378-a482-47b0-821a-31ec3acc4cdf\"\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/5520e378-a482-47b0-821a-31ec3acc4cdf\"\n }\n }\n}", "code": 200 } ] @@ -10347,7 +10347,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"deed32a6-98f9-40f7-8c7b-52bff44b7319\"\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/deed32a6-98f9-40f7-8c7b-52bff44b7319\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshProjectUserBinding\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\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/d56e362f-f359-4b8e-b4c5-82d5e5cb7fb8\"\n }\n }\n}", "code": 200 } ] @@ -10514,7 +10514,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"363cb208-d208-436a-8766-5c1c358fcbc3\"\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/363cb208-d208-436a-8766-5c1c358fcbc3\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshWorkspaceGroupBinding\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\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/a8a58c0f-2bd0-4503-9f67-26a008b6dc3e\"\n }\n }\n}", "code": 200 } ] @@ -10727,9 +10727,9 @@ ] }, { - "id": "meshBuildingBlockRunSourceUpdate", + "id": "meshBuildingBlockRunAbort", "name": "/api/meshobjects/meshbuildingblockruns/{blockRunUuid}/status/source/{sourceId}", - "description": "Update source steps for a meshBuildingBlockRun with status changes, messages, and outputs\n\n**Authentication:** This endpoint supports API Key authentication.", + "description": "Abort a meshBuildingBlockRun that is currently in progress\n\n**Authentication:** This endpoint supports API Key authentication.", "variable": [ ], @@ -10772,7 +10772,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"status\": \"IN_PROGRESS\",\n \"steps\": [{\n \"id\": \"step1\",\n \"status\": \"SUCCEEDED\",\n \"userMessage\": \"Step was successful.\",\n \"systemMessage\": \"Step was successful.\",\n \"outputs\": {\n \"outputName\": {\n \"value\": \"hello-world\",\n \"type\": \"STRING\",\n \"isSensitive\": false\n }\n }\n },\n {\n \"id\": \"step2\",\n \"status\": \"IN_PROGRESS\"\n }]\n} ", + "raw": "{\n \"status\": \"ABORTED\" \n} ", "urlencoded": [ ] @@ -10780,8 +10780,8 @@ }, "response": [ { - "id": "meshBuildingBlockRunSourceUpdate", - "name": "meshBuildingBlockRunSourceUpdate", + "id": "meshBuildingBlockRunAbort", + "name": "meshBuildingBlockRunAbort", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -10804,12 +10804,6 @@ }, "method": "PATCH", "header": [ - { - "key": "Accept", - "value": "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json", - "disabled": false, - "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json` for this version of the endpoint." - }, { "key": "Content-Type", "value": "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json;charset=UTF-8", @@ -10818,7 +10812,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"status\": \"IN_PROGRESS\",\n \"steps\": [{\n \"id\": \"step1\",\n \"status\": \"SUCCEEDED\",\n \"userMessage\": \"Step was successful.\",\n \"systemMessage\": \"Step was successful.\",\n \"outputs\": {\n \"outputName\": {\n \"value\": \"hello-world\",\n \"type\": \"STRING\",\n \"isSensitive\": false\n }\n }\n },\n {\n \"id\": \"step2\",\n \"status\": \"IN_PROGRESS\"\n }]\n} ", + "raw": "{\n \"status\": \"ABORTED\" \n} ", "urlencoded": [ ] @@ -10838,8 +10832,8 @@ "code": 200 }, { - "id": "meshBuildingBlockRunAbort", - "name": "meshBuildingBlockRunAbort", + "id": "meshBuildingBlockRunSourceUpdate", + "name": "meshBuildingBlockRunSourceUpdate", "originalRequest": { "url": { "host": "{{baseUrl}}", @@ -10862,6 +10856,12 @@ }, "method": "PATCH", "header": [ + { + "key": "Accept", + "value": "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json", + "disabled": false, + "description": "This endpoint of meshObject API is individually versioned. Use `application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json` for this version of the endpoint." + }, { "key": "Content-Type", "value": "application/vnd.meshcloud.api.meshbuildingblockrun.v1.hal+json;charset=UTF-8", @@ -10870,7 +10870,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"status\": \"ABORTED\" \n} ", + "raw": "{\n \"status\": \"IN_PROGRESS\",\n \"steps\": [{\n \"id\": \"step1\",\n \"status\": \"SUCCEEDED\",\n \"userMessage\": \"Step was successful.\",\n \"systemMessage\": \"Step was successful.\",\n \"outputs\": {\n \"outputName\": {\n \"value\": \"hello-world\",\n \"type\": \"STRING\",\n \"isSensitive\": false\n }\n }\n },\n {\n \"id\": \"step2\",\n \"status\": \"IN_PROGRESS\"\n }]\n} ", "urlencoded": [ ]