From 5c2d2a5b942ae498aff3504e29ef699c870957ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Floure?= Date: Tue, 3 Mar 2020 13:14:51 +0100 Subject: [PATCH] Document relations for Orders and Managed Services --- uncloud/README-object-relations.md | 34 +++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/uncloud/README-object-relations.md b/uncloud/README-object-relations.md index 7bbc11a..58f2413 100644 --- a/uncloud/README-object-relations.md +++ b/uncloud/README-object-relations.md @@ -19,16 +19,29 @@ stack VM" can be a VM + a disk + an IPv4 address). Bills represent active orders of a month. Bills can be shown during a month but only become definitive at the end of the month. - ## Orders -When +When customer X order a (set) of product, it generates an order for billing +purposes. The ordered products point to that order and register an Order Record +at creation. + +Orders and Order Records are assumed immutable => they are used to generate +bills and should not be mutated. If a product is updated (e.g. adding RAM to +VM), a new order should be generated. + +The order MUST NOT be deleted when a product is deleted, as it is used for +billing (including past bills). + +### Order record + +Used to store billing details of a product at creation: will stay there even if +the product change (e.g. new pricing, updated) and act as some kind of archive. +Used to generate bills. ## Payment Methods Users/customers can register payment methods. - ## Sample flows / products ### A VM snapshot @@ -39,12 +52,10 @@ able to rollback the VM to a previous state. Creating a VM snapshot (-product) creates a related order. Deleting a VMSnapshotproduct sets the order to deleted. - ### Object Storage (tbd by Balazs) - ### A "raw" VM (tbd by Ahmed) @@ -56,3 +67,16 @@ VMSnapshotproduct sets the order to deleted. ### A dual stack VM (tbd by Ahmed) + +### A managed service (e.g. Matrix-as-a-Service) + +Customer orders service with: + * Service-specific configuration: e.g. domain name for matrix + * VM configuration: + - CPU + - Memory + - Disk (soon) + +It creates a new Order with two products/records: + * Service itself (= management) + * Underlying VM