Skip Headers
Oracle® Enterprise Manager Cloud Administration Guide
12c Release 2 (12.1.0.2)

Part Number E28814-06
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

25 Cloud Resource Models

This chapter specifies the representations of the resources that the API operates on. It contains the following sections:

Enterprise Manager Cloud Resource Model 10001

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).


About Cloud Resources

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.

Figure 25-1 Cloud Resource Model

cloud resource model

Resource Data Models

The following sections provide details on the different cloud resource data models.

Cloud

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.

Table 25-2 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.


ServiceTemplate

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.


Zone

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.

Table 25-5 Zone Data Model

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.


Service Family Type

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.


Service Instance 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.


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.

Table 25-8 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.


Service Instance

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.