diff --git a/docs/administration.inventory.md b/docs/administration.inventory.md deleted file mode 100644 index f5b407102..000000000 --- a/docs/administration.inventory.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -id: administration.inventory -title: Resource Inventory ---- - -For some cloud platforms, administrators can get an overview in the meshPanel of their active and inactive cloud resources. Through our metering process we collect various cloud resources and display these in a table format in the Administration area. This will make it easier to get an overview of what is currently running, and what has run in the past. - -To view the cloud resources inventory, go to the Administration Area and scroll down to "Inventory -> Resources". The page will display a table with all known cloud resources. The table can filter on various criteria such as the name, the type and platform of the cloud resource. - -As of now, only [OpenStack virtual machines](./meshstack.openstack.inventory.md) are supported. These are provided additionally with their public IP address and flavor name. Feel free to file a [feature request](https://meshcloud.canny.io/feature-requests) if you there are any other resources for other platforms that would be interesting to see in the meshPanel. diff --git a/docs/meshstack.azure.inventory.md b/docs/meshstack.azure.inventory.md deleted file mode 100644 index 326f7fdf9..000000000 --- a/docs/meshstack.azure.inventory.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: meshstack.azure.inventory -title: Cloud Inventory ---- - -For the purpose of listing resources running on the Azure platform, meshStack fetches Azure virtual machine information from the Azure Resource Graph API. - -## Permission Model - -In order to retrieve information about the virtual machines, the metering principal should be assigned a role that has the following permissions. - -- Microsoft.Network/publicIPAddresses/read -- Microsoft.Network/networkInterfaces/read -- Microsoft.Compute/virtualMachines/*/read diff --git a/docs/meshstack.identity-federation.md b/docs/meshstack.identity-federation.md index 28373891f..c5f4c0161 100644 --- a/docs/meshstack.identity-federation.md +++ b/docs/meshstack.identity-federation.md @@ -269,9 +269,9 @@ Some common cloud IAM architectures require using different user account for tes + - ```dhall let Platform = let Platform = @@ -300,7 +300,6 @@ let Platform = in Platform ``` - #### Looking up transformed euids @@ -331,10 +330,8 @@ At the moment only AAD offers a choice of user lookup attributes. Platform Opera The following configuration options are available at `mesh.replicator`: - - ```dhall let Replicator = {- @@ -345,14 +342,13 @@ let Replicator = -} { aadUserLookupStrategy : Platform.Azure.AzureLookupStrategy } ``` - + - ```dhall let AzureLookupStrategy = {- @@ -368,7 +364,6 @@ let AzureLookupStrategy = -} < UserByMailLookupStrategy | UserByUsernameLookupStrategy > ``` - ## Group Cleanup diff --git a/docs/meshstack.identity-lookup.md b/docs/meshstack.identity-lookup.md index 9d2643fb6..638e19a01 100644 --- a/docs/meshstack.identity-lookup.md +++ b/docs/meshstack.identity-lookup.md @@ -22,7 +22,7 @@ let IdentityLookup = Configure the identity provider to use as a source for identity lookup. deny-assigning-other-users: - Controls the behavior of self-service user invitations (e.g. meshWorkspace role assignments from meshPanel). + Controls the behavior of self-service user invitations (e.g. workspace role assignments from meshPanel). When true, users can only invite other users listed in the identity provider. When false, users can create invitations also for users not listed in the identity provider. -} @@ -116,7 +116,7 @@ let example : AzureCreds = { aad-tenant = "devmeshcloud.onmicrosoft.com" , client-id = "f112f31-248a-4461-1269-0f13164acb95" - , client-secret = Secret.fromAnsible "client_secret" + , client-secret = Secret.fromTerraform "client_secret" , guestLookup = None AzureGuestDetection , euidSchemaExtensionUpdate = None AzureEuidExtensionSchema , euidUserAttributeUpdate = None AzureEuidUserAttribute @@ -348,7 +348,7 @@ let example = { domain = "example.com" , customer-id = "customer-id" , service-account-credentials-b64 = - Secret.fromAnsible "gcp_credentials" + Secret.fromTerraform "gcp_credentials" } ``` diff --git a/docs/meshstack.openstack.inventory.md b/docs/meshstack.openstack.inventory.md deleted file mode 100644 index 3b4aafdce..000000000 --- a/docs/meshstack.openstack.inventory.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: meshstack.openstack.inventory -title: Cloud Inventory ---- - -You can see a list of OpenStack virtual machines in the Resources page under the Inventory section in the Admin Area. -Here you can filter by VM status and metadata such as flavor and IP Address of the instance. - -The meshPanel shows four possible statuses of a VM, and they are mapped to [OpenStack statuses](https://docs.openstack.org/api-guide/compute/server_concepts.html) as follows. - -* Active - ACTIVE, BUILD, ERROR, HARD_REBOOT, MIGRATING, PASSWORD, REBOOT, REBUILD, RESCUE, RESIZE, REVERT_RESIZE, UNKNOWN, VERIFY_RESIZE -* Terminated - DELETED -* Offline - PAUSED, SHELVED, SHELVED_OFFLOADED, SHUTOFF, SOFT_DELETED, SUSPENDED -* Unknown - Any other state - diff --git a/docs/meshstack.workspace-group-sync.md b/docs/meshstack.workspace-group-sync.md index 81b6cbd9f..66b92a819 100644 --- a/docs/meshstack.workspace-group-sync.md +++ b/docs/meshstack.workspace-group-sync.md @@ -256,7 +256,7 @@ let example = The following example takes the 'cn' attribute and if the attribute matches the first rule, will assign whatever follows the "MESHCLOUD-ROLE-" as the value of the meshObject field. If the attribute matches the second rule, will assign the value "Platform Operator" and if none of the rules match, assigns the - value "Workspace Manager". + value "Workspace Member". -} { attribute = "cn" , postProcessor = None PostProcessor @@ -267,7 +267,7 @@ let example = } ] , template = None Text - , otherwise = Some "Workspace Manager" + , otherwise = Some "Workspace Member" } ``` @@ -310,7 +310,7 @@ let GroupAttributesTransformations = The 'distinguished name' attribute key for a user entity in LDAP. This attribute value should match the users referred to in the 'members' attribute of the groupAttributesTransformations. - name, ownedByCustomer, displayName, egid + name, ownedByWorkspace, displayName, egid For each of these meshUser fields, specify which LDAP attribute should be transformed and assigned to the field. tags: @@ -319,7 +319,7 @@ let GroupAttributesTransformations = -} { membersAttribute : Text , name : AttributeTransformation - , ownedByCustomer : AttributeTransformation + , ownedByWorkspace : AttributeTransformation , displayName : AttributeTransformation , egid : AttributeTransformation , tags : List TagMapping @@ -392,7 +392,7 @@ let example { attribute = "cn" , postProcessor = Some PostProcessor.LOWERCASE } - , ownedByCustomer = + , ownedByWorkspace = AttributeTransformation.Regex { attribute = "cn" , postProcessor = None PostProcessor @@ -439,7 +439,7 @@ let example } ] , template = None Text - , otherwise = Some "Workspace Manager" + , otherwise = Some "Workspace Member" } } ``` @@ -491,7 +491,7 @@ let example Secret.Raw "EXTERNAL_IDENTITYCONNECTOR_MESH_API_PASSWORD" , authorities = [ Authority.EXTERNAL_MESH_OBJECT_IMPORT - , Authority.CUSTOMEROWNER_ASSIGN + , Authority.WORKSPACEOWNER_ASSIGN ] } } diff --git a/website/blog/2024-11-28-Release-0.md b/website/blog/2024-11-28-Release-0.md new file mode 100644 index 000000000..8d7209616 --- /dev/null +++ b/website/blog/2024-11-28-Release-0.md @@ -0,0 +1,82 @@ +--- +author: meshcloud +title: Release 2024.51.0 +--- + +Release period: 2024-11-20 to 2024-11-28 + +This release includes the following issues: +* Slow performance when moving tenants +* Missing Partner Employee Permissions +* Manage Workspace Users from the Admin Area +* Deprecation of meshStack resource inventory +* Workspace Role Recertification Reminders +* Extend meshObject API with meshWorkspaceGroupBindings +* meshObject API meshWorkspaceUserBinding status codes changes + + +## Ticket Details +### Slow performance when moving tenants +**Audience:** Partner
+ +#### Description +This improves the performance of the tenant move wizard. +The tenant move wizard loaded a lot of data in the background. In environments with a lot of +projects and tenants this could lead to very slow behavior. This is now fixed. + +### Missing Partner Employee Permissions +**Audience:** Partner
+ +#### Description +Due to a permissions issue, the Partner Employee role was no longer able to see and manage payment +methods in the Partner area. The permissions have been adjusted and the issue has been resolved. + +### Manage Workspace Users from the Admin Area +**Audience:** Partner
+ +#### Description +Now you are be able to manage users directly from the admin area. This includes assigning, deleting, and changing roles, +as well as setting expiration dates, all without needing to assign yourself to this specific workspace. Note that this +functionality is available only to users with Partner Admin or Partner Employee roles. + +### Deprecation of meshStack resource inventory +**Audience:** User
+ +#### Description +meshStack previously supported the inventory of Virtual Machines on OpenStack, accessible in the Admin Area +under Resources > Platforms. This feature has now been fully deprecated and removed from meshStack. + +### Workspace Role Recertification Reminders +**Audience:** User
+ +#### Description +To help you manage role recertification more easily, we have introduced a pop-up window that appears after logging in, +if your own or team member roles of any workspace you manage, expire. A banner is also shown on the workspace control plane +that reminds users about expiring workspace accesses. This helps you manage roles proactively and prevent any loss +of access. + +### Extend meshObject API with meshWorkspaceGroupBindings +**Audience:** Partner, Operator
+ +#### Description +The meshObject API was extended to support the creation, deletion and +retrieval of meshWorkspaceGroupBindings via the imperative meshObject API +endpoints (as opposed to the declarative meshObject API endpoints). + +#### How to use +The documentation for the new API endpoints is available in our meshObject +API documentation, below the meshProjectGroupBinding. For now, this +functionality is only available for API users, and not for API keys. Support +for API keys will be available in the future. + +### meshObject API meshWorkspaceUserBinding status codes changes +**Audience:** Partner
+ +#### Description +With this change, we have updated the HTTP response status codes for the +newly introduced meshObject API meshWorkspaceUserBindings endpoints to align +them with the behavior of other API endpoints. The POST +/api/meshobjects/meshworkspacebindings/userbindings endpoint now returns a +201 status code when creating a new meshWorkspaceUserBinding. If you're +already using this API endpoint, please update your status code check to 201. + diff --git a/website/sidebars.json b/website/sidebars.json index e29007bee..9cac81482 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -51,7 +51,6 @@ "administration.platforms", "administration.landing-zones", "administration.building-blocks", - "administration.inventory", "administration.service-brokers", "administration.analytics", "administration.emergency-users", @@ -91,8 +90,7 @@ "Microsoft Azure": [ "meshstack.azure.index", "meshstack.azure.landing-zones", - "meshstack.azure.metering", - "meshstack.azure.inventory" + "meshstack.azure.metering" ], "Google Cloud Platform": [ "meshstack.gcp.index", @@ -119,8 +117,7 @@ ], "OpenStack": [ "meshstack.openstack.index", - "meshstack.openstack.metering", - "meshstack.openstack.inventory" + "meshstack.openstack.metering" ], "OSB Services": [ "meshstack.meshmarketplace.index", diff --git a/website/static/api/api_index.html b/website/static/api/api_index.html index d0b2a0744..42254a470 100644 --- a/website/static/api/api_index.html +++ b/website/static/api/api_index.html @@ -549,12 +549,12 @@

Index

{ "_links" : { - "metadata" : { - "href" : "https://mesh-backend-url/api/metadata" - }, "meshobjects" : { "href" : "https://mesh-backend-url/api/meshobjects" }, + "metadata" : { + "href" : "https://mesh-backend-url/api/metadata" + }, "self" : { "href" : "https://mesh-backend-url/api" } @@ -566,7 +566,7 @@

Index

diff --git a/website/static/api/api_key_login.html b/website/static/api/api_key_login.html index 61591a678..372bf74bd 100644 --- a/website/static/api/api_key_login.html +++ b/website/static/api/api_key_login.html @@ -591,7 +591,7 @@

API Key Login

diff --git a/website/static/api/api_keys.html b/website/static/api/api_keys.html index d04d9bf52..1a9a5927a 100644 --- a/website/static/api/api_keys.html +++ b/website/static/api/api_keys.html @@ -477,7 +477,7 @@

API Keys

diff --git a/website/static/api/common_data_formats.html b/website/static/api/common_data_formats.html index 5236e18bd..3c4850cec 100644 --- a/website/static/api/common_data_formats.html +++ b/website/static/api/common_data_formats.html @@ -542,7 +542,7 @@

Tags

diff --git a/website/static/api/index.html b/website/static/api/index.html index 34ebb767d..8c24beaad 100644 --- a/website/static/api/index.html +++ b/website/static/api/index.html @@ -529,6 +529,15 @@

meshcloud Public API Docs

  • Delete meshWorkspaceUserBinding
  • +
  • meshWorkspaceGroupBinding + +
  • meshTenant
  • -
  • Cloud resources - -
  • @@ -910,10 +905,6 @@

    Index

    -

    cloudresources

    -

    The Cloud Resources API to retrieve cloud resources from meshStack.

    - -

    meshobjects

    The MeshObjects API to get meshObjects.

    @@ -934,14 +925,10 @@

    Index

    Expires: 0 Strict-Transport-Security: max-age=31536000 ; includeSubDomains X-Frame-Options: DENY -Content-Length: 366 +Content-Length: 176 { "_links" : { - "cloudresources" : { - "href" : "https://mesh-billing-url/external/resources/v2{?customer,project,platform,displayName,resourceType,resourceStatus}", - "templated" : true - }, "meshobjects" : { "href" : "https://mesh-billing-url/api/meshobjects" }, @@ -1241,7 +1228,7 @@
    Lis "apiVersion" : "v3", "metadata" : { "name" : "2024-11-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.519450400Z", + "createdOn" : "2024-11-28T07:10:53.706525400Z", "finalized" : true }, "spec" : { @@ -1735,7 +1722,7 @@
    Lis "apiVersion" : "v3", "metadata" : { "name" : "2024-10-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.520904700Z", + "createdOn" : "2024-11-28T07:10:53.708226900Z", "finalized" : true }, "spec" : { @@ -2028,7 +2015,7 @@
    Get mes "apiVersion" : "v3", "metadata" : { "name" : "2024-11-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.519450400Z", + "createdOn" : "2024-11-28T07:10:53.706525400Z", "finalized" : true }, "spec" : { @@ -2364,297 +2351,12 @@
    -

    Cloud resources

    -
    -

    In order to retrieve cloud resources and integrate them into existing company processes, the cloud resources API can be used.

    -
    -
    -

    getExternalCloudResources

    -
    -

    This endpoint will retrieve all your cloud resources based on a paging structure. -The result list is sorted ascending by createdAt date of the resource.

    -
    -
    -
    Example Request
    -
    -
    GET /external/resources/v2?customer=example-customer&platform=os.eu-de-central&project=example-project&resourceStatus=terminated&resourceType=VirtualMachine&displayName=My%20virtual%20machine&page=0&size=20 HTTP/1.1
    -Authorization: Basic dmFsaWRfdXNlcm5hbWU6dmFsaWRfcGFzc3dvcmQ=
    -Host: mesh-billing-url
    -
    -
    - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterDescription

    customer

    The customer identifier

    project

    The project identifier

    platform

    The platform identifier

    resourceStatus

    The status of the resource. This is one of 'Active', 'Terminated', 'Offline' or 'Unknown'

    displayName

    The name of the resource

    resourceType

    The type of the resource. This is currently only 'VirtualMachine'

    page

    The page number (default=0)

    size

    The amount of elements in one page (default=20)

    -
    -
    Example Curl Request
    -
    -
    $ curl 'https://mesh-billing-url/external/resources/v2?customer=example-customer&platform=os.eu-de-central&project=example-project&resourceStatus=terminated&resourceType=VirtualMachine&displayName=My%20virtual%20machine&page=0&size=20' -i -u 'valid_username:valid_password' -X GET
    -
    -
    - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Response Fields
    PathTypeDescription

    pageable

    Object

    Object containing sorting information and additional paging information

    sort

    Object

    Object containing sorting information

    last

    Boolean

    Whether the current page is the last one or not

    totalPages

    Number

    The number of total pages

    totalElements

    Number

    The number of total elements available

    first

    Boolean

    Whether the current page is the first one or not

    numberOfElements

    Number

    The number of elements in the current page

    number

    Number

    The page number (starts at 0)

    size

    Number

    The page size

    empty

    Boolean

    Whether the current page is empty or not

    content[]

    Array

    The content of the response

    content[].metadata.customer

    String

    The customer the resource belongs to

    content[].metadata.project

    String

    The project the resource belongs to

    content[].metadata.platform

    String

    The platform the resource belongs to

    content[].metadata.tenantId

    String

    The ID of the tenant in the target platform

    content[].metadata.projectOwner

    String

    The username of the owner of the project

    content[].metadata.tags

    Object

    The tags belonging to the tenant

    content[].resource.resourceId

    String

    The ID of the resource in the target platform

    content[].resource.resourceType

    String

    The type of the resource (e.g. VirtualMachine)

    content[].resource.createdAt

    String

    The date and time when this resource was created in the target platform

    content[].resource.displayName

    String

    The name of the resource in the target platform

    content[].resource.lastObservedAt

    String

    The last time the resource was observed by meshMetering

    content[].resource.terminatedAt

    String

    The date and time when this resource was terminated in the target platform (if terminated)

    content[].resource.status

    String

    Status of the resource. Can be 'Active' or 'Terminated'.

    content[].resource.resourceMeta

    Object

    Any meta information about the resource, e.g. for VM’s this is the 'ipAddress'

    -
    -
    Example Response
    -
    -
    HTTP/1.1 200 OK
    -Vary: Origin
    -Vary: Access-Control-Request-Method
    -Vary: Access-Control-Request-Headers
    -Content-Type: application/json
    -X-Content-Type-Options: nosniff
    -X-XSS-Protection: 0
    -Cache-Control: no-cache, no-store, max-age=0, must-revalidate
    -Pragma: no-cache
    -Expires: 0
    -Strict-Transport-Security: max-age=31536000 ; includeSubDomains
    -X-Frame-Options: DENY
    -Content-Length: 1196
    -
    -{
    -  "content" : [ {
    -    "metadata" : {
    -      "customer" : "example-customer",
    -      "project" : "example-project",
    -      "platform" : "os.eu-de-central",
    -      "tenantId" : "f7ac731cc11f40efbc03a9f9e1d1d21f",
    -      "projectOwner" : "project-owner@example.com",
    -      "tags" : {
    -        "costCenter" : [ "1234" ]
    -      }
    -    },
    -    "resource" : {
    -      "resourceId" : "a9debfe41a6d4d09a677da737b907d5e",
    -      "resourceType" : "VirtualMachine",
    -      "createdAt" : "2020-03-20T15:00:00Z",
    -      "displayName" : "My virtual machine",
    -      "lastObservedAt" : "2020-04-01T12:00:00Z",
    -      "terminatedAt" : "2020-04-25T09:00:00Z",
    -      "resourceMeta" : {
    -        "ipAddress" : "12.34.56.78"
    -      },
    -      "status" : "Terminated"
    -    }
    -  } ],
    -  "pageable" : {
    -    "pageNumber" : 0,
    -    "pageSize" : 20,
    -    "sort" : {
    -      "empty" : false,
    -      "sorted" : true,
    -      "unsorted" : false
    -    },
    -    "offset" : 0,
    -    "paged" : true,
    -    "unpaged" : false
    -  },
    -  "last" : true,
    -  "totalPages" : 1,
    -  "totalElements" : 1,
    -  "size" : 20,
    -  "number" : 0,
    -  "sort" : {
    -    "empty" : false,
    -    "sorted" : true,
    -    "unsorted" : false
    -  },
    -  "first" : true,
    -  "numberOfElements" : 1,
    -  "empty" : false
    -}
    -
    -
    -
    - diff --git a/website/static/billing-api/mesh_chargeback.html b/website/static/billing-api/mesh_chargeback.html index 570834870..ea7f1dd42 100644 --- a/website/static/billing-api/mesh_chargeback.html +++ b/website/static/billing-api/mesh_chargeback.html @@ -593,7 +593,7 @@
    List meshChargebacks
    "apiVersion" : "v3", "metadata" : { "name" : "2024-11-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.519450400Z", + "createdOn" : "2024-11-28T07:10:53.706525400Z", "finalized" : true }, "spec" : { @@ -655,7 +655,7 @@
    List meshChargebacks
    "apiVersion" : "v3", "metadata" : { "name" : "2024-10-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.520904700Z", + "createdOn" : "2024-11-28T07:10:53.708226900Z", "finalized" : true }, "spec" : { @@ -948,7 +948,7 @@
    Get meshChargeback
    "apiVersion" : "v3", "metadata" : { "name" : "2024-11-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.519450400Z", + "createdOn" : "2024-11-28T07:10:53.706525400Z", "finalized" : true }, "spec" : { @@ -1013,7 +1013,7 @@
    Get meshChargeback
    diff --git a/website/static/billing-api/mesh_objects.html b/website/static/billing-api/mesh_objects.html index 7ac31dac9..97c599b41 100644 --- a/website/static/billing-api/mesh_objects.html +++ b/website/static/billing-api/mesh_objects.html @@ -728,7 +728,7 @@
    List meshTenantUsageReports
    "apiVersion" : "v2", "metadata" : { "name" : "gcp1.gcp-ffm:project:2018-01-01Z", - "lastModified" : "2024-11-06T13:34:42.164566300Z", + "lastModified" : "2024-11-28T07:10:56.203608100Z", "finalized" : true }, "spec" : { @@ -973,7 +973,7 @@
    Get meshTenantUsageReport
    "apiVersion" : "v2", "metadata" : { "name" : "gcp1.gcp-ffm:project:2018-01-01Z", - "lastModified" : "2024-11-06T13:34:42.164566300Z", + "lastModified" : "2024-11-28T07:10:56.203608100Z", "finalized" : true }, "spec" : { @@ -1160,7 +1160,7 @@
    List meshChargebacks
    "apiVersion" : "v3", "metadata" : { "name" : "2024-11-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.519450400Z", + "createdOn" : "2024-11-28T07:10:53.706525400Z", "finalized" : true }, "spec" : { @@ -1222,7 +1222,7 @@
    List meshChargebacks
    "apiVersion" : "v3", "metadata" : { "name" : "2024-10-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.520904700Z", + "createdOn" : "2024-11-28T07:10:53.708226900Z", "finalized" : true }, "spec" : { @@ -1515,7 +1515,7 @@
    Get meshChargeback
    "apiVersion" : "v3", "metadata" : { "name" : "2024-11-01Z/testPartner:testWorkspace:testProject", - "createdOn" : "2024-11-06T13:34:39.519450400Z", + "createdOn" : "2024-11-28T07:10:53.706525400Z", "finalized" : true }, "spec" : { @@ -1854,7 +1854,7 @@
    Put meshResourceUsageReports
    diff --git a/website/static/billing-api/mesh_resource_usage_report.html b/website/static/billing-api/mesh_resource_usage_report.html index d653a3995..8c8fac57b 100644 --- a/website/static/billing-api/mesh_resource_usage_report.html +++ b/website/static/billing-api/mesh_resource_usage_report.html @@ -716,7 +716,7 @@
    Put meshResourceUsageReports
    diff --git a/website/static/billing-api/mesh_tenant_usage_reports.html b/website/static/billing-api/mesh_tenant_usage_reports.html index 69978de9b..5780779be 100644 --- a/website/static/billing-api/mesh_tenant_usage_reports.html +++ b/website/static/billing-api/mesh_tenant_usage_reports.html @@ -605,7 +605,7 @@
    List meshTenantUsageReports
    "apiVersion" : "v2", "metadata" : { "name" : "gcp1.gcp-ffm:project:2018-01-01Z", - "lastModified" : "2024-11-06T13:34:42.164566300Z", + "lastModified" : "2024-11-28T07:10:56.203608100Z", "finalized" : true }, "spec" : { @@ -850,7 +850,7 @@
    Get meshTenantUsageReport
    "apiVersion" : "v2", "metadata" : { "name" : "gcp1.gcp-ffm:project:2018-01-01Z", - "lastModified" : "2024-11-06T13:34:42.164566300Z", + "lastModified" : "2024-11-28T07:10:56.203608100Z", "finalized" : true }, "spec" : { @@ -887,7 +887,7 @@
    Get meshTenantUsageReport
    diff --git a/website/static/billing-api/meshmetering-openapi-docs.json b/website/static/billing-api/meshmetering-openapi-docs.json index 424f91e64..98c3bb9f4 100644 --- a/website/static/billing-api/meshmetering-openapi-docs.json +++ b/website/static/billing-api/meshmetering-openapi-docs.json @@ -31,7 +31,7 @@ }, "examples" : { "apiRoot" : { - "value" : "{\n \"_links\" : {\n \"cloudresources\" : {\n \"href\" : \"https://mesh-billing-url/external/resources/v2{?customer,project,platform,displayName,resourceType,resourceStatus}\",\n \"templated\" : true\n },\n \"meshobjects\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api\"\n }\n }\n}" + "value" : "{\n \"_links\" : {\n \"meshobjects\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api\"\n }\n }\n}" } } } @@ -159,7 +159,7 @@ }, "examples" : { "meshChargebackList" : { - "value" : "{\n \"_embedded\" : {\n \"meshChargebacks\" : [ {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.519450400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n }, {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-10-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.520904700Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-10-01Z\",\n \"tags\" : { },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-10-01T00:00:00Z\",\n \"to\" : \"2024-11-01T00:00:00Z\"\n },\n \"lineItems\" : [ ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 0,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 0\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-10-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks?workspaceIdentifier=testWorkspace&page=0&size=10&sort=name,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value" : "{\n \"_embedded\" : {\n \"meshChargebacks\" : [ {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.706525400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n }, {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-10-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.708226900Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-10-01Z\",\n \"tags\" : { },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-10-01T00:00:00Z\",\n \"to\" : \"2024-11-01T00:00:00Z\"\n },\n \"lineItems\" : [ ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 0,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 0\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-10-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks?workspaceIdentifier=testWorkspace&page=0&size=10&sort=name,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -275,7 +275,7 @@ }, "examples" : { "meshTenantUsageReportsList" : { - "value" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-06T13:34:42.164566300Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?workspaceIdentifier=testWorkspace&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "value" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-28T07:10:56.203608100Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?workspaceIdentifier=testWorkspace&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" } } } @@ -311,7 +311,7 @@ }, "examples" : { "meshChargeback" : { - "value" : "{\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.519450400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n}" + "value" : "{\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.706525400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n}" } } } @@ -347,98 +347,7 @@ }, "examples" : { "meshTenantUsageReport" : { - "value" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-06T13:34:42.164566300Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n}" - } - } - } - } - } - }, - "security" : [ { - "basic" : [ ] - } ] - } - }, - "/external/resources/v2" : { - "get" : { - "tags" : [ "external" ], - "operationId" : "getExternalCloudResources", - "parameters" : [ { - "name" : "customer", - "in" : "query", - "description" : "The customer identifier", - "required" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "project", - "in" : "query", - "description" : "The project identifier", - "required" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "platform", - "in" : "query", - "description" : "The platform identifier", - "required" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "resourceStatus", - "in" : "query", - "description" : "The status of the resource. This is one of 'Active', 'Terminated', 'Offline' or 'Unknown'", - "required" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "displayName", - "in" : "query", - "description" : "The name of the resource", - "required" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "resourceType", - "in" : "query", - "description" : "The type of the resource. This is currently only 'VirtualMachine'", - "required" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "page", - "in" : "query", - "description" : "The page number (default=0)", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "size", - "in" : "query", - "description" : "The amount of elements in one page (default=20)", - "required" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "200", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/getExternalCloudResources" - }, - "examples" : { - "getExternalCloudResources" : { - "value" : "{\n \"content\" : [ {\n \"metadata\" : {\n \"customer\" : \"example-customer\",\n \"project\" : \"example-project\",\n \"platform\" : \"os.eu-de-central\",\n \"tenantId\" : \"f7ac731cc11f40efbc03a9f9e1d1d21f\",\n \"projectOwner\" : \"project-owner@example.com\",\n \"tags\" : {\n \"costCenter\" : [ \"1234\" ]\n }\n },\n \"resource\" : {\n \"resourceId\" : \"a9debfe41a6d4d09a677da737b907d5e\",\n \"resourceType\" : \"VirtualMachine\",\n \"createdAt\" : \"2020-03-20T15:00:00Z\",\n \"displayName\" : \"My virtual machine\",\n \"lastObservedAt\" : \"2020-04-01T12:00:00Z\",\n \"terminatedAt\" : \"2020-04-25T09:00:00Z\",\n \"resourceMeta\" : {\n \"ipAddress\" : \"12.34.56.78\"\n },\n \"status\" : \"Terminated\"\n }\n } ],\n \"pageable\" : {\n \"pageNumber\" : 0,\n \"pageSize\" : 20,\n \"sort\" : {\n \"empty\" : false,\n \"sorted\" : true,\n \"unsorted\" : false\n },\n \"offset\" : 0,\n \"paged\" : true,\n \"unpaged\" : false\n },\n \"last\" : true,\n \"totalPages\" : 1,\n \"totalElements\" : 1,\n \"size\" : 20,\n \"number\" : 0,\n \"sort\" : {\n \"empty\" : false,\n \"sorted\" : true,\n \"unsorted\" : false\n },\n \"first\" : true,\n \"numberOfElements\" : 1,\n \"empty\" : false\n}" + "value" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-28T07:10:56.203608100Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n}" } } } @@ -453,17 +362,6 @@ }, "components" : { "schemas" : { - "apiRoot" : { - "title" : "apiRoot", - "required" : [ "_links" ], - "type" : "object", - "properties" : { - "_links" : { - "type" : "object", - "description" : "All available <> for the authenticated user." - } - } - }, "meshChargebackList" : { "title" : "meshChargebackList", "required" : [ "_embedded", "_links", "page" ], @@ -501,6 +399,17 @@ } } }, + "apiRoot" : { + "title" : "apiRoot", + "required" : [ "_links" ], + "type" : "object", + "properties" : { + "_links" : { + "type" : "object", + "description" : "All available <> for the authenticated user." + } + } + }, "meshTenantUsageReport" : { "title" : "meshTenantUsageReport", "required" : [ "_links", "apiVersion", "kind", "metadata", "spec", "status" ], @@ -622,132 +531,51 @@ } } }, - "getExternalCloudResources" : { - "title" : "getExternalCloudResources", - "required" : [ "content", "empty", "first", "last", "number", "numberOfElements", "pageable", "size", "sort", "totalElements", "totalPages" ], + "meshTenantUsageReportsList" : { + "title" : "meshTenantUsageReportsList", + "required" : [ "_embedded", "_links", "page" ], "type" : "object", "properties" : { - "number" : { - "type" : "number", - "description" : "The page number (starts at 0)" - }, - "size" : { - "type" : "number", - "description" : "The page size" - }, - "numberOfElements" : { - "type" : "number", - "description" : "The number of elements in the current page" - }, - "last" : { - "type" : "boolean", - "description" : "Whether the current page is the last one or not" - }, - "totalPages" : { - "type" : "number", - "description" : "The number of total pages" - }, - "pageable" : { + "_links" : { "type" : "object", - "description" : "Object containing sorting information and additional paging information" + "description" : "Currently only contains the self link and <> links." }, - "sort" : { + "_embedded" : { + "required" : [ "meshTenantUsageReports" ], "type" : "object", - "description" : "Object containing sorting information" - }, - "content" : { - "type" : "array", - "description" : "The content of the response", - "items" : { - "type" : "object", - "properties" : { - "metadata" : { - "required" : [ "platform", "tenantId" ], - "type" : "object", - "properties" : { - "tenantId" : { - "type" : "string", - "description" : "The ID of the tenant in the target platform" - }, - "project" : { - "type" : "string", - "description" : "The project the resource belongs to", - "nullable" : true - }, - "projectOwner" : { - "type" : "string", - "description" : "The username of the owner of the project", - "nullable" : true - }, - "platform" : { - "type" : "string", - "description" : "The platform the resource belongs to" - }, - "tags" : { - "type" : "object", - "description" : "The tags belonging to the tenant", - "nullable" : true - }, - "customer" : { - "type" : "string", - "description" : "The customer the resource belongs to", - "nullable" : true - } - } - }, - "resource" : { - "required" : [ "createdAt", "displayName", "lastObservedAt", "resourceId", "resourceMeta", "resourceType", "status" ], - "type" : "object", - "properties" : { - "resourceMeta" : { - "type" : "object", - "description" : "Any meta information about the resource, e.g. for VM's this is the 'ipAddress'" - }, - "createdAt" : { - "type" : "string", - "description" : "The date and time when this resource was created in the target platform" - }, - "resourceId" : { - "type" : "string", - "description" : "The ID of the resource in the target platform" - }, - "terminatedAt" : { - "type" : "string", - "description" : "The date and time when this resource was terminated in the target platform (if terminated)", - "nullable" : true - }, - "lastObservedAt" : { - "type" : "string", - "description" : "The last time the resource was observed by meshMetering" - }, - "displayName" : { - "type" : "string", - "description" : "The name of the resource in the target platform" - }, - "status" : { - "type" : "string", - "description" : "Status of the resource. Can be 'Active' or 'Terminated'." - }, - "resourceType" : { - "type" : "string", - "description" : "The type of the resource (e.g. VirtualMachine)" - } - } + "properties" : { + "meshTenantUsageReports" : { + "type" : "array", + "description" : "List of <>.", + "items" : { + "oneOf" : [ { + "type" : "object" + }, { + "type" : "boolean" + }, { + "type" : "string" + }, { + "type" : "number" + } ] } } - } - }, - "first" : { - "type" : "boolean", - "description" : "Whether the current page is the first one or not" - }, - "empty" : { - "type" : "boolean", - "description" : "Whether the current page is empty or not" + }, + "description" : "Contains the actual content of the paged response." }, - "totalElements" : { - "type" : "number", - "description" : "The number of total elements available" + "page" : { + "type" : "object", + "description" : "See <>." + } + } + }, + "meshObjectsRoot" : { + "title" : "meshObjectsRoot", + "required" : [ "_links" ], + "type" : "object", + "properties" : { + "_links" : { + "type" : "object", + "description" : "All available <> for the authenticated user." } } }, @@ -917,54 +745,6 @@ "description" : "All fields in this section provide detailed content of the meshChargeback." } } - }, - "meshObjectsRoot" : { - "title" : "meshObjectsRoot", - "required" : [ "_links" ], - "type" : "object", - "properties" : { - "_links" : { - "type" : "object", - "description" : "All available <> for the authenticated user." - } - } - }, - "meshTenantUsageReportsList" : { - "title" : "meshTenantUsageReportsList", - "required" : [ "_embedded", "_links", "page" ], - "type" : "object", - "properties" : { - "_links" : { - "type" : "object", - "description" : "Currently only contains the self link and <> links." - }, - "_embedded" : { - "required" : [ "meshTenantUsageReports" ], - "type" : "object", - "properties" : { - "meshTenantUsageReports" : { - "type" : "array", - "description" : "List of <>.", - "items" : { - "oneOf" : [ { - "type" : "object" - }, { - "type" : "boolean" - }, { - "type" : "string" - }, { - "type" : "number" - } ] - } - } - }, - "description" : "Contains the actual content of the paged response." - }, - "page" : { - "type" : "object", - "description" : "See <>." - } - } } }, "securitySchemes" : { diff --git a/website/static/billing-api/meshmetering-postman-collection-original.json b/website/static/billing-api/meshmetering-postman-collection-original.json index ed362dafa..ea2bdbced 100644 --- a/website/static/billing-api/meshmetering-postman-collection-original.json +++ b/website/static/billing-api/meshmetering-postman-collection-original.json @@ -48,7 +48,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_links\" : {\n \"cloudresources\" : {\n \"href\" : \"https://mesh-billing-url/external/resources/v2{?customer,project,platform,displayName,resourceType,resourceStatus}\",\n \"templated\" : true\n },\n \"meshobjects\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api\"\n }\n }\n}", + "body" : "{\n \"_links\" : {\n \"meshobjects\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api\"\n }\n }\n}", "code" : 200 } ] }, { @@ -200,7 +200,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshChargebacks\" : [ {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.519450400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n }, {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-10-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.520904700Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-10-01Z\",\n \"tags\" : { },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-10-01T00:00:00Z\",\n \"to\" : \"2024-11-01T00:00:00Z\"\n },\n \"lineItems\" : [ ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 0,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 0\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-10-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks?workspaceIdentifier=testWorkspace&page=0&size=10&sort=name,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshChargebacks\" : [ {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.706525400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n }, {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-10-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.708226900Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-10-01Z\",\n \"tags\" : { },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-10-01T00:00:00Z\",\n \"to\" : \"2024-11-01T00:00:00Z\"\n },\n \"lineItems\" : [ ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 0,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 0\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-10-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks?workspaceIdentifier=testWorkspace&page=0&size=10&sort=name,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -329,7 +329,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-06T13:34:42.164566300Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?workspaceIdentifier=testWorkspace&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-28T07:10:56.203608100Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?workspaceIdentifier=testWorkspace&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -376,7 +376,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.519450400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.706525400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n}", "code" : 200 } ] }, { @@ -423,108 +423,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-06T13:34:42.164566300Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n}", - "code" : 200 - } ] - }, { - "id" : "getExternalCloudResources", - "name" : "/external/resources/v2", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "protocol" : "https", - "host" : "localhost", - "path" : "/external/resources/v2", - "port" : "8080", - "query" : [ { - "key" : "customer", - "disabled" : false, - "description" : "The customer identifier" - }, { - "key" : "project", - "disabled" : false, - "description" : "The project identifier" - }, { - "key" : "platform", - "disabled" : false, - "description" : "The platform identifier" - }, { - "key" : "resourceStatus", - "disabled" : false, - "description" : "The status of the resource. This is one of 'Active', 'Terminated', 'Offline' or 'Unknown'" - }, { - "key" : "displayName", - "disabled" : false, - "description" : "The name of the resource" - }, { - "key" : "resourceType", - "disabled" : false, - "description" : "The type of the resource. This is currently only 'VirtualMachine'" - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in one page (default=20)" - } ] - }, - "method" : "GET" - }, - "response" : [ { - "id" : "getExternalCloudResources", - "name" : "getExternalCloudResources", - "originalRequest" : { - "url" : { - "protocol" : "https", - "host" : "localhost", - "path" : "/external/resources/v2", - "port" : "8080", - "query" : [ { - "key" : "customer", - "disabled" : false, - "description" : "The customer identifier" - }, { - "key" : "project", - "disabled" : false, - "description" : "The project identifier" - }, { - "key" : "platform", - "disabled" : false, - "description" : "The platform identifier" - }, { - "key" : "resourceStatus", - "disabled" : false, - "description" : "The status of the resource. This is one of 'Active', 'Terminated', 'Offline' or 'Unknown'" - }, { - "key" : "displayName", - "disabled" : false, - "description" : "The name of the resource" - }, { - "key" : "resourceType", - "disabled" : false, - "description" : "The type of the resource. This is currently only 'VirtualMachine'" - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in one page (default=20)" - } ] - }, - "method" : "GET" - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"content\" : [ {\n \"metadata\" : {\n \"customer\" : \"example-customer\",\n \"project\" : \"example-project\",\n \"platform\" : \"os.eu-de-central\",\n \"tenantId\" : \"f7ac731cc11f40efbc03a9f9e1d1d21f\",\n \"projectOwner\" : \"project-owner@example.com\",\n \"tags\" : {\n \"costCenter\" : [ \"1234\" ]\n }\n },\n \"resource\" : {\n \"resourceId\" : \"a9debfe41a6d4d09a677da737b907d5e\",\n \"resourceType\" : \"VirtualMachine\",\n \"createdAt\" : \"2020-03-20T15:00:00Z\",\n \"displayName\" : \"My virtual machine\",\n \"lastObservedAt\" : \"2020-04-01T12:00:00Z\",\n \"terminatedAt\" : \"2020-04-25T09:00:00Z\",\n \"resourceMeta\" : {\n \"ipAddress\" : \"12.34.56.78\"\n },\n \"status\" : \"Terminated\"\n }\n } ],\n \"pageable\" : {\n \"pageNumber\" : 0,\n \"pageSize\" : 20,\n \"sort\" : {\n \"empty\" : false,\n \"sorted\" : true,\n \"unsorted\" : false\n },\n \"offset\" : 0,\n \"paged\" : true,\n \"unpaged\" : false\n },\n \"last\" : true,\n \"totalPages\" : 1,\n \"totalElements\" : 1,\n \"size\" : 20,\n \"number\" : 0,\n \"sort\" : {\n \"empty\" : false,\n \"sorted\" : true,\n \"unsorted\" : false\n },\n \"first\" : true,\n \"numberOfElements\" : 1,\n \"empty\" : false\n}", + "body" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-28T07:10:56.203608100Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n}", "code" : 200 } ] } ], diff --git a/website/static/billing-api/meshmetering-postman-collection.json b/website/static/billing-api/meshmetering-postman-collection.json index 0d4716226..5d7ebedaf 100644 --- a/website/static/billing-api/meshmetering-postman-collection.json +++ b/website/static/billing-api/meshmetering-postman-collection.json @@ -46,7 +46,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_links\" : {\n \"cloudresources\" : {\n \"href\" : \"https://mesh-billing-url/external/resources/v2{?customer,project,platform,displayName,resourceType,resourceStatus}\",\n \"templated\" : true\n },\n \"meshobjects\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api\"\n }\n }\n}", + "body" : "{\n \"_links\" : {\n \"meshobjects\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api\"\n }\n }\n}", "code" : 200 } ] }, { @@ -194,7 +194,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshChargebacks\" : [ {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.519450400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n }, {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-10-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.520904700Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-10-01Z\",\n \"tags\" : { },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-10-01T00:00:00Z\",\n \"to\" : \"2024-11-01T00:00:00Z\"\n },\n \"lineItems\" : [ ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 0,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 0\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-10-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks?workspaceIdentifier=testWorkspace&page=0&size=10&sort=name,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshChargebacks\" : [ {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.706525400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n }, {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-10-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.708226900Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-10-01Z\",\n \"tags\" : { },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-10-01T00:00:00Z\",\n \"to\" : \"2024-11-01T00:00:00Z\"\n },\n \"lineItems\" : [ ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 0,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 0\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-10-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks?workspaceIdentifier=testWorkspace&page=0&size=10&sort=name,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -321,7 +321,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-06T13:34:42.164566300Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?workspaceIdentifier=testWorkspace&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", + "body" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-28T07:10:56.203608100Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?workspaceIdentifier=testWorkspace&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}", "code" : 200 } ] }, { @@ -366,7 +366,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.519450400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n}", + "body" : "{\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.706525400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n}", "code" : 200 } ] }, { @@ -411,106 +411,7 @@ "disabled" : false } ], "cookie" : [ ], - "body" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-06T13:34:42.164566300Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n}", - "code" : 200 - } ] - }, { - "id" : "getExternalCloudResources", - "name" : "/external/resources/v2", - "variable" : [ ], - "event" : [ ], - "request" : { - "url" : { - "raw": "{{baseUrl}}/external/resources/v2", -"host": "{{baseUrl}}", -"path" : "/external/resources/v2" -, "query" : [ { - "key" : "customer", - "disabled" : false, - "description" : "The customer identifier" - }, { - "key" : "project", - "disabled" : false, - "description" : "The project identifier" - }, { - "key" : "platform", - "disabled" : false, - "description" : "The platform identifier" - }, { - "key" : "resourceStatus", - "disabled" : false, - "description" : "The status of the resource. This is one of 'Active', 'Terminated', 'Offline' or 'Unknown'" - }, { - "key" : "displayName", - "disabled" : false, - "description" : "The name of the resource" - }, { - "key" : "resourceType", - "disabled" : false, - "description" : "The type of the resource. This is currently only 'VirtualMachine'" - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in one page (default=20)" - } ] - }, - "method" : "GET" - }, - "response" : [ { - "id" : "getExternalCloudResources", - "name" : "getExternalCloudResources", - "originalRequest" : { - "url" : { - "raw": "{{baseUrl}}/external/resources/v2", -"host": "{{baseUrl}}", -"path" : "/external/resources/v2" -, "query" : [ { - "key" : "customer", - "disabled" : false, - "description" : "The customer identifier" - }, { - "key" : "project", - "disabled" : false, - "description" : "The project identifier" - }, { - "key" : "platform", - "disabled" : false, - "description" : "The platform identifier" - }, { - "key" : "resourceStatus", - "disabled" : false, - "description" : "The status of the resource. This is one of 'Active', 'Terminated', 'Offline' or 'Unknown'" - }, { - "key" : "displayName", - "disabled" : false, - "description" : "The name of the resource" - }, { - "key" : "resourceType", - "disabled" : false, - "description" : "The type of the resource. This is currently only 'VirtualMachine'" - }, { - "key" : "page", - "disabled" : false, - "description" : "The page number (default=0)" - }, { - "key" : "size", - "disabled" : false, - "description" : "The amount of elements in one page (default=20)" - } ] - }, - "method" : "GET" - }, - "header" : [ { - "key" : "Content-Type", - "value" : "application/json", - "disabled" : false - } ], - "cookie" : [ ], - "body" : "{\n \"content\" : [ {\n \"metadata\" : {\n \"customer\" : \"example-customer\",\n \"project\" : \"example-project\",\n \"platform\" : \"os.eu-de-central\",\n \"tenantId\" : \"f7ac731cc11f40efbc03a9f9e1d1d21f\",\n \"projectOwner\" : \"project-owner@example.com\",\n \"tags\" : {\n \"costCenter\" : [ \"1234\" ]\n }\n },\n \"resource\" : {\n \"resourceId\" : \"a9debfe41a6d4d09a677da737b907d5e\",\n \"resourceType\" : \"VirtualMachine\",\n \"createdAt\" : \"2020-03-20T15:00:00Z\",\n \"displayName\" : \"My virtual machine\",\n \"lastObservedAt\" : \"2020-04-01T12:00:00Z\",\n \"terminatedAt\" : \"2020-04-25T09:00:00Z\",\n \"resourceMeta\" : {\n \"ipAddress\" : \"12.34.56.78\"\n },\n \"status\" : \"Terminated\"\n }\n } ],\n \"pageable\" : {\n \"pageNumber\" : 0,\n \"pageSize\" : 20,\n \"sort\" : {\n \"empty\" : false,\n \"sorted\" : true,\n \"unsorted\" : false\n },\n \"offset\" : 0,\n \"paged\" : true,\n \"unpaged\" : false\n },\n \"last\" : true,\n \"totalPages\" : 1,\n \"totalElements\" : 1,\n \"size\" : 20,\n \"number\" : 0,\n \"sort\" : {\n \"empty\" : false,\n \"sorted\" : true,\n \"unsorted\" : false\n },\n \"first\" : true,\n \"numberOfElements\" : 1,\n \"empty\" : false\n}", + "body" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-28T07:10:56.203608100Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n}", "code" : 200 } ] } ], diff --git a/website/static/billing-api/meshmetering-swagger-docs.json b/website/static/billing-api/meshmetering-swagger-docs.json index 3bd9678fb..3ca7597cd 100644 --- a/website/static/billing-api/meshmetering-swagger-docs.json +++ b/website/static/billing-api/meshmetering-swagger-docs.json @@ -24,7 +24,7 @@ "200" : { "description" : "", "examples" : { - "application/vnd.meshcloud.api.v1.hal+json" : "{\n \"_links\" : {\n \"cloudresources\" : {\n \"href\" : \"https://mesh-billing-url/external/resources/v2{?customer,project,platform,displayName,resourceType,resourceStatus}\",\n \"templated\" : true\n },\n \"meshobjects\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api\"\n }\n }\n}" + "application/vnd.meshcloud.api.v1.hal+json" : "{\n \"_links\" : {\n \"meshobjects\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects\"\n },\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api\"\n }\n }\n}" }, "schema" : { "$ref" : "#/definitions/apiRoot" @@ -122,7 +122,7 @@ "200" : { "description" : "", "examples" : { - "application/vnd.meshcloud.api.meshchargeback.v3.hal+json" : "{\n \"_embedded\" : {\n \"meshChargebacks\" : [ {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.519450400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n }, {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-10-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.520904700Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-10-01Z\",\n \"tags\" : { },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-10-01T00:00:00Z\",\n \"to\" : \"2024-11-01T00:00:00Z\"\n },\n \"lineItems\" : [ ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 0,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 0\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-10-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks?workspaceIdentifier=testWorkspace&page=0&size=10&sort=name,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "application/vnd.meshcloud.api.meshchargeback.v3.hal+json" : "{\n \"_embedded\" : {\n \"meshChargebacks\" : [ {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.706525400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n }, {\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-10-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.708226900Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-10-01Z\",\n \"tags\" : { },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-10-01T00:00:00Z\",\n \"to\" : \"2024-11-01T00:00:00Z\"\n },\n \"lineItems\" : [ ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 0,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 0\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-10-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks?workspaceIdentifier=testWorkspace&page=0&size=10&sort=name,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 2,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" }, "schema" : { "$ref" : "#/definitions/meshChargebackList" @@ -210,7 +210,7 @@ "200" : { "description" : "", "examples" : { - "application/vnd.meshcloud.api.meshtenantusagereport.v2.hal+json" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-06T13:34:42.164566300Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?workspaceIdentifier=testWorkspace&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" + "application/vnd.meshcloud.api.meshtenantusagereport.v2.hal+json" : "{\n \"_embedded\" : {\n \"meshTenantUsageReports\" : [ {\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-28T07:10:56.203608100Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports?workspaceIdentifier=testWorkspace&page=0&size=10&sort=period,desc\"\n }\n },\n \"page\" : {\n \"size\" : 10,\n \"totalElements\" : 1,\n \"totalPages\" : 1,\n \"number\" : 0\n }\n}" }, "schema" : { "$ref" : "#/definitions/meshTenantUsageReportsList" @@ -238,7 +238,7 @@ "200" : { "description" : "", "examples" : { - "application/vnd.meshcloud.api.meshchargeback.v3.hal+json" : "{\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-06T13:34:39.519450400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n}" + "application/vnd.meshcloud.api.meshchargeback.v3.hal+json" : "{\n \"kind\" : \"meshChargeback\",\n \"apiVersion\" : \"v3\",\n \"metadata\" : {\n \"name\" : \"2024-11-01Z/testPartner:testWorkspace:testProject\",\n \"createdOn\" : \"2024-11-28T07:10:53.706525400Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"projectIdentifier\" : \"testProject\",\n \"period\" : \"2024-11-01Z\",\n \"tags\" : {\n \"paymentIdentifier\" : [ \"123\" ]\n },\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"status\" : {\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"lineItems\" : [ {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test1-localProjectId\",\n \"platformFullIdentifier\" : \"test1-instance.test1-location\",\n \"reportId\" : \"test1-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 1.65,\n \"baseNetAmount\" : 1.65,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n }, {\n \"reportCategory\" : \"BILLING\",\n \"platformTenantId\" : \"test2-localProjectId\",\n \"platformFullIdentifier\" : \"test2-instance.test2-location\",\n \"reportId\" : \"test2-reportId\",\n \"entryDate\" : \"2019-08-03T00:07:01.289Z\",\n \"period\" : \"2019-07-01Z\",\n \"netAmount\" : 3.12,\n \"baseNetAmount\" : 3.12,\n \"baseCurrency\" : \"EUR\",\n \"exchangeRate\" : 1,\n \"currency\" : \"EUR\",\n \"sellerId\" : \"Operations\",\n \"sellerProductGroup\" : \"Platform Team\"\n } ],\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 4.77,\n \"baseCurrency\" : \"EUR\",\n \"baseNetAmount\" : 4.77\n } ]\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshchargebacks/2024-11-01Z/testPartner%3AtestWorkspace%3AtestProject\"\n }\n }\n}" }, "schema" : { "$ref" : "#/definitions/meshChargeback" @@ -266,7 +266,7 @@ "200" : { "description" : "", "examples" : { - "application/vnd.meshcloud.api.meshtenantusagereport.v2.hal+json" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-06T13:34:42.164566300Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n}" + "application/vnd.meshcloud.api.meshtenantusagereport.v2.hal+json" : "{\n \"kind\" : \"meshTenantUsageReport\",\n \"apiVersion\" : \"v2\",\n \"metadata\" : {\n \"name\" : \"gcp1.gcp-ffm:project:2018-01-01Z\",\n \"lastModified\" : \"2024-11-28T07:10:56.203608100Z\",\n \"finalized\" : true\n },\n \"spec\" : {\n \"period\" : \"2018-01-01Z\",\n \"reportCategory\" : \"BILLING\",\n \"platformType\" : \"Gcp\",\n \"platformFullIdentifier\" : \"gcp1.gcp-ffm\",\n \"platformTenantId\" : \"project\"\n },\n \"status\" : {\n \"projectIdentifier\" : \"testProject\",\n \"timeframe\" : {\n \"from\" : \"2024-11-01T00:00:00Z\",\n \"to\" : \"2024-12-01T00:00:00Z\"\n },\n \"netAmounts\" : [ {\n \"currency\" : \"EUR\",\n \"amount\" : 128,\n \"baseCurrency\" : \"EUR\",\n \"baseAmount\" : 0\n } ],\n \"workspaceIdentifier\" : \"testWorkspace\"\n },\n \"_links\" : {\n \"self\" : {\n \"href\" : \"https://mesh-billing-url/api/meshobjects/meshtenantusagereports/gcp1.gcp-ffm%3Aproject/2018-01-01Z\"\n }\n }\n}" }, "schema" : { "$ref" : "#/definitions/meshTenantUsageReport" @@ -277,76 +277,6 @@ "basic" : [ ] } ] } - }, - "/external/resources/v2" : { - "get" : { - "tags" : [ "external" ], - "operationId" : "getExternalCloudResources", - "produces" : [ "application/json" ], - "parameters" : [ { - "name" : "customer", - "in" : "query", - "description" : "The customer identifier", - "required" : false, - "type" : "string" - }, { - "name" : "project", - "in" : "query", - "description" : "The project identifier", - "required" : false, - "type" : "string" - }, { - "name" : "platform", - "in" : "query", - "description" : "The platform identifier", - "required" : false, - "type" : "string" - }, { - "name" : "resourceStatus", - "in" : "query", - "description" : "The status of the resource. This is one of 'Active', 'Terminated', 'Offline' or 'Unknown'", - "required" : false, - "type" : "string" - }, { - "name" : "displayName", - "in" : "query", - "description" : "The name of the resource", - "required" : false, - "type" : "string" - }, { - "name" : "resourceType", - "in" : "query", - "description" : "The type of the resource. This is currently only 'VirtualMachine'", - "required" : false, - "type" : "string" - }, { - "name" : "page", - "in" : "query", - "description" : "The page number (default=0)", - "required" : true, - "type" : "string" - }, { - "name" : "size", - "in" : "query", - "description" : "The amount of elements in one page (default=20)", - "required" : true, - "type" : "string" - } ], - "responses" : { - "200" : { - "description" : "", - "examples" : { - "application/json" : "{\n \"content\" : [ {\n \"metadata\" : {\n \"customer\" : \"example-customer\",\n \"project\" : \"example-project\",\n \"platform\" : \"os.eu-de-central\",\n \"tenantId\" : \"f7ac731cc11f40efbc03a9f9e1d1d21f\",\n \"projectOwner\" : \"project-owner@example.com\",\n \"tags\" : {\n \"costCenter\" : [ \"1234\" ]\n }\n },\n \"resource\" : {\n \"resourceId\" : \"a9debfe41a6d4d09a677da737b907d5e\",\n \"resourceType\" : \"VirtualMachine\",\n \"createdAt\" : \"2020-03-20T15:00:00Z\",\n \"displayName\" : \"My virtual machine\",\n \"lastObservedAt\" : \"2020-04-01T12:00:00Z\",\n \"terminatedAt\" : \"2020-04-25T09:00:00Z\",\n \"resourceMeta\" : {\n \"ipAddress\" : \"12.34.56.78\"\n },\n \"status\" : \"Terminated\"\n }\n } ],\n \"pageable\" : {\n \"pageNumber\" : 0,\n \"pageSize\" : 20,\n \"sort\" : {\n \"empty\" : false,\n \"sorted\" : true,\n \"unsorted\" : false\n },\n \"offset\" : 0,\n \"paged\" : true,\n \"unpaged\" : false\n },\n \"last\" : true,\n \"totalPages\" : 1,\n \"totalElements\" : 1,\n \"size\" : 20,\n \"number\" : 0,\n \"sort\" : {\n \"empty\" : false,\n \"sorted\" : true,\n \"unsorted\" : false\n },\n \"first\" : true,\n \"numberOfElements\" : 1,\n \"empty\" : false\n}" - }, - "schema" : { - "$ref" : "#/definitions/getExternalCloudResources" - } - } - }, - "security" : [ { - "basic" : [ ] - } ] - } } }, "securityDefinitions" : { @@ -721,133 +651,6 @@ "properties" : { } } } - }, - "getExternalCloudResources" : { - "type" : "object", - "required" : [ "content", "empty", "first", "last", "number", "numberOfElements", "pageable", "size", "sort", "totalElements", "totalPages" ], - "properties" : { - "number" : { - "type" : "number", - "description" : "The page number (starts at 0)" - }, - "size" : { - "type" : "number", - "description" : "The page size" - }, - "numberOfElements" : { - "type" : "number", - "description" : "The number of elements in the current page" - }, - "last" : { - "type" : "boolean", - "description" : "Whether the current page is the last one or not" - }, - "totalPages" : { - "type" : "number", - "description" : "The number of total pages" - }, - "pageable" : { - "type" : "object", - "description" : "Object containing sorting information and additional paging information", - "properties" : { } - }, - "sort" : { - "type" : "object", - "description" : "Object containing sorting information", - "properties" : { } - }, - "content" : { - "type" : "array", - "description" : "The content of the response", - "items" : { - "type" : "object", - "properties" : { - "metadata" : { - "type" : "object", - "properties" : { - "tenantId" : { - "type" : "string", - "description" : "The ID of the tenant in the target platform" - }, - "project" : { - "type" : "string", - "description" : "The project the resource belongs to" - }, - "projectOwner" : { - "type" : "string", - "description" : "The username of the owner of the project" - }, - "platform" : { - "type" : "string", - "description" : "The platform the resource belongs to" - }, - "tags" : { - "type" : "object", - "description" : "The tags belonging to the tenant", - "properties" : { } - }, - "customer" : { - "type" : "string", - "description" : "The customer the resource belongs to" - } - }, - "required" : [ "platform", "tenantId" ] - }, - "resource" : { - "type" : "object", - "properties" : { - "resourceMeta" : { - "type" : "object", - "description" : "Any meta information about the resource, e.g. for VM's this is the 'ipAddress'", - "properties" : { } - }, - "createdAt" : { - "type" : "string", - "description" : "The date and time when this resource was created in the target platform" - }, - "resourceId" : { - "type" : "string", - "description" : "The ID of the resource in the target platform" - }, - "terminatedAt" : { - "type" : "string", - "description" : "The date and time when this resource was terminated in the target platform (if terminated)" - }, - "lastObservedAt" : { - "type" : "string", - "description" : "The last time the resource was observed by meshMetering" - }, - "displayName" : { - "type" : "string", - "description" : "The name of the resource in the target platform" - }, - "status" : { - "type" : "string", - "description" : "Status of the resource. Can be 'Active' or 'Terminated'." - }, - "resourceType" : { - "type" : "string", - "description" : "The type of the resource (e.g. VirtualMachine)" - } - }, - "required" : [ "createdAt", "displayName", "lastObservedAt", "resourceId", "resourceMeta", "resourceType", "status" ] - } - } - } - }, - "first" : { - "type" : "boolean", - "description" : "Whether the current page is the first one or not" - }, - "empty" : { - "type" : "boolean", - "description" : "Whether the current page is empty or not" - }, - "totalElements" : { - "type" : "number", - "description" : "The number of total elements available" - } - } } } } \ No newline at end of file diff --git a/website/static/billing-api/overview.html b/website/static/billing-api/overview.html index 670cf27dd..98b0368a2 100644 --- a/website/static/billing-api/overview.html +++ b/website/static/billing-api/overview.html @@ -582,7 +582,7 @@

    Data Types

    diff --git a/website/static/billing-api/technical_specification.html b/website/static/billing-api/technical_specification.html index 6d3110ac3..25937592b 100644 --- a/website/static/billing-api/technical_specification.html +++ b/website/static/billing-api/technical_specification.html @@ -627,7 +627,7 @@

    Versioning