зеркало из https://github.com/microsoft/AzureTRE.git
Родитель
fbb584ffab
Коммит
d6f1a1740d
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 64 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 38 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 67 KiB |
|
@ -0,0 +1,81 @@
|
|||
# Logical data model
|
||||
|
||||
![Resource](./assets/logical-data-model-1.png)
|
||||
|
||||
## Resource
|
||||
|
||||
| Key | Value description |
|
||||
| --- | ----------------- |
|
||||
| `id` | A unique resource id. |
|
||||
| `parentId` | The parent resource id. |
|
||||
| `specificationVersion` | Resource specification version. |
|
||||
| `resourceVersion` | Resource version. |
|
||||
| `title` | The name (title) of the resource. Rendered in the UI. |
|
||||
| `description` | The description of the resource. Rendered in the UI. |
|
||||
| `resourceType` | Resource type. Workspace or Service. |
|
||||
| `status` | Resource status. |
|
||||
| `isDeleted` | Is the resource marked for deletion. |
|
||||
| `properties` | Resource properties list.|
|
||||
| `etag` | The resource etag. |
|
||||
|
||||
### Property
|
||||
|
||||
| Key | Value description |
|
||||
| --- | ----------------- |
|
||||
| `title` | The name (title) of the variable. Rendered in the UI. |
|
||||
| `description` | The description of the variable. Rendered in the UI. |
|
||||
| `propertyType` | The type of the variable value. |
|
||||
| `default` | *(Optional)* The default value of the variable. |
|
||||
| `required` | *(Optional)* A boolean value defining whether a value is required or not. `true` by default. |
|
||||
| `mutable` | *(Optional)* A boolean value defining whether the variable can be changed by the end-user or not. `true` by default. |
|
||||
| `value` | The variable value (when populated in the state store). |
|
||||
|
||||
## Resource assignment
|
||||
|
||||
![ResourceAssignment](./assets/logical-data-model-2.png)
|
||||
|
||||
| Key | Value description |
|
||||
| --- | ----------------- |
|
||||
| `id` | A unique assignment id. |
|
||||
| `userId` | User id. |
|
||||
| `resourceId` | Resource id. |
|
||||
| `permissions` | Granted permissions. |
|
||||
|
||||
### Permissions
|
||||
|
||||
| Key | Value description |
|
||||
| --- | ----------------- |
|
||||
| `WorkspaceWrite` | Permission to write a workspace. |
|
||||
| `WorkspaceRead` | Permission to read a workspace. |
|
||||
| `WorkspaceDelete` | Permission to delete a workspace. |
|
||||
| `WorkspaceCreateService` | Permission to create a service. |
|
||||
| `WorkspaceUserRead` | Permission to read workspace users. |
|
||||
| `WorkspaceUserManage` | Permission to manage workspace users. |
|
||||
| `ServiceRead` | Permission to read a service. |
|
||||
| `ServiceWrite` | Permission to write a service. |
|
||||
| `ServiceDelete` | Permission to delete a service. |
|
||||
|
||||
## Operation
|
||||
|
||||
![Operation](./assets/logical-data-model-3.png)
|
||||
|
||||
| Key | Value description |
|
||||
| --- | ----------------- |
|
||||
| `id` | A unique operation id. |
|
||||
| `operationType` | Operation type (Create, Update, Delete). |
|
||||
| `status` | Operation status. |
|
||||
| `resourceId` | Resource id. |
|
||||
| `resourceVersion` | Resource version. |
|
||||
| `createdAt` | Time when operation was created. |
|
||||
| `lastUpdatedAt` | Time when operation was last updated. |
|
||||
| `events` | Operation events. |
|
||||
|
||||
### Operation event
|
||||
|
||||
| Key | Value description |
|
||||
| --- | ----------------- |
|
||||
| `timeStamp` | Event time stamp. |
|
||||
| `message` | Event message. |
|
||||
| `from` | Event originator. |
|
||||
| `severity` | Severity of event. |
|
||||
| `eventType` | Event type. |
|
|
@ -0,0 +1,108 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2019-09/schema",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Operation id.",
|
||||
"format": "uuid"
|
||||
},
|
||||
"operationType": {
|
||||
"type": "string",
|
||||
"description": "Operation type.",
|
||||
"enum": [
|
||||
"Create",
|
||||
"Update",
|
||||
"Delete"
|
||||
]
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Operation status.",
|
||||
"enum": [
|
||||
"Pending",
|
||||
"Processing",
|
||||
"Succeeded",
|
||||
"Failed"
|
||||
]
|
||||
},
|
||||
"resourceId": {
|
||||
"type": "string",
|
||||
"description": "Resource id.",
|
||||
"format": "uuid"
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "Resource version."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"description": "Operation creation time."
|
||||
},
|
||||
"lastUpdatedAt": {
|
||||
"type": "string",
|
||||
"description": "Operation last update time."
|
||||
},
|
||||
"events": {
|
||||
"type": "array",
|
||||
"description": "Operation event.",
|
||||
"items": {"$ref": "#/$defs/event" }
|
||||
},
|
||||
"etag": {
|
||||
"type": "string",
|
||||
"description": "ETag."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"operationType",
|
||||
"status",
|
||||
"resourceId",
|
||||
"resourceVersion",
|
||||
"createdAt",
|
||||
"lastUpdatedAt",
|
||||
"events",
|
||||
"etag"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"$defs": {
|
||||
"event": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"timeStamp": {
|
||||
"type": "string",
|
||||
"description": "Event timestamp."
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Event message."
|
||||
},
|
||||
"from": {
|
||||
"type": "string",
|
||||
"description": "Event originator."
|
||||
},
|
||||
"severity": {
|
||||
"type": "string",
|
||||
"description": "Event classification.",
|
||||
"enum": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"critical"
|
||||
]
|
||||
},
|
||||
"eventType": {
|
||||
"type": "string",
|
||||
"description": "Event type."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"timeStamp",
|
||||
"message",
|
||||
"from",
|
||||
"severity",
|
||||
"eventType"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2019-09/schema",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Assignment id."
|
||||
},
|
||||
"userId": {
|
||||
"type": "string",
|
||||
"description": "User id.",
|
||||
"format": "uuid"
|
||||
},
|
||||
"ResourceId": {
|
||||
"type": "string",
|
||||
"description": "Resource id.",
|
||||
"format": "uuid"
|
||||
},
|
||||
"permissions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"WorkspaceWrite",
|
||||
"WorkspaceRead",
|
||||
"WorkspaceDelete",
|
||||
"WorkspaceCreateService",
|
||||
"WorkspaceUserRead",
|
||||
"WorkspaceUserManage",
|
||||
"ServiceRead",
|
||||
"ServiceWrite",
|
||||
"ServiceDelete"
|
||||
]
|
||||
}
|
||||
},
|
||||
"etag": {
|
||||
"type": "string",
|
||||
"description": "ETag."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"userId",
|
||||
"resourceId",
|
||||
"permissions",
|
||||
"etag"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2019-09/schema",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Resource id.",
|
||||
"format": "uuid"
|
||||
},
|
||||
"parentId": {
|
||||
"type": "string",
|
||||
"description": "Parent resource id.",
|
||||
"format": "uuid"
|
||||
},
|
||||
"specificationVersion": {
|
||||
"type": "string",
|
||||
"description": "Resource specification version."
|
||||
},
|
||||
"ResourceVersion": {
|
||||
"type": "string",
|
||||
"description": "Resource version."
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Resource title.",
|
||||
"maxLength": 120
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Resource description.",
|
||||
"maxLength": 120
|
||||
},
|
||||
"resourceType": {
|
||||
"type": "string",
|
||||
"description": "Resource type.",
|
||||
"enum": ["Workspace", "Service"]
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Resource status.",
|
||||
"enum": [
|
||||
"NotDeployed",
|
||||
"Deploying",
|
||||
"Deployed",
|
||||
"Deleting",
|
||||
"Deleted"
|
||||
]
|
||||
},
|
||||
"isDeleted": {
|
||||
"type": "boolean",
|
||||
"description": "Is the resource marked for deletion?"
|
||||
},
|
||||
"properties": {
|
||||
"type": "array",
|
||||
"description": "Resource properties.",
|
||||
"items": {"$ref": "#/$defs/property" }
|
||||
},
|
||||
"etag": {
|
||||
"type": "string",
|
||||
"description": "ETag."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"parentId",
|
||||
"specificationVersion",
|
||||
"resourceVersion",
|
||||
"title",
|
||||
"description",
|
||||
"resourceType",
|
||||
"status",
|
||||
"isDeleted",
|
||||
"properties",
|
||||
"etag"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"$defs": {
|
||||
"property": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Property title."
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Property description."
|
||||
},
|
||||
"propertyType": {
|
||||
"type": "string",
|
||||
"description": "Property type."
|
||||
},
|
||||
"default": {
|
||||
"type": "string",
|
||||
"description": "Property default value."
|
||||
},
|
||||
"required": {
|
||||
"type": "boolean",
|
||||
"description": "Is property required?"
|
||||
},
|
||||
"mutable": {
|
||||
"type": "boolean",
|
||||
"description": "Is value mutable?"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "Property value."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"title",
|
||||
"description",
|
||||
"propertyType",
|
||||
"required",
|
||||
"mutable",
|
||||
"value"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче