"get": {
"responses": {
"200": {
- "description": "Success"
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/InventoryAPIVersion"
+ }
}
},
"operationId": "Get Inventory Version",
"get": {
"responses": {
"200": {
- "description": "Success"
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/InventoryV1APIVersion"
+ }
}
},
"operationId": "Get Inventory API version",
}
},
"/o2ims-infrastructureInventory/v1/subscriptions": {
- "post": {
- "responses": {
- "201": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/SubscriptionGetDto"
- }
- }
- },
- "operationId": "Create a Subscription",
- "parameters": [
- {
- "name": "payload",
- "required": true,
- "in": "body",
- "schema": {
- "$ref": "#/definitions/SubscriptionCreateDto"
- }
- }
- ],
- "tags": [
- "O2IMS-InfrastructureInventory"
- ]
- },
"get": {
"responses": {
"200": {
"tags": [
"O2IMS-InfrastructureInventory"
]
+ },
+ "post": {
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SubscriptionGetDto"
+ }
+ }
+ },
+ "operationId": "Create a Subscription",
+ "parameters": [
+ {
+ "name": "payload",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/SubscriptionCreateDto"
+ }
+ }
+ ],
+ "tags": [
+ "O2IMS-InfrastructureInventory"
+ ]
}
},
"/o2ims-infrastructureInventory/v1/subscriptions/{subscriptionID}": {
"get": {
"responses": {
"200": {
- "description": "Success"
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/MonitoringAPIVersion"
+ }
}
},
"operationId": "Get Monitoring Version",
}
},
"/o2ims-infrastructureMonitoring/v1/alarmSubscriptions": {
- "post": {
- "responses": {
- "201": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/AlarmSubscriptionGetDto"
- }
- }
- },
- "operationId": "Create a Alarm Subscription",
- "parameters": [
- {
- "name": "payload",
- "required": true,
- "in": "body",
- "schema": {
- "$ref": "#/definitions/AlarmSubscriptionCreateDto"
- }
- }
- ],
- "tags": [
- "O2IMS-InfrastructureMonitoring"
- ]
- },
"get": {
"responses": {
"200": {
"tags": [
"O2IMS-InfrastructureMonitoring"
]
+ },
+ "post": {
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AlarmSubscriptionGetDto"
+ }
+ }
+ },
+ "operationId": "Create a Alarm Subscription",
+ "parameters": [
+ {
+ "name": "payload",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/AlarmSubscriptionCreateDto"
+ }
+ }
+ ],
+ "tags": [
+ "O2IMS-InfrastructureMonitoring"
+ ]
}
},
"/o2ims-infrastructureMonitoring/v1/alarmSubscriptions/{alarmSubscriptionID}": {
"get": {
"responses": {
"200": {
- "description": "Success"
+ "description": "Success",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MonitoringV1APIVersion"
+ }
+ }
}
},
"operationId": "Get Monitoring API version",
}
],
"definitions": {
+ "InventoryAPIVersion": {
+ "required": [
+ "uriPrefix"
+ ],
+ "properties": {
+ "uriPrefix": {
+ "type": "string",
+ "description": "Specifies the URI prefix for the API",
+ "example": "https://128.224.115.36:30205/o2ims-infrastructureInventory"
+ },
+ "apiVersions": {
+ "type": "array",
+ "description": "Version(s) supported for the API signaled by the uriPrefix attribute.",
+ "example": [
+ {
+ "version": "1.0.0"
+ }
+ ],
+ "items": {
+ "$ref": "#/definitions/InventoryApiVersionStructure"
+ }
+ }
+ },
+ "x-mask": "{uriPrefix,apiVersions}",
+ "type": "object"
+ },
+ "InventoryApiVersionStructure": {
+ "required": [
+ "version"
+ ],
+ "properties": {
+ "version": {
+ "type": "string",
+ "description": "Identifies a supported version.",
+ "example": "1.0.0"
+ }
+ },
+ "x-mask": "{version}",
+ "type": "object"
+ },
+ "InventoryV1APIVersion": {
+ "required": [
+ "uriPrefix"
+ ],
+ "properties": {
+ "uriPrefix": {
+ "type": "string",
+ "description": "Specifies the URI prefix for the API",
+ "example": "https://128.224.115.36:30205/o2ims-infrastructureInventory/v1"
+ },
+ "apiVersions": {
+ "type": "array",
+ "description": "Version(s) supported for the API signaled by the uriPrefix attribute.",
+ "example": [
+ {
+ "version": "1.0.0"
+ }
+ ],
+ "items": {
+ "$ref": "#/definitions/InventoryV1ApiVersionStructure"
+ }
+ }
+ },
+ "x-mask": "{uriPrefix,apiVersions}",
+ "type": "object"
+ },
+ "InventoryV1ApiVersionStructure": {
+ "required": [
+ "version"
+ ],
+ "properties": {
+ "version": {
+ "type": "string",
+ "description": "Identifies a supported version.",
+ "example": "1.0.0"
+ }
+ },
+ "x-mask": "{version}",
+ "type": "object"
+ },
"OcloudDto": {
"required": [
"oCloudId"
"properties": {
"resourceTypeId": {
"type": "string",
- "description": "Resource type ID"
+ "description": "Identifier for the Resource Type.",
+ "example": "60cba7be-e2cd-3b8c-a7ff-16e0f10573f9"
},
"name": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable name of the resource type.",
+ "example": "pserver"
},
"description": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable description of the resource type.",
+ "example": "The Physical Server resource type"
},
"vendor": {
- "type": "string"
+ "type": "string",
+ "description": "Provider of the Resource.",
+ "example": ""
},
"model": {
- "type": "string"
+ "type": "string",
+ "description": "Information about the model of the resource as defined by its provider.",
+ "example": ""
},
"version": {
- "type": "string"
+ "type": "string",
+ "description": "Version or generation of the resource as defined by its provider.",
+ "example": ""
},
"alarmDictionary": {
"$ref": "#/definitions/AlarmDictionaryDto"
},
"extensions": {
- "type": "string"
+ "type": "string",
+ "description": "List of metadata key-value pairs used to associate meaningful metadata to the related resource type.",
+ "example": ""
}
},
"x-mask": "{resourceTypeId,name,description,model,vendor,version}",
"AlarmDictionaryDto": {
"properties": {
"id": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the Alarm Dictionary.",
+ "example": "7e1e59c3-c99e-3d1c-9934-21548a3a699a"
},
"alarmDictionaryVersion": {
- "type": "string"
+ "type": "string",
+ "description": "Version of the Alarm Dictionary.",
+ "example": "0.1"
},
"alarmDictionarySchemaVersion": {
- "type": "string"
+ "type": "string",
+ "description": "Version of the Alarm Dictionary Schema to which this alarm dictionary conforms.",
+ "example": "0.1"
},
"entityType": {
- "type": "string"
+ "type": "string",
+ "description": "O-RAN entity type emitting the alarm: This shall be unique per vendor ResourceType.model and ResourceType.version",
+ "example": "pserver"
},
"vendor": {
- "type": "string"
+ "type": "string",
+ "description": "Vendor of the Entity Type to whom this Alarm Dictionary applies. This should be the same value as in the ResourceType.vendor attribute.",
+ "example": ""
},
"managementInterfaceId": {
- "type": "string"
+ "type": "string",
+ "description": "List of management interface over which alarms are transmitted for this Entity Type.",
+ "example": "O2IMS"
},
"pkNotificationField": {
- "type": "string"
+ "type": "string",
+ "description": "Identifies which field or list of fields in the alarm notification contains the primary key (PK) into the Alarm Dictionary for this interface; i.e. which field contains the Alarm Definition ID.",
+ "example": ""
},
"alarmDefinition": {
"type": "array",
+ "description": "Contains the list of alarms that can be detected against this ResourceType.",
+ "example": "",
"items": {
"$ref": "#/definitions/AlarmDefinitionDto"
}
"AlarmDefinitionDto": {
"properties": {
"alarmDefinitionId": {
- "type": "string"
+ "type": "string",
+ "description": "Provides a unique identifier of the alarm being raised.",
+ "example": "eaefa070-7cb6-3403-be46-177bd9ccc2d3"
},
"alarmName": {
- "type": "string"
+ "type": "string",
+ "description": "Provides short name for the alarm.",
+ "example": "100.104"
},
"alarmLastChange": {
- "type": "string"
+ "type": "string",
+ "description": "Indicates the Alarm Dictionary Version in which this alarm last changed.",
+ "example": "0.1"
},
"alarmChangeType": {
- "type": "string"
+ "type": "string",
+ "description": "Indicates the type of change that occurred during the alarm last change; added, deleted, modified.",
+ "example": "ADDED"
},
"alarmDescription": {
- "type": "string"
+ "type": "string",
+ "description": "Provides a longer descriptive meaning of the alarm condition and a description of the consequences of the alarm condition.",
+ "example": "host=<hostname>.filesystem=<mount-dir>\n File System threshold exceeded; threshold x%, actual y% .\n CRITICAL @ 90%\n MAJOR @ 80%\nOR\nhost=<hostname>.volumegroup=<volumegroup-name>\n Monitor and if condition persists, consider addin ..."
},
"proposedRepairActions": {
- "type": "string"
+ "type": "string",
+ "description": "Provides guidance for proposed repair actions.",
+ "example": "Reduce usage or resize filesystem."
},
"clearingType": {
- "type": "string"
+ "type": "string",
+ "description": "Identifies whether alarm is cleared automatically or manually.",
+ "example": "MANUAL"
},
"managementInterfaceId": {
- "type": "string"
+ "type": "string",
+ "description": "List of management interface over which alarms are transmitted for this Entity Type.",
+ "example": "O2IMS"
},
"pkNotificationField": {
- "type": "string"
+ "type": "string",
+ "description": "Identifies which field or list of fields in the alarm notification contains the primary key (PK) into the Alarm Dictionary for this interface; i.e. which field contains the Alarm Definition ID.",
+ "example": ""
},
"alarmAdditionalFields": {
- "type": "string"
+ "type": "string",
+ "description": "List of metadata key-value pairs used to associate meaningful metadata to the related resource type.",
+ "example": ""
}
},
"type": "object"
"properties": {
"resourceId": {
"type": "string",
- "description": "Resource ID"
+ "description": "Identifier for the Resource.",
+ "example": "5b3a2da8-17da-466c-b5f7-972590c7baf2"
},
"resourceTypeId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the Resource Type of this resource.",
+ "example": "60cba7be-e2cd-3b8c-a7ff-16e0f10573f9"
},
"resourcePoolId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier of the Resource Pool containing this resource.",
+ "example": "f078a1d3-56df-46c2-88a2-dd659aa3f6bd"
},
"globalAssetId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier or serial number of the resource.",
+ "example": ""
},
"parentId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the parent resource.",
+ "example": "None"
},
"description": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable description of the resource.",
+ "example": "id:1;hostname:controller-0;mgmt_mac:00:00:00:00:00:00;mgmt_ip:192.168.204.2;personality:controller;subfunctions:controller,worker;administrative:unlocked;operational:enabled;availability:available;clock_synchronization:ntp;capabilities:{'is_max_cpu_configurable': 'configurable', 'stor_function': 'monitor', 'Personality': 'Controller-Active'};boot_device:/dev/disk/by-path/pci-0000:02:00.0-scsi-0:1:0:0;rootfs_device:/dev/disk/by-path/pci-0000:02:00.0-scsi-0:1:0:0;software_load:22.12;install_state:None;max_cpu_mhz_allowed:None"
},
"extensions": {
"type": "object"
"properties": {
"resourceId": {
"type": "string",
- "description": "Resource ID"
+ "description": "Identifier for the Resource.",
+ "example": "eee8b101-6b7f-4f0a-b54b-89adc0f3f906"
},
"resourceTypeId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the Resource Type of this resource.",
+ "example": "a45983bb-199a-30ec-b7a1-eab2455f333c"
},
"resourcePoolId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier of the Resource Pool containing this resource.",
+ "example": "f078a1d3-56df-46c2-88a2-dd659aa3f6bd"
},
"globalAssetId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier or serial number of the resource.",
+ "example": ""
},
"parentId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the parent resource.",
+ "example": "5b3a2da8-17da-466c-b5f7-972590c7baf2"
},
"description": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable description of the resource.",
+ "example": "cpu:0;core:0;thread:0;cpu_family:6;cpu_model:Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz;allocated_function:Platform;numa_node:0"
},
"extensions": {
"type": "object"
"properties": {
"resourceId": {
"type": "string",
- "description": "Resource ID"
+ "description": "Identifier for the Resource.",
+ "example": "eee8b101-6b7f-4f0a-b54b-89adc0f3f906"
},
"resourceTypeId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the Resource Type of this resource.",
+ "example": "a45983bb-199a-30ec-b7a1-eab2455f333c"
},
"resourcePoolId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier of the Resource Pool containing this resource.",
+ "example": "f078a1d3-56df-46c2-88a2-dd659aa3f6bd"
},
"globalAssetId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier or serial number of the resource.",
+ "example": ""
},
"parentId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the parent resource.",
+ "example": "5b3a2da8-17da-466c-b5f7-972590c7baf2"
},
"description": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable description of the resource.",
+ "example": "cpu:0;core:0;thread:0;cpu_family:6;cpu_model:Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz;allocated_function:Platform;numa_node:0"
},
"extensions": {
"type": "object"
"properties": {
"resourceId": {
"type": "string",
- "description": "Resource ID"
+ "description": "Identifier for the Resource.",
+ "example": "eee8b101-6b7f-4f0a-b54b-89adc0f3f906"
},
"resourceTypeId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the Resource Type of this resource.",
+ "example": "a45983bb-199a-30ec-b7a1-eab2455f333c"
},
"resourcePoolId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier of the Resource Pool containing this resource.",
+ "example": "f078a1d3-56df-46c2-88a2-dd659aa3f6bd"
},
"globalAssetId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier or serial number of the resource.",
+ "example": ""
},
"parentId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the parent resource.",
+ "example": "5b3a2da8-17da-466c-b5f7-972590c7baf2"
},
"description": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable description of the resource.",
+ "example": "cpu:0;core:0;thread:0;cpu_family:6;cpu_model:Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz;allocated_function:Platform;numa_node:0"
},
"extensions": {
"type": "object"
"properties": {
"deploymentManagerId": {
"type": "string",
- "description": "Deployment manager ID"
+ "description": "Identifier for the Deployment Manager.",
+ "example": "c765516a-a84e-30c9-b954-9c3031bf71c8"
},
"name": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable name of the deployment manager.",
+ "example": "95b818b8-b315-4d9f-af37-b82c492101f1.kubernetes"
},
"description": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable description of the deployment manager.",
+ "example": "A DMS"
},
"oCloudId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the containing O-Cloud.",
+ "example": "f078a1d3-56df-46c2-88a2-dd659aa3f6bd"
},
"serviceUri": {
- "type": "string"
+ "type": "string",
+ "description": "The fully qualified URI to a Deployment Management server for O2dms services.",
+ "example": "https://128.224.115.51:6443"
},
"profileSupportList": {
"type": "array",
- "description": "Profile support list, use default for the return endpoint",
+ "description": "Profile support list, use default for the return endpoint",
+ "example": [
+ "native_k8sapi"
+ ],
"items": {
"type": "string"
}
},
"extensions": {
- "type": "string"
+ "type": "string",
+ "description": "List of metadata key-value pairs used to associate meaningful metadata to the related Deployment Manager",
+ "example": ""
}
},
"x-mask": "{deploymentManagerId,name,description,oCloudId,serviceUri,profileSupportList}",
"properties": {
"deploymentManagerId": {
"type": "string",
- "description": "Deployment manager ID"
+ "description": "Identifier for the Deployment Manager.",
+ "example": "c765516a-a84e-30c9-b954-9c3031bf71c8"
},
"name": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable name of the deployment manager.",
+ "example": "95b818b8-b315-4d9f-af37-b82c492101f1.kubernetes"
},
"description": {
- "type": "string"
+ "type": "string",
+ "description": "Human readable description of the deployment manager.",
+ "example": "A DMS"
},
"oCloudId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the containing O-Cloud.",
+ "example": "f078a1d3-56df-46c2-88a2-dd659aa3f6bd"
},
"serviceUri": {
- "type": "string"
+ "type": "string",
+ "description": "The fully qualified URI to a Deployment Management server for O2dms services.",
+ "example": "https://128.224.115.51:6443"
},
"extensions": {
"$ref": "#/definitions/DeploymentManagerExtensions"
"DeploymentManagerExtensions": {
"properties": {
"profileName": {
- "type": "string"
+ "type": "string",
+ "description": "",
+ "example": ""
},
"profileData": {
"$ref": "#/definitions/DeploymentManagerGetDtoProfile"
"DeploymentManagerGetDtoProfile": {
"properties": {
"cluster_api_endpoint": {
- "type": "string"
+ "type": "string",
+ "description": "Kubernetes Cluster API Endpoint",
+ "example": "https://128.224.115.51:6443"
},
"cluster_ca_cert": {
- "type": "string"
+ "type": "string",
+ "description": "Kubernetes Cluster CA cert",
+ "example": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZEakNDQX....."
},
"admin_user": {
- "type": "string"
+ "type": "string",
+ "description": "Kubernetes Admin username",
+ "example": "kubernetes-admin"
},
"admin_client_cert": {
- "type": "string"
+ "type": "string",
+ "description": "Kubernetes Admin client cert",
+ "example": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVJRENDQW....."
},
"admin_client_key": {
- "type": "string"
+ "type": "string",
+ "description": "Kubernetes Admin client key",
+ "example": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcE....."
},
"helmcli_host_with_port": {
- "type": "string"
+ "type": "string",
+ "description": "Helm CLI Host address with SSH port",
+ "example": "128.224.115.34:30022"
},
"helmcli_username": {
- "type": "string"
+ "type": "string",
+ "description": "Helm CLI SSH login username",
+ "example": "helm"
},
"helmcli_password": {
- "type": "string"
+ "type": "string",
+ "description": "Helm CLI SSH login password",
+ "example": "password"
},
"helmcli_kubeconfig": {
- "type": "string"
+ "type": "string",
+ "description": "Helm CLI KUBECONFIG path",
+ "example": "/share/kubeconfig_c765516a.config"
}
},
"type": "object"
"properties": {
"callback": {
"type": "string",
- "description": "Subscription callback address"
+ "description": "Identifier for the Subscription.",
+ "example": "https://128.224.115.15:1081/smo/v1/o2ims_inventory_observer"
},
"consumerSubscriptionId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the consumer of events sent due to the Subscription.",
+ "example": "3F20D850-AF4F-A84F-FB5A-0AD585410361"
},
"filter": {
- "type": "string"
+ "type": "string",
+ "description": "Criteria for events which do not need to be reported or will be filtered by the subscription notification service. Therefore, if a filter is not provided then all events are reported.",
+ "example": ""
}
},
"type": "object"
"properties": {
"subscriptionId": {
"type": "string",
- "description": "Subscription ID"
+ "description": "Identifier for the Subscription.",
+ "example": "0bea3e71-d2f7-4bf3-9c06-41d8d35806f9"
},
"callback": {
- "type": "string"
+ "type": "string",
+ "description": "The fully qualified URI to a consumer procedure which can process a Post of the InventoryEventNotification.",
+ "example": "https://128.224.115.15:1081/smo/v1/o2ims_inventory_observer"
},
"consumerSubscriptionId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the consumer of events sent due to the Subscription.",
+ "example": "3F20D850-AF4F-A84F-FB5A-0AD585410361"
},
"filter": {
- "type": "string"
+ "type": "string",
+ "description": "Criteria for events which do not need to be reported or will be filtered by the subscription notification service. Therefore, if a filter is not provided then all events are reported.",
+ "example": ""
}
},
"x-mask": "{subscriptionId,callback}",
"type": "object"
},
+ "MonitoringAPIVersion": {
+ "required": [
+ "uriPrefix"
+ ],
+ "properties": {
+ "uriPrefix": {
+ "type": "string",
+ "description": "Specifies the URI prefix for the API",
+ "example": "https://128.224.115.36:30205/o2ims-infrastructureMonitoring"
+ },
+ "apiVersions": {
+ "type": "array",
+ "description": "Version(s) supported for the API signaled by the uriPrefix attribute.",
+ "example": [
+ {
+ "version": "1.0.0"
+ }
+ ],
+ "items": {
+ "$ref": "#/definitions/MonitoringApiVersionStructure"
+ }
+ }
+ },
+ "x-mask": "{uriPrefix,apiVersions}",
+ "type": "object"
+ },
+ "MonitoringApiVersionStructure": {
+ "required": [
+ "version"
+ ],
+ "properties": {
+ "version": {
+ "type": "string",
+ "description": "Identifies a supported version.",
+ "example": "1.0.0"
+ }
+ },
+ "x-mask": "{version}",
+ "type": "object"
+ },
+ "MonitoringV1APIVersion": {
+ "required": [
+ "uriPrefix"
+ ],
+ "properties": {
+ "uriPrefix": {
+ "type": "string",
+ "description": "Specifies the URI prefix for the API",
+ "example": "https://128.224.115.36:30205/o2ims-infrastructureMonitoring/v1"
+ },
+ "apiVersions": {
+ "type": "array",
+ "description": "Version(s) supported for the API signaled by the uriPrefix attribute.",
+ "example": [
+ {
+ "version": "1.0.0"
+ }
+ ],
+ "items": {
+ "$ref": "#/definitions/MonitoringV1ApiVersionStructure"
+ }
+ }
+ },
+ "x-mask": "{uriPrefix,apiVersions}",
+ "type": "object"
+ },
+ "MonitoringV1ApiVersionStructure": {
+ "required": [
+ "version"
+ ],
+ "properties": {
+ "version": {
+ "type": "string",
+ "description": "Identifies a supported version.",
+ "example": "1.0.0"
+ }
+ },
+ "x-mask": "{version}",
+ "type": "object"
+ },
"AlarmGetDto": {
"required": [
"alarmEventRecordId"
"properties": {
"alarmEventRecordId": {
"type": "string",
- "description": "Alarm Event Record ID",
- "example": "f078a1d3-56df-46c2-88a2-dd659aa3f6bd"
+ "description": "The identifier for the AlarmEventRecord Object.",
+ "example": "97cc2b01-0e71-4a93-a911-2e87f04d996f"
},
"resourceTypeId": {
- "type": "string"
+ "type": "string",
+ "description": "A reference to the type of resource which caused the alarm.",
+ "example": "60cba7be-e2cd-3b8c-a7ff-16e0f10573f9"
},
"resourceTypeID": {
- "type": "string"
+ "type": "string",
+ "description": "A reference to the type of resource which caused the alarm.(Specification)",
+ "example": "60cba7be-e2cd-3b8c-a7ff-16e0f10573f9"
},
"resourceId": {
- "type": "string"
+ "type": "string",
+ "description": "A reference to the resource instance which caused the alarm.",
+ "example": "5b3a2da8-17da-466c-b5f7-972590c7baf2"
},
"resourceID": {
- "type": "string"
+ "type": "string",
+ "description": "A reference to the resource instance which caused the alarm.(Specification)",
+ "example": "5b3a2da8-17da-466c-b5f7-972590c7baf2"
},
"alarmDefinitionId": {
- "type": "string"
+ "type": "string",
+ "description": "A reference to the Alarm Definition record in the Alarm Dictionary associated with the referenced Resource Type.",
+ "example": "1197f463-b3d4-3aa3-9c14-faa493baa069"
},
"alarmDefinitionID": {
- "type": "string"
+ "type": "string",
+ "description": "A reference to the Alarm Definition record in the Alarm Dictionary associated with the referenced Resource Type.(Specification)",
+ "example": "1197f463-b3d4-3aa3-9c14-faa493baa069"
},
"probableCauseId": {
- "type": "string"
+ "type": "string",
+ "description": "A reference to the ProbableCause of the Alarm.",
+ "example": "f52054c9-6f3c-39a0-aab8-e00e01d8c4d3"
},
"probableCauseID": {
- "type": "string"
+ "type": "string",
+ "description": "A reference to the ProbableCause of the Alarm.(Specification)",
+ "example": "f52054c9-6f3c-39a0-aab8-e00e01d8c4d3"
},
"alarmRaisedTime": {
- "type": "string"
+ "type": "string",
+ "description": "Date/Time stamp value when the AlarmEventRecord has been created.",
+ "example": "2022-12-22 09:42:53"
},
"alarmChangedTime": {
- "type": "string"
+ "type": "string",
+ "description": "Date/Time stamp value when any value of the AlarmEventRecord has been modified.",
+ "example": ""
},
"alarmAcknowledgeTime": {
- "type": "string"
+ "type": "string",
+ "description": "Date/Time stamp value when the alarm condition is acknowledged.",
+ "example": ""
},
"alarmAcknowledged": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Boolean value indicating of a management system has acknowledged the alarm.",
+ "example": false
},
"perceivedSeverity": {
- "type": "string"
+ "type": "string",
+ "description": "One of the following values: \n 0 for \"CRITICAL\" \n1 for \"MAJOR\" \n2 for \"MINOR\" \n3 for \"WARNING\" \n4 for \"INDETERMINATE\" \n5 for \"CLEARED\"",
+ "example": "1"
},
"extensions": {
"type": "object"
"properties": {
"callback": {
"type": "string",
- "description": "Alarm Subscription callback address"
+ "description": "The fully qualified URI to a consumer procedure which can process a Post of the InventoryEventNotification.",
+ "example": "https://128.224.115.15:1081/smo/v1/o2ims_alarm_observer"
},
"consumerSubscriptionId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the consumer of events sent due to the Subscription.",
+ "example": "3F20D850-AF4F-A84F-FB5A-0AD585410361"
},
"filter": {
- "type": "string"
+ "type": "string",
+ "description": "Criteria for events which do not need to be reported or will be filtered by the subscription notification service. Therefore, if a filter is not provided then all events are reported.",
+ "example": ""
}
},
"type": "object"
"properties": {
"alarmSubscriptionId": {
"type": "string",
- "description": "Alarm Subscription ID"
+ "description": "Identifier for the Alarm Subscription.",
+ "example": "e320da6d-27a8-4948-8b52-3bf3355b45f3"
},
"callback": {
- "type": "string"
+ "type": "string",
+ "description": "The fully qualified URI to a consumer procedure which can process a Post of the InventoryEventNotification.",
+ "example": "https://128.224.115.15:1081/smo/v1/o2ims_alarm_observer"
},
"consumerSubscriptionId": {
- "type": "string"
+ "type": "string",
+ "description": "Identifier for the consumer of events sent due to the Subscription.",
+ "example": "3F20D850-AF4F-A84F-FB5A-0AD585410361"
},
"filter": {
- "type": "string"
+ "type": "string",
+ "description": "Criteria for events which do not need to be reported or will be filtered by the subscription notification service. Therefore, if a filter is not provided then all events are reported.",
+ "example": ""
}
},
"x-mask": "{alarmSubscriptionId,callback}",
responses:
"200":
description: Success
+ schema:
+ $ref: '#/definitions/InventoryAPIVersion'
/o2ims-infrastructureInventory/v1:
get:
tags:
responses:
"200":
description: Success
+ schema:
+ $ref: '#/definitions/InventoryV1APIVersion'
/o2ims-infrastructureInventory/v1/deploymentManagers:
get:
tags:
responses:
"200":
description: Success
+ schema:
+ $ref: '#/definitions/MonitoringAPIVersion'
/o2ims-infrastructureMonitoring/v1/alarmSubscriptions:
get:
tags:
responses:
"200":
description: Success
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/MonitoringV1APIVersion'
definitions:
+ InventoryAPIVersion:
+ type: object
+ required:
+ - uriPrefix
+ properties:
+ uriPrefix:
+ type: string
+ example: https://128.224.115.36:30205/o2ims-infrastructureInventory
+ description: Specifies the URI prefix for the API
+ apiVersions:
+ type: array
+ example:
+ - version: 1.0.0
+ description: Version(s) supported for the API signaled by the uriPrefix attribute.
+ items:
+ $ref: '#/definitions/InventoryApiVersionStructure'
+ x-mask: "{uriPrefix,apiVersions}"
+ InventoryApiVersionStructure:
+ type: object
+ required:
+ - version
+ properties:
+ version:
+ type: string
+ example: 1.0.0
+ description: Identifies a supported version.
+ x-mask: "{version}"
+ InventoryV1APIVersion:
+ type: object
+ required:
+ - uriPrefix
+ properties:
+ uriPrefix:
+ type: string
+ example: https://128.224.115.36:30205/o2ims-infrastructureInventory/v1
+ description: Specifies the URI prefix for the API
+ apiVersions:
+ type: array
+ example:
+ - version: 1.0.0
+ description: Version(s) supported for the API signaled by the uriPrefix attribute.
+ items:
+ $ref: '#/definitions/InventoryV1ApiVersionStructure'
+ x-mask: "{uriPrefix,apiVersions}"
+ InventoryV1ApiVersionStructure:
+ type: object
+ required:
+ - version
+ properties:
+ version:
+ type: string
+ example: 1.0.0
+ description: Identifies a supported version.
+ x-mask: "{version}"
OcloudDto:
type: object
required:
properties:
resourceTypeId:
type: string
- description: Resource type ID
+ example: 60cba7be-e2cd-3b8c-a7ff-16e0f10573f9
+ description: Identifier for the Resource Type.
name:
type: string
+ example: pserver
+ description: Human readable name of the resource type.
description:
type: string
+ example: The Physical Server resource type
+ description: Human readable description of the resource type.
vendor:
type: string
+ example: ""
+ description: Provider of the Resource.
model:
type: string
+ example: ""
+ description: Information about the model of the resource as defined by its provider.
version:
type: string
+ example: ""
+ description: Version or generation of the resource as defined by its provider.
alarmDictionary:
$ref: '#/definitions/AlarmDictionaryDto'
extensions:
type: string
+ example: ""
+ description: List of metadata key-value pairs used to associate meaningful metadata to the related resource type.
x-mask: "{resourceTypeId,name,description,model,vendor,version}"
AlarmDictionaryDto:
type: object
properties:
id:
type: string
+ example: 7e1e59c3-c99e-3d1c-9934-21548a3a699a
+ description: Identifier for the Alarm Dictionary.
alarmDictionaryVersion:
type: string
+ example: "0.1"
+ description: Version of the Alarm Dictionary.
alarmDictionarySchemaVersion:
type: string
+ example: "0.1"
+ description: Version of the Alarm Dictionary Schema to which this alarm dictionary conforms.
entityType:
type: string
+ example: pserver
+ description: "O-RAN entity type emitting the alarm: This shall be unique per vendor ResourceType.model and ResourceType.version"
vendor:
type: string
+ example: ""
+ description: Vendor of the Entity Type to whom this Alarm Dictionary applies. This should be the same value as in the ResourceType.vendor attribute.
managementInterfaceId:
type: string
+ example: O2IMS
+ description: List of management interface over which alarms are transmitted for this Entity Type.
pkNotificationField:
type: string
+ example: ""
+ description: Identifies which field or list of fields in the alarm notification contains the primary key (PK) into the Alarm Dictionary for this interface; i.e. which field contains the Alarm Definition ID.
alarmDefinition:
type: array
+ example: ""
+ description: Contains the list of alarms that can be detected against this ResourceType.
items:
$ref: '#/definitions/AlarmDefinitionDto'
AlarmDefinitionDto:
properties:
alarmDefinitionId:
type: string
+ example: eaefa070-7cb6-3403-be46-177bd9ccc2d3
+ description: Provides a unique identifier of the alarm being raised.
alarmName:
type: string
+ example: "100.104"
+ description: Provides short name for the alarm.
alarmLastChange:
type: string
+ example: "0.1"
+ description: Indicates the Alarm Dictionary Version in which this alarm last changed.
alarmChangeType:
type: string
+ example: ADDED
+ description: "Indicates the type of change that occurred during the alarm last change; added, deleted, modified."
alarmDescription:
type: string
+ example: |-
+ host=<hostname>.filesystem=<mount-dir>
+ File System threshold exceeded; threshold x%, actual y% .
+ CRITICAL @ 90%
+ MAJOR @ 80%
+ OR
+ host=<hostname>.volumegroup=<volumegroup-name>
+ Monitor and if condition persists, consider addin ...
+ description: Provides a longer descriptive meaning of the alarm condition and a description of the consequences of the alarm condition.
proposedRepairActions:
type: string
+ example: Reduce usage or resize filesystem.
+ description: Provides guidance for proposed repair actions.
clearingType:
type: string
+ example: MANUAL
+ description: Identifies whether alarm is cleared automatically or manually.
managementInterfaceId:
type: string
+ example: O2IMS
+ description: List of management interface over which alarms are transmitted for this Entity Type.
pkNotificationField:
type: string
+ example: ""
+ description: Identifies which field or list of fields in the alarm notification contains the primary key (PK) into the Alarm Dictionary for this interface; i.e. which field contains the Alarm Definition ID.
alarmAdditionalFields:
type: string
+ example: ""
+ description: List of metadata key-value pairs used to associate meaningful metadata to the related resource type.
ResourcePoolGetDto:
type: object
required:
properties:
resourceId:
type: string
- description: Resource ID
+ example: 5b3a2da8-17da-466c-b5f7-972590c7baf2
+ description: Identifier for the Resource.
resourceTypeId:
type: string
+ example: 60cba7be-e2cd-3b8c-a7ff-16e0f10573f9
+ description: Identifier for the Resource Type of this resource.
resourcePoolId:
type: string
+ example: f078a1d3-56df-46c2-88a2-dd659aa3f6bd
+ description: Identifier of the Resource Pool containing this resource.
globalAssetId:
type: string
+ example: ""
+ description: Identifier or serial number of the resource.
parentId:
type: string
+ example: None
+ description: Identifier for the parent resource.
description:
type: string
+ example: "id:1;hostname:controller-0;mgmt_mac:00:00:00:00:00:00;mgmt_ip:192.168.204.2;personality:controller;subfunctions:controller,worker;administrative:unlocked;operational:enabled;availability:available;clock_synchronization:ntp;capabilities:{'is_max_cpu_configurable': 'configurable', 'stor_function': 'monitor', 'Personality': 'Controller-Active'};boot_device:/dev/disk/by-path/pci-0000:02:00.0-scsi-0:1:0:0;rootfs_device:/dev/disk/by-path/pci-0000:02:00.0-scsi-0:1:0:0;software_load:22.12;install_state:None;max_cpu_mhz_allowed:None"
+ description: Human readable description of the resource.
extensions:
type: object
properties: {}
properties:
resourceId:
type: string
- description: Resource ID
+ example: eee8b101-6b7f-4f0a-b54b-89adc0f3f906
+ description: Identifier for the Resource.
resourceTypeId:
type: string
+ example: a45983bb-199a-30ec-b7a1-eab2455f333c
+ description: Identifier for the Resource Type of this resource.
resourcePoolId:
type: string
+ example: f078a1d3-56df-46c2-88a2-dd659aa3f6bd
+ description: Identifier of the Resource Pool containing this resource.
globalAssetId:
type: string
+ example: ""
+ description: Identifier or serial number of the resource.
parentId:
type: string
+ example: 5b3a2da8-17da-466c-b5f7-972590c7baf2
+ description: Identifier for the parent resource.
description:
type: string
+ example: cpu:0;core:0;thread:0;cpu_family:6;cpu_model:Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz;allocated_function:Platform;numa_node:0
+ description: Human readable description of the resource.
extensions:
type: object
properties: {}
properties:
resourceId:
type: string
- description: Resource ID
+ example: eee8b101-6b7f-4f0a-b54b-89adc0f3f906
+ description: Identifier for the Resource.
resourceTypeId:
type: string
+ example: a45983bb-199a-30ec-b7a1-eab2455f333c
+ description: Identifier for the Resource Type of this resource.
resourcePoolId:
type: string
+ example: f078a1d3-56df-46c2-88a2-dd659aa3f6bd
+ description: Identifier of the Resource Pool containing this resource.
globalAssetId:
type: string
+ example: ""
+ description: Identifier or serial number of the resource.
parentId:
type: string
+ example: 5b3a2da8-17da-466c-b5f7-972590c7baf2
+ description: Identifier for the parent resource.
description:
type: string
+ example: cpu:0;core:0;thread:0;cpu_family:6;cpu_model:Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz;allocated_function:Platform;numa_node:0
+ description: Human readable description of the resource.
extensions:
type: object
properties: {}
properties:
resourceId:
type: string
- description: Resource ID
+ example: eee8b101-6b7f-4f0a-b54b-89adc0f3f906
+ description: Identifier for the Resource.
resourceTypeId:
type: string
+ example: a45983bb-199a-30ec-b7a1-eab2455f333c
+ description: Identifier for the Resource Type of this resource.
resourcePoolId:
type: string
+ example: f078a1d3-56df-46c2-88a2-dd659aa3f6bd
+ description: Identifier of the Resource Pool containing this resource.
globalAssetId:
type: string
+ example: ""
+ description: Identifier or serial number of the resource.
parentId:
type: string
+ example: 5b3a2da8-17da-466c-b5f7-972590c7baf2
+ description: Identifier for the parent resource.
description:
type: string
+ example: cpu:0;core:0;thread:0;cpu_family:6;cpu_model:Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz;allocated_function:Platform;numa_node:0
+ description: Human readable description of the resource.
extensions:
type: object
properties: {}
properties:
deploymentManagerId:
type: string
- description: Deployment manager ID
+ example: c765516a-a84e-30c9-b954-9c3031bf71c8
+ description: Identifier for the Deployment Manager.
name:
type: string
+ example: 95b818b8-b315-4d9f-af37-b82c492101f1.kubernetes
+ description: Human readable name of the deployment manager.
description:
type: string
+ example: A DMS
+ description: Human readable description of the deployment manager.
oCloudId:
type: string
+ example: f078a1d3-56df-46c2-88a2-dd659aa3f6bd
+ description: Identifier for the containing O-Cloud.
serviceUri:
type: string
+ example: https://128.224.115.51:6443
+ description: The fully qualified URI to a Deployment Management server for O2dms services.
profileSupportList:
type: array
- description: "Profile support list, use default for the return endpoint"
+ example:
+ - native_k8sapi
+ description: "Profile support list, use default for the return endpoint"
items:
type: string
extensions:
type: string
+ example: ""
+ description: List of metadata key-value pairs used to associate meaningful metadata to the related Deployment Manager
x-mask: "{deploymentManagerId,name,description,oCloudId,serviceUri,profileSupportList}"
DeploymentManagerGetDto:
type: object
properties:
deploymentManagerId:
type: string
- description: Deployment manager ID
+ example: c765516a-a84e-30c9-b954-9c3031bf71c8
+ description: Identifier for the Deployment Manager.
name:
type: string
+ example: 95b818b8-b315-4d9f-af37-b82c492101f1.kubernetes
+ description: Human readable name of the deployment manager.
description:
type: string
+ example: A DMS
+ description: Human readable description of the deployment manager.
oCloudId:
type: string
+ example: f078a1d3-56df-46c2-88a2-dd659aa3f6bd
+ description: Identifier for the containing O-Cloud.
serviceUri:
type: string
+ example: https://128.224.115.51:6443
+ description: The fully qualified URI to a Deployment Management server for O2dms services.
extensions:
$ref: '#/definitions/DeploymentManagerExtensions'
x-mask: "{deploymentManagerId,name,description,oCloudId,serviceUri,extensions,profileName,profileData}"
properties:
profileName:
type: string
+ example: ""
+ description: ""
profileData:
$ref: '#/definitions/DeploymentManagerGetDtoProfile'
DeploymentManagerGetDtoProfile:
properties:
cluster_api_endpoint:
type: string
+ example: https://128.224.115.51:6443
+ description: Kubernetes Cluster API Endpoint
cluster_ca_cert:
type: string
+ example: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZEakNDQX.....
+ description: Kubernetes Cluster CA cert
admin_user:
type: string
+ example: kubernetes-admin
+ description: Kubernetes Admin username
admin_client_cert:
type: string
+ example: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVJRENDQW.....
+ description: Kubernetes Admin client cert
admin_client_key:
type: string
+ example: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcE.....
+ description: Kubernetes Admin client key
helmcli_host_with_port:
type: string
+ example: 128.224.115.34:30022
+ description: Helm CLI Host address with SSH port
helmcli_username:
type: string
+ example: helm
+ description: Helm CLI SSH login username
helmcli_password:
type: string
+ example: password
+ description: Helm CLI SSH login password
helmcli_kubeconfig:
type: string
+ example: /share/kubeconfig_c765516a.config
+ description: Helm CLI KUBECONFIG path
SubscriptionCreateDto:
type: object
required:
properties:
callback:
type: string
- description: Subscription callback address
+ example: https://128.224.115.15:1081/smo/v1/o2ims_inventory_observer
+ description: Identifier for the Subscription.
consumerSubscriptionId:
type: string
+ example: 3F20D850-AF4F-A84F-FB5A-0AD585410361
+ description: Identifier for the consumer of events sent due to the Subscription.
filter:
type: string
+ example: ""
+ description: "Criteria for events which do not need to be reported or will be filtered by the subscription notification service. Therefore, if a filter is not provided then all events are reported."
SubscriptionGetDto:
type: object
required:
properties:
subscriptionId:
type: string
- description: Subscription ID
+ example: 0bea3e71-d2f7-4bf3-9c06-41d8d35806f9
+ description: Identifier for the Subscription.
callback:
type: string
+ example: https://128.224.115.15:1081/smo/v1/o2ims_inventory_observer
+ description: The fully qualified URI to a consumer procedure which can process a Post of the InventoryEventNotification.
consumerSubscriptionId:
type: string
+ example: 3F20D850-AF4F-A84F-FB5A-0AD585410361
+ description: Identifier for the consumer of events sent due to the Subscription.
filter:
type: string
+ example: ""
+ description: "Criteria for events which do not need to be reported or will be filtered by the subscription notification service. Therefore, if a filter is not provided then all events are reported."
x-mask: "{subscriptionId,callback}"
+ MonitoringAPIVersion:
+ type: object
+ required:
+ - uriPrefix
+ properties:
+ uriPrefix:
+ type: string
+ example: https://128.224.115.36:30205/o2ims-infrastructureMonitoring
+ description: Specifies the URI prefix for the API
+ apiVersions:
+ type: array
+ example:
+ - version: 1.0.0
+ description: Version(s) supported for the API signaled by the uriPrefix attribute.
+ items:
+ $ref: '#/definitions/MonitoringApiVersionStructure'
+ x-mask: "{uriPrefix,apiVersions}"
+ MonitoringApiVersionStructure:
+ type: object
+ required:
+ - version
+ properties:
+ version:
+ type: string
+ example: 1.0.0
+ description: Identifies a supported version.
+ x-mask: "{version}"
+ MonitoringV1APIVersion:
+ type: object
+ required:
+ - uriPrefix
+ properties:
+ uriPrefix:
+ type: string
+ example: https://128.224.115.36:30205/o2ims-infrastructureMonitoring/v1
+ description: Specifies the URI prefix for the API
+ apiVersions:
+ type: array
+ example:
+ - version: 1.0.0
+ description: Version(s) supported for the API signaled by the uriPrefix attribute.
+ items:
+ $ref: '#/definitions/MonitoringV1ApiVersionStructure'
+ x-mask: "{uriPrefix,apiVersions}"
+ MonitoringV1ApiVersionStructure:
+ type: object
+ required:
+ - version
+ properties:
+ version:
+ type: string
+ example: 1.0.0
+ description: Identifies a supported version.
+ x-mask: "{version}"
AlarmGetDto:
type: object
required:
properties:
alarmEventRecordId:
type: string
- example: f078a1d3-56df-46c2-88a2-dd659aa3f6bd
- description: Alarm Event Record ID
+ example: 97cc2b01-0e71-4a93-a911-2e87f04d996f
+ description: The identifier for the AlarmEventRecord Object.
resourceTypeId:
type: string
+ example: 60cba7be-e2cd-3b8c-a7ff-16e0f10573f9
+ description: A reference to the type of resource which caused the alarm.
resourceTypeID:
type: string
+ example: 60cba7be-e2cd-3b8c-a7ff-16e0f10573f9
+ description: A reference to the type of resource which caused the alarm.(Specification)
resourceId:
type: string
+ example: 5b3a2da8-17da-466c-b5f7-972590c7baf2
+ description: A reference to the resource instance which caused the alarm.
resourceID:
type: string
+ example: 5b3a2da8-17da-466c-b5f7-972590c7baf2
+ description: A reference to the resource instance which caused the alarm.(Specification)
alarmDefinitionId:
type: string
+ example: 1197f463-b3d4-3aa3-9c14-faa493baa069
+ description: A reference to the Alarm Definition record in the Alarm Dictionary associated with the referenced Resource Type.
alarmDefinitionID:
type: string
+ example: 1197f463-b3d4-3aa3-9c14-faa493baa069
+ description: A reference to the Alarm Definition record in the Alarm Dictionary associated with the referenced Resource Type.(Specification)
probableCauseId:
type: string
+ example: f52054c9-6f3c-39a0-aab8-e00e01d8c4d3
+ description: A reference to the ProbableCause of the Alarm.
probableCauseID:
type: string
+ example: f52054c9-6f3c-39a0-aab8-e00e01d8c4d3
+ description: A reference to the ProbableCause of the Alarm.(Specification)
alarmRaisedTime:
type: string
+ example: 2022-12-22 09:42:53
+ description: Date/Time stamp value when the AlarmEventRecord has been created.
alarmChangedTime:
type: string
+ example: ""
+ description: Date/Time stamp value when any value of the AlarmEventRecord has been modified.
alarmAcknowledgeTime:
type: string
+ example: ""
+ description: Date/Time stamp value when the alarm condition is acknowledged.
alarmAcknowledged:
type: boolean
+ example: false
+ description: Boolean value indicating of a management system has acknowledged the alarm.
perceivedSeverity:
type: string
+ example: "1"
+ description: "One of the following values: \n 0 for \"CRITICAL\" \n1 for \"MAJOR\" \n2 for \"MINOR\" \n3 for \"WARNING\" \n4 for \"INDETERMINATE\" \n5 for \"CLEARED\""
extensions:
type: object
properties: {}
properties:
callback:
type: string
- description: Alarm Subscription callback address
+ example: https://128.224.115.15:1081/smo/v1/o2ims_alarm_observer
+ description: The fully qualified URI to a consumer procedure which can process a Post of the InventoryEventNotification.
consumerSubscriptionId:
type: string
+ example: 3F20D850-AF4F-A84F-FB5A-0AD585410361
+ description: Identifier for the consumer of events sent due to the Subscription.
filter:
type: string
+ example: ""
+ description: "Criteria for events which do not need to be reported or will be filtered by the subscription notification service. Therefore, if a filter is not provided then all events are reported."
AlarmSubscriptionGetDto:
type: object
required:
properties:
alarmSubscriptionId:
type: string
- description: Alarm Subscription ID
+ example: e320da6d-27a8-4948-8b52-3bf3355b45f3
+ description: Identifier for the Alarm Subscription.
callback:
type: string
+ example: https://128.224.115.15:1081/smo/v1/o2ims_alarm_observer
+ description: The fully qualified URI to a consumer procedure which can process a Post of the InventoryEventNotification.
consumerSubscriptionId:
type: string
+ example: 3F20D850-AF4F-A84F-FB5A-0AD585410361
+ description: Identifier for the consumer of events sent due to the Subscription.
filter:
type: string
+ example: ""
+ description: "Criteria for events which do not need to be reported or will be filtered by the subscription notification service. Therefore, if a filter is not provided then all events are reported."
x-mask: "{alarmSubscriptionId,callback}"
responses:
ParseError:
from o2ims.views.api_ns import api_ims_monitoring as api_monitoring_v1
+class MonitoringApiV1DTO:
+
+ api_version = api_monitoring_v1.model(
+ 'MonitoringV1ApiVersionStructure',
+ {
+ 'version': fields.String(
+ required=True,
+ example='1.0.0',
+ description='Identifies a supported version.'
+ )
+ },
+ mask='{version,}'
+ )
+
+ api_version_info_get = api_monitoring_v1.model(
+ "MonitoringV1APIVersion",
+ {
+ 'uriPrefix': fields.String(
+ required=True,
+ example='https://128.224.115.36:30205/' +
+ 'o2ims-infrastructureMonitoring/v1',
+ description='Specifies the URI prefix for the API'),
+ 'apiVersions': fields.List(
+ fields.Nested(api_version),
+ example=[{'version': '1.0.0'}],
+ description='Version(s) supported for the API ' +
+ 'signaled by the uriPrefix attribute.'),
+ },
+ mask='{uriPrefix,apiVersions}'
+ )
+
+
class AlarmDTO:
alarm_event_record_get = api_monitoring_v1.model(
{
'alarmEventRecordId': fields.String(
required=True,
- example='f078a1d3-56df-46c2-88a2-dd659aa3f6bd',
- description='Alarm Event Record ID'),
- 'resourceTypeId': fields.String,
- 'resourceTypeID': fields.String(attribute='resourceTypeId'),
- 'resourceId': fields.String,
- 'resourceID': fields.String(attribute='resourceId'),
- 'alarmDefinitionId': fields.String,
- 'alarmDefinitionID': fields.String(attribute='alarmDefinitionId'),
- 'probableCauseId': fields.String,
- 'probableCauseID': fields.String(attribute='probableCauseId'),
- 'alarmRaisedTime': fields.String,
- 'alarmChangedTime': fields.String,
- 'alarmAcknowledgeTime': fields.String,
- 'alarmAcknowledged': fields.Boolean,
- 'perceivedSeverity': fields.String,
+ example='97cc2b01-0e71-4a93-a911-2e87f04d996f',
+ description='The identifier for the AlarmEventRecord Object.'),
+ 'resourceTypeId': fields.String(
+ example='60cba7be-e2cd-3b8c-a7ff-16e0f10573f9',
+ description='A reference to the type of resource which ' +
+ 'caused the alarm.'),
+ 'resourceTypeID': fields.String(
+ attribute='resourceTypeId',
+ example='60cba7be-e2cd-3b8c-a7ff-16e0f10573f9',
+ description='A reference to the type of resource which ' +
+ 'caused the alarm.(Specification)'),
+ 'resourceId': fields.String(
+ example='5b3a2da8-17da-466c-b5f7-972590c7baf2',
+ description='A reference to the resource instance which ' +
+ 'caused the alarm.'),
+ 'resourceID': fields.String(
+ attribute='resourceId',
+ example='5b3a2da8-17da-466c-b5f7-972590c7baf2',
+ description='A reference to the resource instance which ' +
+ 'caused the alarm.(Specification)'),
+ 'alarmDefinitionId': fields.String(
+ example='1197f463-b3d4-3aa3-9c14-faa493baa069',
+ description='A reference to the Alarm Definition record ' +
+ 'in the Alarm Dictionary associated with the referenced ' +
+ 'Resource Type.'),
+ 'alarmDefinitionID': fields.String(
+ attribute='alarmDefinitionId',
+ example='1197f463-b3d4-3aa3-9c14-faa493baa069',
+ description='A reference to the Alarm Definition record ' +
+ 'in the Alarm Dictionary associated with the referenced ' +
+ 'Resource Type.(Specification)'),
+ 'probableCauseId': fields.String(
+ example='f52054c9-6f3c-39a0-aab8-e00e01d8c4d3',
+ description='A reference to the ProbableCause of the Alarm.'),
+ 'probableCauseID': fields.String(
+ attribute='probableCauseId',
+ example='f52054c9-6f3c-39a0-aab8-e00e01d8c4d3',
+ description='A reference to the ProbableCause of the ' +
+ 'Alarm.(Specification)'),
+ 'alarmRaisedTime': fields.String(
+ example='2022-12-22 09:42:53',
+ description='Date/Time stamp value when the ' +
+ 'AlarmEventRecord has been created.'),
+ 'alarmChangedTime': fields.String(
+ example='',
+ description='Date/Time stamp value when any value of ' +
+ 'the AlarmEventRecord has been modified.'),
+ 'alarmAcknowledgeTime': fields.String(
+ example='',
+ description='Date/Time stamp value when the alarm ' +
+ 'condition is acknowledged.'),
+ 'alarmAcknowledged': fields.Boolean(
+ example=False,
+ description='Boolean value indicating of a management ' +
+ 'system has acknowledged the alarm.'),
+ 'perceivedSeverity': fields.String(
+ example='1',
+ description='One of the following values: \n ' +
+ '0 for "CRITICAL" \n' +
+ '1 for "MAJOR" \n' +
+ '2 for "MINOR" \n' +
+ '3 for "WARNING" \n' +
+ '4 for "INDETERMINATE" \n' +
+ '5 for "CLEARED"'),
'extensions': Json2Dict(attribute='extensions')
}
# mask='{alarmEventRecordId,resourceTypeID,resourceID,' +
{
'alarmSubscriptionId': fields.String(
required=True,
- description='Alarm Subscription ID'),
- 'callback': fields.String,
- 'consumerSubscriptionId': fields.String,
- 'filter': fields.String,
+ example='e320da6d-27a8-4948-8b52-3bf3355b45f3',
+ description='Identifier for the Alarm Subscription.'),
+ 'callback': fields.String(
+ example='https://128.224.115.15:1081/smo/v1/' +
+ 'o2ims_alarm_observer',
+ description='The fully qualified URI to a consumer ' +
+ 'procedure which can process a Post of the ' +
+ 'InventoryEventNotification.'),
+ 'consumerSubscriptionId': fields.String(
+ example='3F20D850-AF4F-A84F-FB5A-0AD585410361',
+ description='Identifier for the consumer of events sent ' +
+ 'due to the Subscription.'),
+ 'filter': fields.String(
+ example='',
+ description='Criteria for events which do not need to be ' +
+ 'reported or will be filtered by the subscription ' +
+ 'notification service. Therefore, if a filter is not ' +
+ 'provided then all events are reported.'),
},
mask='{alarmSubscriptionId,callback}'
)
{
'callback': fields.String(
required=True,
- description='Alarm Subscription callback address'),
- 'consumerSubscriptionId': fields.String,
- 'filter': fields.String,
+ example='https://128.224.115.15:1081/smo/v1/' +
+ 'o2ims_alarm_observer',
+ description='The fully qualified URI to a consumer ' +
+ 'procedure which can process a Post of the ' +
+ 'InventoryEventNotification.'),
+ 'consumerSubscriptionId': fields.String(
+ example='3F20D850-AF4F-A84F-FB5A-0AD585410361',
+ description='Identifier for the consumer of events sent ' +
+ 'due to the Subscription.'),
+ 'filter': fields.String(
+ example='',
+ description='Criteria for events which do not need to be ' +
+ 'reported or will be filtered by the subscription ' +
+ 'notification service. Therefore, if a filter is not ' +
+ 'provided then all events are reported.'),
}
)
BadRequestException
from o2ims.views import alarm_view
from o2ims.views.api_ns import api_ims_monitoring as api_monitoring_v1
-from o2ims.views.alarm_dto import AlarmDTO, SubscriptionDTO
+from o2ims.views.alarm_dto import AlarmDTO, SubscriptionDTO, \
+ MonitoringApiV1DTO
from o2common.helper import o2logging
logger = o2logging.get_logger(__name__)
# ---------- API versions ---------- #
@api_monitoring_v1.route("/v1/api_versions")
class VersionRouter(Resource):
+ model = MonitoringApiV1DTO.api_version_info_get
+
@api_monitoring_v1.doc('Get Monitoring API version')
+ @api_monitoring_v1.marshal_list_with(model)
def get(self):
return {
'uriPrefix': request.base_url.rsplit('/', 1)[0],
# limitations under the License.
from flask import request
-from flask_restx import Resource
+from flask_restx import Resource, fields
from o2common.views.route import O2Namespace
@api_ims_inventory.route('/api_versions')
class InventoryVersion(Resource):
+ api_version = api_ims_inventory.model(
+ 'InventoryApiVersionStructure',
+ {
+ 'version': fields.String(
+ required=True,
+ example='1.0.0',
+ description='Identifies a supported version.'
+ )
+ },
+ mask='{version,}'
+ )
+ model = api_ims_inventory.model(
+ "InventoryAPIVersion",
+ {
+ 'uriPrefix': fields.String(
+ required=True,
+ example='https://128.224.115.36:30205/' +
+ 'o2ims-infrastructureInventory',
+ description='Specifies the URI prefix for the API'),
+ 'apiVersions': fields.List(
+ fields.Nested(api_version),
+ example=[{'version': '1.0.0'}],
+ description='Version(s) supported for the API ' +
+ 'signaled by the uriPrefix attribute.'),
+ },
+ mask='{uriPrefix,apiVersions}'
+ )
+
@api_ims_inventory.doc('Get Inventory Version')
+ @api_ims_inventory.marshal_with(model)
def get(self):
return {
'uriPrefix': request.base_url.rsplit('/', 1)[0],
@api_ims_monitoring.route('/api_versions')
class MonitoringVersion(Resource):
+ api_version = api_ims_inventory.model(
+ 'MonitoringApiVersionStructure',
+ {
+ 'version': fields.String(
+ required=True,
+ example='1.0.0',
+ description='Identifies a supported version.'
+ )
+ },
+ mask='{version,}'
+ )
+ model = api_ims_inventory.model(
+ "MonitoringAPIVersion",
+ {
+ 'uriPrefix': fields.String(
+ required=True,
+ example='https://128.224.115.36:30205/' +
+ 'o2ims-infrastructureMonitoring',
+ description='Specifies the URI prefix for the API'),
+ 'apiVersions': fields.List(
+ fields.Nested(api_version),
+ example=[{'version': '1.0.0'}],
+ description='Version(s) supported for the API ' +
+ 'signaled by the uriPrefix attribute.'),
+ },
+ mask='{uriPrefix,apiVersions}'
+ )
+
@api_ims_monitoring.doc('Get Monitoring Version')
+ @api_ims_monitoring.marshal_with(model)
def get(self):
return {
'uriPrefix': request.base_url.rsplit('/', 1)[0],
from o2common.views.flask_restx_fields import Json2Dict
+class InventoryApiV1DTO:
+
+ api_version = api_ims_inventory_v1.model(
+ 'InventoryV1ApiVersionStructure',
+ {
+ 'version': fields.String(
+ required=True,
+ example='1.0.0',
+ description='Identifies a supported version.'
+ )
+ },
+ mask='{version,}'
+ )
+
+ api_version_info_get = api_ims_inventory_v1.model(
+ "InventoryV1APIVersion",
+ {
+ 'uriPrefix': fields.String(
+ required=True,
+ example='https://128.224.115.36:30205/' +
+ 'o2ims-infrastructureInventory/v1',
+ description='Specifies the URI prefix for the API'),
+ 'apiVersions': fields.List(
+ fields.Nested(api_version),
+ example=[{'version': '1.0.0'}],
+ description='Version(s) supported for the API ' +
+ 'signaled by the uriPrefix attribute.'),
+ },
+ mask='{uriPrefix,apiVersions}'
+ )
+
+
class OcloudDTO:
ocloud = api_ims_inventory_v1.model(
alarm_definition = api_ims_inventory_v1.model(
"AlarmDefinitionDto",
{
- 'alarmDefinitionId': fields.String,
- 'alarmName': fields.String,
- 'alarmLastChange': fields.String,
- 'alarmChangeType': fields.String,
- 'alarmDescription': fields.String,
- 'proposedRepairActions': fields.String,
- 'clearingType': fields.String,
- 'managementInterfaceId': fields.String,
- 'pkNotificationField': fields.String,
- 'alarmAdditionalFields': fields.String,
+ 'alarmDefinitionId': fields.String(
+ example='eaefa070-7cb6-3403-be46-177bd9ccc2d3',
+ description='Provides a unique identifier of the alarm ' +
+ 'being raised.'),
+ 'alarmName': fields.String(
+ example='100.104',
+ description='Provides short name for the alarm.'),
+ 'alarmLastChange': fields.String(
+ example='0.1',
+ description='Indicates the Alarm Dictionary Version in ' +
+ 'which this alarm last changed.'),
+ 'alarmChangeType': fields.String(
+ example='ADDED',
+ description='Indicates the type of change that occurred ' +
+ 'during the alarm last change; added, deleted, modified.'),
+ 'alarmDescription': fields.String(
+ example='host=<hostname>.filesystem=<mount-dir>\n ' +
+ 'File System threshold exceeded; threshold x%, actual y% .\n' +
+ ' CRITICAL @ 90%\n ' +
+ 'MAJOR @ 80%\nOR\n' +
+ 'host=<hostname>.volumegroup=<volumegroup-name>\n ' +
+ 'Monitor and if condition persists, consider addin ...',
+ description='Provides a longer descriptive meaning of ' +
+ 'the alarm condition and a description of the ' +
+ 'consequences of the alarm condition.'),
+ 'proposedRepairActions': fields.String(
+ example='Reduce usage or resize filesystem.',
+ description='Provides guidance for proposed repair actions.'),
+ 'clearingType': fields.String(
+ example='MANUAL',
+ description='Identifies whether alarm is cleared ' +
+ 'automatically or manually.'),
+ 'managementInterfaceId': fields.String(
+ example='O2IMS',
+ description='List of management interface over which ' +
+ 'alarms are transmitted for this Entity Type.'),
+ 'pkNotificationField': fields.String(
+ example='',
+ description='Identifies which field or list of fields in ' +
+ 'the alarm notification contains the primary key (PK) into ' +
+ 'the Alarm Dictionary for this interface; i.e. which ' +
+ 'field contains the Alarm Definition ID.'),
+ 'alarmAdditionalFields': fields.String(
+ example='',
+ description='List of metadata key-value pairs used to ' +
+ 'associate meaningful metadata to the related resource type.'),
}
)
alarm_dictionary = api_ims_inventory_v1.model(
"AlarmDictionaryDto",
{
- 'id': fields.String,
- 'alarmDictionaryVersion': fields.String,
- 'alarmDictionarySchemaVersion': fields.String,
- 'entityType': fields.String,
- 'vendor': fields.String,
- 'managementInterfaceId': fields.String,
- 'pkNotificationField': fields.String,
+ 'id': fields.String(
+ example='7e1e59c3-c99e-3d1c-9934-21548a3a699a',
+ description='Identifier for the Alarm Dictionary.'),
+ 'alarmDictionaryVersion': fields.String(
+ example='0.1',
+ description='Version of the Alarm Dictionary.'),
+ 'alarmDictionarySchemaVersion': fields.String(
+ example='0.1',
+ description='Version of the Alarm Dictionary Schema to ' +
+ 'which this alarm dictionary conforms.'),
+ 'entityType': fields.String(
+ example='pserver',
+ description='O-RAN entity type emitting the alarm: This ' +
+ 'shall be unique per vendor ResourceType.model and ' +
+ 'ResourceType.version'),
+ 'vendor': fields.String(
+ example='',
+ description='Vendor of the Entity Type to whom this ' +
+ 'Alarm Dictionary applies. This should be the same value ' +
+ 'as in the ResourceType.vendor attribute.'),
+ 'managementInterfaceId': fields.String(
+ example='O2IMS',
+ description='List of management interface over which ' +
+ 'alarms are transmitted for this Entity Type.'),
+ 'pkNotificationField': fields.String(
+ example='',
+ description='Identifies which field or list of fields in ' +
+ 'the alarm notification contains the primary key (PK) into ' +
+ 'the Alarm Dictionary for this interface; i.e. which field ' +
+ 'contains the Alarm Definition ID.'),
# 'alarmDefinition': fields.String,
- 'alarmDefinition': fields.List(fields.Nested(alarm_definition),
- attribute='alarmDefinition'),
+ 'alarmDefinition': fields.List(
+ fields.Nested(alarm_definition),
+ attribute='alarmDefinition',
+ example='',
+ description='Contains the list of alarms that can be ' +
+ 'detected against this ResourceType.'),
}
)
resource_type_get = api_ims_inventory_v1.model(
"ResourceTypeGetDto",
{
- 'resourceTypeId': fields.String(required=True,
- description='Resource type ID'),
- 'name': fields.String,
- 'description': fields.String,
- 'vendor': fields.String,
- 'model': fields.String,
- 'version': fields.String,
- 'alarmDictionary': fields.Nested(alarm_dictionary, False, True),
+ 'resourceTypeId': fields.String(
+ required=True,
+ example='60cba7be-e2cd-3b8c-a7ff-16e0f10573f9',
+ description='Identifier for the Resource Type.'),
+ 'name': fields.String(
+ example='pserver',
+ description='Human readable name of the resource type.'),
+ 'description': fields.String(
+ example='The Physical Server resource type',
+ description='Human readable description of the resource ' +
+ 'type.'),
+ 'vendor': fields.String(
+ example='',
+ description='Provider of the Resource.'),
+ 'model': fields.String(
+ example='',
+ description='Information about the model of the resource ' +
+ 'as defined by its provider.'),
+ 'version': fields.String(
+ example='',
+ description='Version or generation of the resource as ' +
+ 'defined by its provider.'),
+ 'alarmDictionary': fields.Nested(
+ alarm_dictionary, False, True),
+ # description='Dictionary of alarms for this resource type.'),
# 'resourceKind': fields.String,
# 'resourceClass': fields.String,
- 'extensions': fields.String
+ 'extensions': fields.String(
+ example='',
+ description='List of metadata key-value pairs used to ' +
+ 'associate meaningful metadata to the related resource type.'),
},
mask='{resourceTypeId,name,description,model,vendor,version}'
)
resource_list = api_ims_inventory_v1.model(
"ResourceListDto",
{
- 'resourceId': fields.String(required=True,
- description='Resource ID'),
- 'resourceTypeId': fields.String,
- 'resourcePoolId': fields.String,
- 'globalAssetId': fields.String,
+ 'resourceId': fields.String(
+ required=True,
+ example='5b3a2da8-17da-466c-b5f7-972590c7baf2',
+ description='Identifier for the Resource.'),
+ 'resourceTypeId': fields.String(
+ example='60cba7be-e2cd-3b8c-a7ff-16e0f10573f9',
+ description='Identifier for the Resource Type of ' +
+ 'this resource.'),
+ 'resourcePoolId': fields.String(
+ example='f078a1d3-56df-46c2-88a2-dd659aa3f6bd',
+ description='Identifier of the Resource Pool containing ' +
+ 'this resource.'),
+ 'globalAssetId': fields.String(
+ example='',
+ description='Identifier or serial number of the resource.'),
# 'name': fields.String,
- 'parentId': fields.String,
- 'description': fields.String,
+ 'parentId': fields.String(
+ example='None',
+ description='Identifier for the parent resource.'),
+ 'description': fields.String(
+ example="id:1;hostname:controller-0;mgmt_mac:00:00:00:00:" +
+ "00:00;mgmt_ip:192.168.204.2;personality:controller;" +
+ "subfunctions:controller,worker;administrative:unlocked;" +
+ "operational:enabled;availability:available;" +
+ "clock_synchronization:ntp;capabilities:" +
+ "{'is_max_cpu_configurable': 'configurable', " +
+ "'stor_function': 'monitor', 'Personality': " +
+ "'Controller-Active'};boot_device:/dev/disk/by-path" +
+ "/pci-0000:02:00.0-scsi-0:1:0:0;rootfs_device:/dev/disk/" +
+ "by-path/pci-0000:02:00.0-scsi-0:1:0:0;software_load:" +
+ "22.12;install_state:None;max_cpu_mhz_allowed:None",
+ description='Human readable description of the resource.'),
# 'elements': fields.String,
# 'extensions': fields.String
'extensions': Json2Dict(attribute='extensions')
def recursive_resource_mapping(iteration_number=2):
resource_json_mapping = {
- 'resourceId': fields.String(required=True,
- description='Resource ID'),
- 'resourceTypeId': fields.String,
- 'resourcePoolId': fields.String,
- 'globalAssetId': fields.String,
+ 'resourceId': fields.String(
+ required=True,
+ example='eee8b101-6b7f-4f0a-b54b-89adc0f3f906',
+ description='Identifier for the Resource.'),
+ 'resourceTypeId': fields.String(
+ example='a45983bb-199a-30ec-b7a1-eab2455f333c',
+ description='Identifier for the Resource Type of ' +
+ 'this resource.'),
+ 'resourcePoolId': fields.String(
+ example='f078a1d3-56df-46c2-88a2-dd659aa3f6bd',
+ description='Identifier of the Resource Pool containing ' +
+ 'this resource.'),
+ 'globalAssetId': fields.String(
+ example='',
+ description='Identifier or serial number of the resource.'),
# 'name': fields.String,
- 'parentId': fields.String,
- 'description': fields.String,
+ 'parentId': fields.String(
+ example='5b3a2da8-17da-466c-b5f7-972590c7baf2',
+ description='Identifier for the parent resource.'),
+ 'description': fields.String(
+ example="cpu:0;core:0;thread:0;cpu_family:6;cpu_model:" +
+ "Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz;" +
+ "allocated_function:Platform;numa_node:0",
+ description='Human readable description of the resource.'),
# 'elements': fields.String,
# 'extensions': fields.String
'extensions': Json2Dict(attribute='extensions')
{
'deploymentManagerId': fields.String(
required=True,
- description='Deployment manager ID'),
- 'name': fields.String,
- 'description': fields.String,
- 'oCloudId': fields.String,
- 'serviceUri': fields.String(attribute='serviceUri'),
+ example='c765516a-a84e-30c9-b954-9c3031bf71c8',
+ description='Identifier for the Deployment Manager.'),
+ 'name': fields.String(
+ example='95b818b8-b315-4d9f-af37-b82c492101f1.kubernetes',
+ description='Human readable name of the deployment manager.'),
+ 'description': fields.String(
+ example='A DMS',
+ description='Human readable description of the deployment ' +
+ 'manager.'),
+ 'oCloudId': fields.String(
+ example='f078a1d3-56df-46c2-88a2-dd659aa3f6bd',
+ description='Identifier for the containing O-Cloud.'),
+ 'serviceUri': fields.String(
+ attribute='serviceUri',
+ example='https://128.224.115.51:6443',
+ description='The fully qualified URI to a Deployment ' +
+ 'Management server for O2dms services.'),
# 'deploymentManagementServiceEndpoint': fields.String(
# attribute='serviceUri'),
# 'supportedLocations': fields.String,
# 'capacity': fields.String,
'profileSupportList': fields.List(
fields.String,
- description='Profile support list, use default for the return \
- endpoint'),
- 'extensions': fields.String
+ example=['native_k8sapi'],
+ description='Profile support list, use default for the ' +
+ 'return endpoint'),
+ 'extensions': fields.String(
+ example='',
+ description='List of metadata key-value pairs used to ' +
+ 'associate meaningful metadata to the related Deployment ' +
+ 'Manager'),
},
mask='{deploymentManagerId,name,description,oCloudId,serviceUri,' + \
'profileSupportList}'
profile = api_ims_inventory_v1.model("DeploymentManagerGetDtoProfile", {
'cluster_api_endpoint': fields.String(
- attribute='cluster_api_endpoint'),
- 'cluster_ca_cert': fields.String(attribute='cluster_ca_cert'),
- 'admin_user': fields.String(attribute='admin_user'),
- 'admin_client_cert': fields.String(attribute='admin_client_cert'),
- 'admin_client_key': fields.String(attribute='admin_client_key'),
+ attribute='cluster_api_endpoint',
+ example='https://128.224.115.51:6443',
+ description='Kubernetes Cluster API Endpoint'),
+ 'cluster_ca_cert': fields.String(
+ attribute='cluster_ca_cert',
+ example='LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZEakNDQX.....',
+ description='Kubernetes Cluster CA cert'),
+ 'admin_user': fields.String(
+ attribute='admin_user',
+ example='kubernetes-admin',
+ description='Kubernetes Admin username'),
+ 'admin_client_cert': fields.String(
+ attribute='admin_client_cert',
+ example='LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVJRENDQW.....',
+ description='Kubernetes Admin client cert'),
+ 'admin_client_key': fields.String(
+ attribute='admin_client_key',
+ example='LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcE.....',
+ description='Kubernetes Admin client key'),
# 'kube_config_file': fields.String(attribute='kube_config_file')
'helmcli_host_with_port': fields.String(
- attribute='helmcli_host_with_port'),
- 'helmcli_username': fields.String(attribute='helmcli_username'),
- 'helmcli_password': fields.String(attribute='helmcli_password'),
- 'helmcli_kubeconfig': fields.String(attribute='helmcli_kubeconfig'),
+ attribute='helmcli_host_with_port',
+ example='128.224.115.34:30022',
+ description='Helm CLI Host address with SSH port'),
+ 'helmcli_username': fields.String(
+ attribute='helmcli_username',
+ example='helm',
+ description='Helm CLI SSH login username'),
+ 'helmcli_password': fields.String(
+ attribute='helmcli_password',
+ example='password',
+ description='Helm CLI SSH login password'),
+ 'helmcli_kubeconfig': fields.String(
+ attribute='helmcli_kubeconfig',
+ example='/share/kubeconfig_c765516a.config',
+ description='Helm CLI KUBECONFIG path'),
})
extensions = api_ims_inventory_v1.model("DeploymentManagerExtensions", {
- 'profileName': fields.String,
+ 'profileName': fields.String(
+ example='',
+ description=''),
'profileData': fields.Nested(profile, False, True),
})
{
'deploymentManagerId': fields.String(
required=True,
- description='Deployment manager ID'),
- 'name': fields.String,
- 'description': fields.String,
- 'oCloudId': fields.String,
- 'serviceUri': fields.String(attribute='serviceUri'),
+ example='c765516a-a84e-30c9-b954-9c3031bf71c8',
+ description='Identifier for the Deployment Manager.'),
+ 'name': fields.String(
+ example='95b818b8-b315-4d9f-af37-b82c492101f1.kubernetes',
+ description='Human readable name of the deployment manager.'),
+ 'description': fields.String(
+ example='A DMS',
+ description='Human readable description of the deployment ' +
+ 'manager.'),
+ 'oCloudId': fields.String(
+ example='f078a1d3-56df-46c2-88a2-dd659aa3f6bd',
+ description='Identifier for the containing O-Cloud.'),
+ 'serviceUri': fields.String(
+ attribute='serviceUri',
+ example='https://128.224.115.51:6443',
+ description='The fully qualified URI to a Deployment ' +
+ 'Management server for O2dms services.'),
# 'deploymentManagementServiceEndpoint': fields.String(
# attribute='serviceUri'),
# 'supportedLocations': fields.String,
subscription_get = api_ims_inventory_v1.model(
"SubscriptionGetDto",
{
- 'subscriptionId': fields.String(required=True,
- description='Subscription ID'),
- 'callback': fields.String,
- 'consumerSubscriptionId': fields.String,
- 'filter': fields.String,
+ 'subscriptionId': fields.String(
+ required=True,
+ example='0bea3e71-d2f7-4bf3-9c06-41d8d35806f9',
+ description='Identifier for the Subscription.'),
+ 'callback': fields.String(
+ example='https://128.224.115.15:1081/smo/v1/' +
+ 'o2ims_inventory_observer',
+ description='The fully qualified URI to a consumer ' +
+ 'procedure which can process a Post of the ' +
+ 'InventoryEventNotification.'),
+ 'consumerSubscriptionId': fields.String(
+ example='3F20D850-AF4F-A84F-FB5A-0AD585410361',
+ description='Identifier for the consumer of events sent due ' +
+ 'to the Subscription.'),
+ 'filter': fields.String(
+ example='',
+ description='Criteria for events which do not need to be ' +
+ 'reported or will be filtered by the subscription ' +
+ 'notification service. Therefore, if a filter is not ' +
+ 'provided then all events are reported.'),
},
mask='{subscriptionId,callback}'
)
"SubscriptionCreateDto",
{
'callback': fields.String(
- required=True, description='Subscription callback address'),
- 'consumerSubscriptionId': fields.String,
- 'filter': fields.String,
+ required=True,
+ example='https://128.224.115.15:1081/smo/v1/' +
+ 'o2ims_inventory_observer',
+ description='Identifier for the Subscription.'),
+ 'consumerSubscriptionId': fields.String(
+ example='3F20D850-AF4F-A84F-FB5A-0AD585410361',
+ description='Identifier for the consumer of events sent due ' +
+ 'to the Subscription.'),
+ 'filter': fields.String(
+ example='',
+ description='Criteria for events which do not need to be ' +
+ 'reported or will be filtered by the subscription ' +
+ 'notification service. Therefore, if a filter is not ' +
+ 'provided then all events are reported.'),
}
)
from o2ims.views import ocloud_view
from o2ims.views.api_ns import api_ims_inventory as api_ims_inventory_v1
from o2ims.views.ocloud_dto import OcloudDTO, ResourceTypeDTO,\
- ResourcePoolDTO, ResourceDTO, DeploymentManagerDTO, SubscriptionDTO
+ ResourcePoolDTO, ResourceDTO, DeploymentManagerDTO, SubscriptionDTO, \
+ InventoryApiV1DTO
from o2common.helper import o2logging
logger = o2logging.get_logger(__name__)
# ---------- API versions ---------- #
@api_ims_inventory_v1.route("/v1/api_versions")
class VersionRouter(Resource):
+ model = InventoryApiV1DTO.api_version_info_get
+
@api_ims_inventory_v1.doc('Get Inventory API version')
+ @api_ims_inventory_v1.marshal_with(model)
def get(self):
return {
'uriPrefix': request.base_url.rsplit('/', 1)[0],