| Oracle® Enterprise Manager Cloud Administration Guide 12c Release 2 (12.1.0.2) Part Number E28814-06 |
|
|
PDF · Mobi · ePub |
This chapter specifies the representations of the resources that the API operates on. It contains the following sections:
This version of the Cloud resource model is the culmination of the XaaS implementation for SSA where additional services can be plugged into SSA to support the creation and lifecycle management of service instances.
For Enterprise Manager 12.1.0.4, 10001 is the default version when /em/cloud is accessed by the client. Specifically, the client can specify x-specification-version: 10001 in the HTTP header to examine whether or not a resource supports version 10001. It is important to note that the resource type from different versions may not be inter-mixed in a request. For example, 10001 may reject a request where the content is shaped like the 10000 version of the resource.
The following table contains the top level description of the resources:
Table 25-1 Top Level Resource Descriptions
| Resource | Description |
|---|---|
|
application/oracle.com.cloud.common |
This media type namespace contains "common" resources that are not specific to resource types in XaaS implementation. It is customary that XaaS implementation may extend a common resource type by responding to the request where the accept/content-type is the base type. This is similar to Java's class typing where one can always typecast the base class to an implementation class. |
|
Cloud |
This is the top level media type of the entry point /em/cloud where the client can get a high level view of the Cloud as a whole. |
|
ServiceTemplate |
This is the common media type that represents a service template each XaaS can extend to create a service instance. |
|
ServiceInstance |
This represents the common media type that represents a service instance. Each XaaS can extend this media type to represent the service instances that it supports. |
|
ServiceFamilyType |
This represents XaaS or a service family. |
|
InstanceType |
This represents a type of service instance. For example, VM is an extending media type of ServiceInstance and there is a corresponding InstanceType? that describes what a VM instance may contain. |
|
Metric |
This represents a metric of a resource. For example, performance metrics such as CPU utilization and network utilization are metrics of a VM instance. This does not need to be constrained to performance metrics only. Any measurable or observable time series data can be represented as a metric. |
|
MultipartMetric |
This extends the Metric, but represents a multi-dimensional observation. |
|
CloudInteractions |
This represents the collection of interactions that are supported by the Cloud. The data of this resource would be protocol dependent. For example, in HTTP protocol, the data would consist of the supported HTTP request triple of (request method, accept type, and content type). |
Cloud resource representations are made up of fields, each with a name and value, encoded using a JavaScript? Object Notation (JSON) dictionary. The values may be lists, dictionaries, or numeric or string literals, each of which is represented in JSON in accordance with RFC 4627.
Each type of cloud resource has its own Internet Media Type. The media type SHALL conform to the pattern application/oracle.com.cloud.common.Xxxxxxxx+json, and the specific media type for each resource model is included in square brackets in the corresponding section header.
Cloud resources are now organized by common service entities where specific services (for example, Infrastructure as a Service) provide resources extending common service entities where appropriate. The figure below shows the resource model relationships on the common resources and Infrastructure as a service specific resources.
The following sections provide details on the different cloud resource data models.
A Cloud represents the user's starting view of all accessible resources and has the following media type and payload:
Media Type: application/oracle.com.cloud.common.Cloud
Supported Payload: json
The following table describes the cloud Data Model.
| Field | Type | Occurs | Description |
|---|---|---|---|
|
uri |
URI |
1 |
GET against this URI refreshes the client representation of the resources accessible to this user. |
|
name |
String |
1 |
Human readable name. It is a UNICODE string to support different languages. |
|
description |
String |
0..1 |
Brief description. This is a UNICODE string to support different languages. |
|
service_templates |
Collection<ServiceTemplates> |
0..1 |
List of service templates that are accessible to the user. |
|
service_family_types |
Collection <ServiceFamilyType> |
0..1 |
The list of service family types that are supported by the Cloud. |
|
zones |
Collection<Zone> |
0..1 |
List of zones that are supported by the cloud and accessible to the user. |
|
resource_state |
ResourceState |
0..1 |
Cloud that is online and running would have READY as its state. If this field is not returned, the client can assume the cloud is READY. If the state of the returned field is not READY, the client cannot assume the viability of subsequent interactions into the cloud. |
|
media_type |
String |
1 |
Value of this media type with the payload format. For example, application/oracle.com.cloud.common.Cloud+json. |
A ServiceTemplate represents the definition of the deployable service and has the following media type and payload:
Media Type: application/oracle.com.cloud.common.ServiceTemplate
Supported Payload: json
For a user, a ServiceTemplate represents the definition of the deployable service. Users can create cloud resources by interacting with the URI of a ServiceTemplate. The cloud shall instantiate the resources and their configurations as specified in the definition of the ServiceTemplate.
VMTemplate is a subclass to the ServiceTemplate resource and therefore it is possible to get the ServiceTemplate from the URI of a VMTemplate. The following table shows the ServiceTemplate Data Model.
Table 25-3 ServiceTemplate Data Model
| Field | Type | Occurs | Description |
|---|---|---|---|
|
uri |
URI |
1 |
GET against this URI refreshes the client representation of the ServiceTemplate definition to this user. |
|
name |
String |
1 |
Human readable name given to the ServiceTemplate. It is a UNICODE string to support different languages. |
|
description |
String |
0..1 |
A brief description given to the ServiceTemplate. It is a UNICODE string to support different languages. |
|
type |
String |
1 |
The string that describes the type of the service template. |
|
created |
Timestamp |
1 |
Date and time, in ISO 8601 format, when the ServiceTemplate was created. |
|
service_family_type |
String |
0..1 |
The name of the service family type under which this service template is categorized. |
|
default_instance_media_type |
String |
0..1 |
The default media type of the service instance that can be created using this template. For example, a VMTemplate would have VM for this attribute to indicate that VMTemplate can be deployed into a VM service instance. |
|
resource_state |
ResourceState |
1 |
Only a service template with a READY state can be deployed. |
|
deployment_params |
List of Deployment Parameters |
0..1 |
Contains the list of data structure of Deployment Parameters to indicate the parameters that may be specified during the service instance deployment using this template |
|
zones |
List of Zones |
0..1 |
Contains the list of Zone resources that this service template can be used to create service instances with |
|
service_instances |
Collection<?> |
0..1 |
Contains the list of service instances that are created with this template. |
The following table describes the structure of the Deployment Parameters.
Table 25-4 Deployment Parameter Structure
| Field | Type | Occurs | Description |
|---|---|---|---|
|
name |
String |
1 |
The name of the parameter that needs to be specified during deployment. |
|
description |
String |
0..1 |
A brief description of the deployment parameter. |
|
type |
String |
1 |
The type of the deployment parameter. It is an enumeration of the following values, STRING, INTEGER, NUMBER, and LIST. |
|
default_value |
String |
0..1 |
The default value for this parameter. |
|
required |
Boolean |
1 |
TRUE if this parameter is required, FALSE otherwise. |
|
sensitive |
Boolean |
1 |
TRUE if this parameter denotes a password. FALSE otherwise. |
A Zone represents a logical boundary where the resources may reside and has the following media type and payload:
Media Type: application/oracle.com.cloud.common.Zone
Supported Payload: json
A Zone can represent a particular geographically location such as Europe Zone, North America Zone, East Asia Zone. A zone can also represent characteristics, such as high network bandwidth or DMZ secured. Furthermore, a Zone can be organizational in nature, such as Financial Department Zone, Testing Zone, and Development Zone.
There should not be any assumption of exclusivity of underlying infrastructures in the Zones unless otherwise noted. For example, Zone A and Zone B can be on the same physical network serving two different departments, but their physical infrastructure setup is transparent to cloud users.
| Field | Type | Occurs | Description |
|---|---|---|---|
|
uri |
URI |
1 |
GET against this URI refreshes the client representation of the Zone definition to this user. |
|
name |
String |
1 |
Name of the Zone. |
|
description |
String |
0..1 |
Human readable description of the Zone. It is a UNICODE string to support different languages. |
|
media_type |
String |
1 |
The media type of the resource. |
|
resource_state |
ResourceState |
0..1 |
The resource state of the resource. |
|
service_family_type |
String |
0..1 |
The name of the service family type that this zone is associated with. Each Zone is contextualized in the service family type. |
|
service_templates |
Collection <ServiceTemplate> |
0..1 |
Collection of the service templates that this zone supports and can be deployed into. |
|
service_instances |
Collection <ServiceInstance> |
0..1 |
Collection of the service instances that are in this zone. |
A service family type is a category of services that are offered by the cloud. For example, IaaS is a category that encapsulates infrastructure services. Mwaas is a category that encapsulates middleware services. These categories are predefined. Service Family Type has the following media type and payload:
Media Type: application/oracle.com.cloud.common.ServiceFamilyType
Supported Payload: json
The following table describes the ServiceFamilyType Data Model
Table 25-6 Service Family Type
| Field | Type | Occurs | Description |
|---|---|---|---|
|
uri |
URI |
1 |
A GET against this URI refreshes the client representation of the ServiceFamilyType definition to this user. |
|
name |
String |
1 |
Name of the ServiceFamilyType. |
|
description |
String |
0..1 |
Human readable description of the Service Family Type. Shall be a UNICODE string to support different languages. |
|
resource_state |
ResourceState |
0..1 |
The resource state of the resource. |
|
media_type |
String |
1 |
The media type of the resource. |
|
service_templates |
Collection <ServiceTemplate> |
0..1 |
The collection of service templates that are of this service family type. |
|
zones |
Collection<Zone> |
0..1 |
The collection of zones that support service instances of this service family type. |
|
instance_types |
Collection <InstanceType> |
0..1 |
The collection of instance types that are supported by this service family type. |
A service instance type describes the common metadata about service instances of the type. This can be interpreted analogously as a Class where the service instance of the type is an instantiation of the class. The Service Instance Type has the following media type and payload:
Media Type: application/oracle.com.cloud.common.InstanceType
Supported Payload: json
The following table describes the ServiceFamilyType Data Model.
Table 25-7 Service Instance Type
| Field | Type | Occurs | Description |
|---|---|---|---|
|
uri |
URI |
1 |
A GET against this URI refreshes the client representation of the ServiceInstanceType definition to this user. |
|
name |
String |
1 |
Name of the ServiceInstanceType. |
|
description |
String |
0..1 |
Human readable description of the Service Instance Type. Shall be a UNICODE string to support different languages. |
|
resource_state |
ResourceState |
0..1 |
The resource state of the resource. |
|
media_type |
String |
1 |
The media type of the resource. |
|
instance_media_type |
String |
0..1 |
The media type of the instance of this type. |
|
metrics |
List<List<String>> |
0..1 |
List of metrics that may be supported by the instance type. Each list element represents the triple of "name", "description", and "type" of the metric. |
This resource represents a time series data that may be performance or configuration related. For example, CPU utilization could be a metric for a VM resource, Tablespace usages could be a metric for a Database resource. The Metric has the following media type and payload:
Media Type: application/oracle.com.cloud.common.Metric
Supported Payload: json
The following table describes the Metric Data Model.
| Field | Type | Occurs | Description |
|---|---|---|---|
|
uri |
URI |
1 |
A GET against this URI refreshes the client representation of the Metric definition to this user. |
|
name |
String |
1 |
Name of the Metric. |
|
description |
String |
0..1 |
Human readable description of the Metric. SHALL be a UNICODE string to support different languages. |
|
resource_state |
ResourceState |
0..1 |
The resource state of the resource. |
|
media_type |
String |
1 |
The media type of the resource. |
|
type |
String |
1 |
The type of the metric value. This is an enumeration of STRING, INTEGER, PERCENTAGE, NUMBER, MIX. |
|
current_value |
String |
0..1 |
The latest known value of the metric |
|
current_time |
ISO 8601 Date |
0..1 |
The UTC time when the current_value was last observed |
|
time_range |
List of 2 ISO 8601 Dates |
0..1 |
The first one is begin date, and the second one is end date. This range determines the time series window of "values" attribute |
|
rollup_unit |
String |
0..1 |
The rollup unit for the time series data. Could be one of DAY, DAILY, DAYLY, HOUR, HOURLY, RAW |
|
values |
List of objects |
0..1 |
For rollup_unit = RAW, this would be a list of object each containing "time_utc", and "value" attributes to indicate a timed observation. For all other rollup_unit, this would be a list of object each containing "time_utc", "average", "min", "max", "std" attributes to indicate an aggregated observations where supported. |
|
time_range_epoch |
List of 2 Number |
0..1 |
Same as time_range, but in the form of epoch time. |
A service instance describes the some common metadata about service instances. This is an abstract media type where the actual implementation would be provided by each XaaS services. It is expected that the extending resources respect GET request with this abstract media type. The Service Instance has the following media type and payload
Media Type: application/oracle.com.cloud.common.ServiceInstance
Supported Payload: json
The following table describes the Service Instance Data Model.
Table 25-9 Service Instance Data Model
| Field | Type | Occurs | Description |
|---|---|---|---|
|
uri |
URI |
1 |
A GET against this URI refreshes the client representation of the ServiceInstance definition to this user. |
|
name |
String |
1 |
Name of the ServiceInstance. |
|
description |
String |
0..1 |
Human readable description of the Service Instance. Shall be a UNICODE string to support different languages. |
|
resource_state |
ResourceState |
1 |
The resource state of the resource. |
|
media_type |
String |
1 |
The media type of the resource. |
|
metrics |
Collection <Metric> |
0..1 |
Collection of metrics that are observed on the resource. |
|
service_family_type |
String |
1 |
The name of the ServiceFamilyType that this service instance is in context of. |
|
status |
String |
0..1 |
The status of the entity represented by the service instance. For example, for service instance VM, the value could be STARTED, STOPPED, or any other values that are appropriate for VM. Each extending resource should describe the enumeration of status that are applicable. |
|
created |
ISO 8601 Date |
0..1 |
The date of which the service instance is created. |