diff --git a/blog/2025-12-17-Release-0.md b/blog/2025-12-17-Release-0.md new file mode 100644 index 000000000..447bc3349 --- /dev/null +++ b/blog/2025-12-17-Release-0.md @@ -0,0 +1,70 @@ +--- +author: meshcloud +title: Release 2025.55.0 +--- + +Release period: 2025-12-16 to 2025-12-17 + +This release includes the following issues: +* Building Block Search Bar Remains Visible When no Results Are Found +* Mandatory Building Blocks via API +* Creator Can Now Be Removed During Project Creation +* Building Block API Query Parameters Now Use Exact Match +* Fixed Greyed Out Code Editor in Building Block Input Definition +* Search Filter for Workspace and Project Access Control v2 Tables + + +## Ticket Details +### Building Block Search Bar Remains Visible When no Results Are Found +**Audience:** User
+ +#### Description +We fixed a bug where the search bar in a lot of tables would disappear when no search results were found. +The search bar now remains visible, allowing you to refine your search without having to reload the page. + +### Mandatory Building Blocks via API +**Audience:** User
+ +#### Description +Tenants can now be created via the API with mandatory building blocks that have user inputs with default values. +Previously, mandatory building blocks with "User Input" assignment type would prevent tenant creation, +even when default values were defined. This enhancement allows for more flexible building block configurations +while ensuring tenants can be created automatically via the API. + +### Creator Can Now Be Removed During Project Creation +**Audience:** User
+ +#### Description +When creating a project, the creator was automatically added and could not be removed. This restriction has been +lifted. You can now remove the creator during the creation process, allowing you to create projects with a +different set of users or even without any users assigned initially. + +### Building Block API Query Parameters Now Use Exact Match +**Audience:** User
+ +#### Description +The meshBuildingBlock API endpoint now performs exact matching for all provided query parameters when filtering +building blocks. Previously, these parameters used partial matching, returning all building blocks whose field values +included the query parameter values as substrings. This could return unintended results when one value was a substring +of another. With the new exact match behavior, only building blocks with exact matches for all provided query +parameters are returned. For example, you can now reliably fetch all building blocks from one particular workspace by +specifying the exact workspaceIdentifier. + +### Fixed Greyed Out Code Editor in Building Block Input Definition +**Audience:** User
+ +#### Description +Previously, when creating a new building block definition and adding an input of type 'Code', the code +editor was sometimes greyed out, making it impossible to specify a default value. This issue has been +resolved. + +### Search Filter for Workspace and Project Access Control v2 Tables +**Audience:** User
+ +#### Description +A search filter is now available in workspace and project access control tables, allowing you to quickly find specific +users or groups by typing their name. This makes it easier to manage access in workspaces and projects with many users. + +Note: This change only affects customers who have access to the new access control v2 feature. If you are using the +standard access control interface, this change does not apply to you. + diff --git a/docs/concepts/project.md b/docs/concepts/project.md index fc7dad6e6..baa0a50db 100644 --- a/docs/concepts/project.md +++ b/docs/concepts/project.md @@ -17,6 +17,22 @@ Below is a visual example of how projects are structured in meshStack: ![Project concept diagram](/assets/new_concept/concept_project.png) +## Project Names and Identifiers + +Each project has both a display name and a unique identifier. + +**Project Name (Display Name)** +- Maximum length of 30 characters +- Can contain any characters + +**Project Identifier** +- Must contain only lowercase alphanumeric characters and hyphens (but not leading, trailing, or consecutive hyphens) +- Maximum length of 30 characters +- Cannot be changed after project creation + +These default restrictions can be configured differently upon request to accommodate your organization's needs. +The restrictions exist to ensure the combined `${workspaceIdentifier}.${projectIdentifier}` fits within cloud platform constraints (e.g., AWS account aliases: 64 chars, Kubernetes namespaces: 63 chars). + ## Related Resources ### Concepts diff --git a/docs/concepts/workspace.md b/docs/concepts/workspace.md index 3fdb8a7a3..14dc51d44 100644 --- a/docs/concepts/workspace.md +++ b/docs/concepts/workspace.md @@ -22,6 +22,18 @@ Below is a visual example of how workspaces are structured in meshStack: ![Workspace concept diagram](/assets/new_concept/concept_workspace.png) +## Workspace Identifiers + +Each workspace has a unique identifier that is used to reference the workspace in APIs, integrations, and platform resources. + +**Default Restrictions:** +- Must be alphanumeric with hyphens allowed (but not leading, trailing, or consecutive hyphens) +- Maximum length of 16 characters +- Cannot be changed after workspace creation + +These default restrictions can be configured differently upon request to accommodate your organization's needs. +The restrictions exist to ensure the combined `${workspaceIdentifier}.${projectIdentifier}` fits within cloud platform constraints (e.g., AWS account aliases: 64 chars, Kubernetes namespaces: 63 chars). + ## Related Resources ### Concepts diff --git a/docs/guides/core/how-to-manage-a-project.md b/docs/guides/core/how-to-manage-a-project.md index fbcf0b529..9d7b4bb85 100644 --- a/docs/guides/core/how-to-manage-a-project.md +++ b/docs/guides/core/how-to-manage-a-project.md @@ -21,7 +21,7 @@ This guide explains how to manage projects in meshStack, including user access, **Step by Step Guide:** 1. Start the wizard by selecting "Create Project" in the project tab inside the workspace manager. -2. Fill in the required details such as name, ID, and tag information. +2. Fill in the required details such as name, [identifier](../../concepts/project.md#project-names-and-identifiers), and tag information. 3. Review the project details and confirm creation. ### Creating a Project as an Administrator diff --git a/docs/guides/core/how-to-manage-a-workspace.md b/docs/guides/core/how-to-manage-a-workspace.md index 863993fae..51c162a37 100644 --- a/docs/guides/core/how-to-manage-a-workspace.md +++ b/docs/guides/core/how-to-manage-a-workspace.md @@ -19,7 +19,7 @@ Here are short guides on how to handle the most common tasks in a workspace. **Step by Step Guide:** 1. Start the wizard by selecting "Create Workspace" in the workspace drop-down in the top navigation bar. -2. Fill in the required details such as name, ID, and tag information. +2. Fill in the required details such as name, [identifier](../../concepts/workspace.md#workspace-identifiers) and tag information. 3. Onboard the initial team members. 4. Review the workspace details and confirm creation. @@ -33,7 +33,7 @@ Here are short guides on how to handle the most common tasks in a workspace. 1. Navigate to the admin area and select "Workspaces." 2. Click on "Create Workspace." -3. Fill in the required details such as name, ID, and tag information. +3. Fill in the required details such as name, [identifier](../../concepts/workspace.md#workspace-identifiers) and tag information. 4. Assign initial users and roles. 5. Review the workspace details and confirm creation. diff --git a/static/billing-api/meshmetering-openapi-docs.json b/static/billing-api/meshmetering-openapi-docs.json index ec4943f41..b93eeac75 100644 --- a/static/billing-api/meshmetering-openapi-docs.json +++ b/static/billing-api/meshmetering-openapi-docs.json @@ -94,7 +94,7 @@ }, "examples": { "meshObjectsRoot": { - "value": "{\n \"_links\" : {\n \"meshchargebacks\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks{?workspaceIdentifier,projectIdentifier,period,finalized,finalizedSince,cancelledSince}\",\n \"templated\" : true\n },\n \"meshtenantusagereports\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports{?ownedByWorkspace,ownedByProject,isManaged,platform,platformType,platformTenantId,period,reportCategory,paymentMethodIdentifier,meshTenantId,finalizedAfter,cancelledAfter,status,showCancelled,sort}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n }\n }\n}" + "value": "{\n \"_links\" : {\n \"meshtenantusagereports\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports{?ownedByWorkspace,ownedByProject,isManaged,platform,platformType,platformTenantId,period,reportCategory,paymentMethodIdentifier,meshTenantId,finalizedAfter,cancelledAfter,status,showCancelled,sort}\",\n \"templated\" : true\n },\n \"meshchargebacks\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks{?workspaceIdentifier,projectIdentifier,period,finalized,finalizedSince,cancelledSince}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n }\n }\n}" } } } @@ -394,7 +394,7 @@ }, "examples": { "meshTenantUsageReportsList": { - "value": "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"dc6b2516-7313-456b-837b-158384a6ba9b\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"da49c857-0ab8-41be-93a7-446489f25ece\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value": "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"a1068f0c-24b6-4cc7-9548-efd8dff55ff4\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"9cb300d5-8d14-4f47-baab-173dd1218971\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -449,7 +449,7 @@ }, "examples": { "meshTenantUsageReport": { - "value": "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"dc6b2516-7313-456b-837b-158384a6ba9b\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}" + "value": "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"a1068f0c-24b6-4cc7-9548-efd8dff55ff4\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}" } } } diff --git a/static/billing-api/meshmetering-postman-collection-original.json b/static/billing-api/meshmetering-postman-collection-original.json index 9b940ea1a..b41058bfb 100644 --- a/static/billing-api/meshmetering-postman-collection-original.json +++ b/static/billing-api/meshmetering-postman-collection-original.json @@ -97,7 +97,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_links\" : {\n \"meshchargebacks\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks{?workspaceIdentifier,projectIdentifier,period,finalized,finalizedSince,cancelledSince}\",\n \"templated\" : true\n },\n \"meshtenantusagereports\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports{?ownedByWorkspace,ownedByProject,isManaged,platform,platformType,platformTenantId,period,reportCategory,paymentMethodIdentifier,meshTenantId,finalizedAfter,cancelledAfter,status,showCancelled,sort}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n }\n }\n}", + "body" : "{\n \"_links\" : {\n \"meshtenantusagereports\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports{?ownedByWorkspace,ownedByProject,isManaged,platform,platformType,platformTenantId,period,reportCategory,paymentMethodIdentifier,meshTenantId,finalizedAfter,cancelledAfter,status,showCancelled,sort}\",\n \"templated\" : true\n },\n \"meshchargebacks\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks{?workspaceIdentifier,projectIdentifier,period,finalized,finalizedSince,cancelledSince}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n }\n }\n}", "code" : 200 } ] }, { @@ -381,7 +381,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"dc6b2516-7313-456b-837b-158384a6ba9b\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"da49c857-0ab8-41be-93a7-446489f25ece\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"a1068f0c-24b6-4cc7-9548-efd8dff55ff4\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"9cb300d5-8d14-4f47-baab-173dd1218971\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -441,7 +441,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"dc6b2516-7313-456b-837b-158384a6ba9b\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"a1068f0c-24b6-4cc7-9548-efd8dff55ff4\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}", "code" : 200 } ] }, { diff --git a/static/billing-api/meshmetering-postman-collection.json b/static/billing-api/meshmetering-postman-collection.json index e260c0cfc..e94306236 100644 --- a/static/billing-api/meshmetering-postman-collection.json +++ b/static/billing-api/meshmetering-postman-collection.json @@ -122,7 +122,7 @@ "cookie": [ ], - "body": "{\n \"_links\" : {\n \"meshchargebacks\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks{?workspaceIdentifier,projectIdentifier,period,finalized,finalizedSince,cancelledSince}\",\n \"templated\" : true\n },\n \"meshtenantusagereports\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports{?ownedByWorkspace,ownedByProject,isManaged,platform,platformType,platformTenantId,period,reportCategory,paymentMethodIdentifier,meshTenantId,finalizedAfter,cancelledAfter,status,showCancelled,sort}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n }\n }\n}", + "body": "{\n \"_links\" : {\n \"meshtenantusagereports\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports{?ownedByWorkspace,ownedByProject,isManaged,platform,platformType,platformTenantId,period,reportCategory,paymentMethodIdentifier,meshTenantId,finalizedAfter,cancelledAfter,status,showCancelled,sort}\",\n \"templated\" : true\n },\n \"meshchargebacks\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks{?workspaceIdentifier,projectIdentifier,period,finalized,finalizedSince,cancelledSince}\",\n \"templated\" : true\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n }\n }\n}", "code": 200 } ] @@ -482,7 +482,7 @@ "cookie": [ ], - "body": "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"dc6b2516-7313-456b-837b-158384a6ba9b\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"da49c857-0ab8-41be-93a7-446489f25ece\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body": "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"a1068f0c-24b6-4cc7-9548-efd8dff55ff4\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n }, {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"ec072338-4703-437b-8f9e-2f3d3b7b27b3\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-05T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"9cb300d5-8d14-4f47-baab-173dd1218971\",\n \"version\" : 1\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-05T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-05T01:00:00Z\",\n \"cancelledAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 40.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 32.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/ec072338-4703-437b-8f9e-2f3d3b7b27b3\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?ownedByWorkspace=test-workspace-2&showCancelled=true&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code": 200 } ] @@ -559,7 +559,7 @@ "cookie": [ ], - "body": "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"dc6b2516-7313-456b-837b-158384a6ba9b\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}", + "body": "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"uuid\" : \"720f8801-d500-4ff3-bdc2-aae5d6c1e2df\",\n \"ownedByWorkspace\" : \"test-workspace-2\",\n \"ownedByProject\" : \"test-project\",\n \"createdAt\" : \"2025-01-07T01:00:00Z\"\n },\n \"spec\" : {\n \"period\" : \"2024-12\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Azure\",\n \"platform\" : \"azure.prod\",\n \"platformTenantId\" : \"a1068f0c-24b6-4cc7-9548-efd8dff55ff4\",\n \"version\" : 2\n },\n \"status\" : {\n \"generatedAt\" : \"2025-01-07T01:00:00Z\",\n \"finalizedAt\" : \"2025-01-07T01:00:00Z\",\n \"paymentMethod\" : {\n \"identifier\" : \"test-payment-method\",\n \"name\" : \"Test Payment Method\",\n \"amount\" : 100,\n \"expirationDate\" : \"2025-06-01T00:00:00Z\"\n },\n \"timeframe\" : {\n \"from\" : \"2024-12-01T00:00:00Z\",\n \"to\" : \"2025-01-01T00:00:00Z\"\n },\n \"tags\" : {\n \"env\" : [ \"prod\" ],\n \"costCenter\" : [ \"4058\" ]\n },\n \"lineItems\" : [ {\n \"netAmount\" : {\n \"amount\" : 50.0,\n \"currency\" : \"EUR\",\n \"baseAmount\" : 40.0,\n \"baseCurrency\" : \"USD\",\n \"exchangeRate\" : 1.1\n },\n \"sellerId\" : \"Platform Team\",\n \"sellerProductGroup\" : \"Azure\"\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/720f8801-d500-4ff3-bdc2-aae5d6c1e2df\"\n }\n }\n}", "code": 200 } ]