Cloud Services

Enterprise Marketplace

Data model for Service Offering Metadata
Published On Jun 17, 2024 - 12:08 PM

Data model for Service Offering Metadata

Get a description of the data model that is used by the Service Offering Metadata.
The tables on this page describe the data model that is used by the Service Offering Metadata.

Service Metadata data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value
serviceMetadata.serviceMetadataId
string
Yes
No
The unique ID as provided by the user during record creation
AlphaNumeric IDs.
AlphaNumeric IDs.
"^[a-zA-Z0-9_]*$
minLength: 3
maxLength: 32
serviceMetadata.supplierId
string
Yes
No
The provider code name to which this service belongs such as aws, gcp, softlayer, and so on
amazon, azure, vra, icd, softlayer.
minLength: 3
maxLength: 32
serviceMetadata.serviceMetadataName
string
Yes
No
The name of the service
minLength: 0
maxLength: 128
serviceMetadata.description
string
No
No
The short description of the service
minLength: 0
maxLength: 256
serviceMetadata.descriptionHTML
string
No
No
The URL to the
More Information
section for the service offering
Details
page
URL BASIC validation.
https?:\/\/(www.)?[-a-zA-Z0-9@:%.
+~#=]{2,256}.[a-z]{2,6}\b([-a-zA-Z0-9@:%
+.~#?&//=]*)
serviceMetadata.imageURL
string
No
No
The URL for an image for the service
URL BASIC validation.
https?:\/\/(www.)?[-a-zA-Z0-9@:%.
+~#=]{2,256}.[a-z]{2,6}\b([-a-zA-Z0-9@:%
+.~#?&//=]*
serviceMetadata.serviceDetails
string
No
No
The detailed description of the service on the Service Details page
minLength: 0
maxLength: Not restricted
serviceMetadata.serviceType
string
No
No
This parameter describes the type of the service if it is of the group of IaaS, SaaS, PaaS, CaaS, FaaS, and so on
minLength: 3
maxLength:32
serviceMetadata.terms
string
No
No
The terms and conditions for the service usage
minLength: 0
maxLength: Not restricted
serviceMetadata.serviceCategory
List of the JSON string objects
Yes
No
null
serviceMetadata.serviceCategory.Categoryid
string
Yes
No
The service category ID to classify this service into this category
minLength: 3
maxLength: 32
serviceMetadata.serviceCategory.name
string
No
No
Uses the predefined name for given serviceDefinitions.serviceCategory.Categoryid
minLength: 3
maxLength: 128
serviceMetadata.serviceCategory.description
string
No
No
Describes the category
minLength: 0
maxLength: 256
serviceMetadata.labels
List of JSON String objects
No
No
Establishes labels that can be used to search this service
minLength: 0
maxLength: 32
serviceMetadata.features
List of JSON objects
No
No
This lists the features that are provided by the service
null
serviceMetadata.features.name
string
No
No
This is to store the feature name
minLength: 0
maxLength: 32
serviceMetadata.features.description
string
No
No
This is to store the feature description
minLength: 0
serviceMetadata.provisioners
List of JSON objects
No
No
Stores the list of providerCode associated with this metadata
Each JSON object has ID, NAME, and description. Standard attribute groups are created to manage create, retrieve, update, and delete operations for this attribute group.
serviceMetadata.opreationGroup
list of JSON object
No
No
Stores a list of operations such as start, stop, pause, and delete associated with this service metadata
Each JSON object has ID, NAME, and description. Standard attribute groups are created to manage the create, retrieve, update, and delete operations for this attribute group
serviceMetadata.regions
List of JSON objects
No
No
Stores a list of regions such as us-west-1, us-east-1, and asia-south-1 associated with this service metadata
Each JSON object has ID, NAME, and description. Standard attribute groups are created to manage the create, retrieve, update, and delete operations for this attribute group.
serviceMetadata.technologies
List of json objects
No
No
Stores a list of technologies associated with this metadata
Each JSON object has ID, NAME, and description. Standard attribute groups are created to manage the create, retrieve, update, and delete operations for this attribute group.
serviceMetadata.additional_info
List of JSON objects
No
No
Stores additional attributes associated with this metadata
Each JSON object has ID, NAME, and description. Standard attribute groups are created to manage the create, retrieve, update, and delete operations for this attribute group.
serviceMetadata.createdBy
string
Yes in the case of POST
No
User Id who created the category object using the POST API
For example [email protected]
minLength: 5
maxLength: 256
serviceMetadata.createdAt
string
Yes
No
Auto generated when the object is created in the database
For example, 2019-05-07 21:16:41 in UTC format
serviceMetadata.modifiedBy
string
Yes in the case of PUT or PATCH
No
User id who modified the category object using either the PUT or PATCH API
For example [email protected]
minLength: 5
maxLength: 256
serviceMetadata.modifiedAt
string
Yes
No
Auto generated when the object is modified in the database
For example 2019-05-07 21:16:41 in UTC format

Sample data

The following is an example of the
ServiceDefinitionJSON
file:
{ "serviceMetadataId": "OBJECT_STORAGE_ACCOUNT", "serviceMetadataName": "Object Storage Account", "supplierId": "string", "description": "Object storage(Swift/S3) is a robust, highly scalable object-based storage solution. It includes pay-as-you-go pricing, built-in SFTP, full integration with CDN, and the ability to store, retrieve, and leverage data any way you want. It provides a structure for unstructured data.", "descriptionHTML": "https://ibm-public-cos.github.io/crs-docs/", "imageURL": "https://cache.globalcatalog.cloud.ibm.com/static/cache/2461-acb0d10a1725d783/images/uploaded/icons/object-storage.png", "serviceDetails": "Creats account for object storage(Cloud Object Storage - Standard Regional Swift/S3 API).", "serviceType": "IAAS", "terms": "Term and condition Refer to https://www-03.ibm.com/software/sla/sladb.nsf/sla/bm-7857-03", "categories": [ { "id": "IBM_SOFTLAYER_CATEGORY_ID_STORAGE", "name": "storage", "description": "Storage Category " } ], "labels": [ "Staged", "UnderDeployment" ], "features": [ { "shortDesc": "Highly Scalable", "description": [ "It offers a single storage system and namespace versus an ever-increasing number of limitedcapacity storage silos." ] } ], "provisioners": [ { "documentID": "000121010", "rowItems": [ { "atributeId": "id", "attributeValue": { "valueStr": "1" } }, { "atributeId": "name", "attributeValue": { "valueStr": "aws" } } ] }, { "documentID": "000121011", "rowItems": [ { "atributeId": "id", "attributeValue": { "valueStr": "1" } }, { "atributeId": "name", "attributeValue": { "valueStr": "gcp" } } ] }, ], "opreationGroup": [ { "documentID": "000121020", "rowItems": [ { "atributeId": "id", "attributeValue": { "valueStr": "1" } }, { "atributeId": "name", "attributeValue": { "valueStr": "start" } } ] }, { "documentID": "000121021", "rowItems": [ { "atributeId": "id", "attributeValue": { "valueStr": "1" } }, { "atributeId": "name", "attributeValue": { "valueStr": "stop" } } ] } ], "regions": [ { "documentID": "000121030", "rowItems": [ { "atributeId": "id", "attributeValue": { "valueStr": "1" } }, { "atributeId": "name", "attributeValue": { "valueStr": "us-west-1" } } ] }, { "documentID": "000121031", "rowItems": [ { "atributeId": "id", "attributeValue": { "valueStr": "1" } }, { "atributeId": "name", "attributeValue": { "valueStr": "us-east-1" } } ] } ], "technologies": [ { "documentID": "000121020", "rowItems": [ { "atributeId": "id", "attributeValue": { "valueStr": "1" } }, { "atributeId": "name", "attributeValue": { "valueStr": "aws-storage" } } ] } ], "additional_info": [ { "attributeGroupId": "additiona_infor", "values": [ { "documentID": "001212121", "rowItems": [ { "attributeId": "id", "attributeValue": { "valueStr": "0012212" } }, { "attributeId": "name", "attributeValue": { "valueStr": "extra-level" } }, { "attributeId": "value", "attributeValue": { "valueStr": "value-123" } } ] } ] } ], "createdBy": "abc, [email protected]", "createdAt": "2019-05-07 21:16:41", "modifiedBy": "pqr, [email protected]", "modifiedAt": "2019-05-07 21:16:41" }

Standard metadata

The following standard metadata models are planned to be managed as part of service-metadata. Service Offering Metadata will provide create, retrieve, update, and delete interfaces for managing this metadata.

Categories data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value/Length
categories.categoryID
string
Yes
No
The unique ID as provided by the user during record creation
AlphaNumeric IDs.
AlphaNumeric IDs.
"^[a-zA-Z0-9_]*$"
minLength: 3
maxLength: 32
categories.name
string
Yes
No
The name of the category
For example 'storage', 'compute', and so on
minLength: 3
maxLength: 32
categories.description
string
No
No
A description of the service category
minLength: 0
maxLength: 256
categories.providerCode
string
Yes
No
Stores provider code names
For example amazon, azure. vra, icd, and softlayer.
minLength: 3
maxLength: 32
categories.providerAssetType
string
Yes
No
Stores the map-able value of provider to identify the category
For example 'Amazon Elastic Compute Cloud' is stored for
compute
category
minLength: 5
maxLength: 256
categories.createdBy
string
Yes in the case of POST
No
User Id who created the category object using the POST API
For example [email protected]
minLength: 5
maxLength: 256
categories.createdAt
string
Yes
No
Auto-generated when the object is created in the database
For example 2019-05-07 21:16:41 in UTC format
categories.modifiedBy
string
Yes in the case of PUT or PATCH
No
User id who modified the category object using either the PUT or PATCH API
For example [email protected]
minLength: 5
maxLength: 256
categories.modifiedAt
string
Yes
No
Auto-generated when the object is modified in the database
For example 2019-05-07 21:16:41 in UTC format
The following is an example
JsonSampleObjectData
file:
{ "serviceId": "AWS_COMPUTE_V_1", "name": "Compute", "description": "This is required to store compute catagory", "providerCode": "aws", "providerAssetType": "Amazon Elastic Compute Cloud", "createdBy": "abc, [email protected]", "createdAt": "2019-05-07 21:16:41", "modifiedBy": "pqr, [email protected]", "modifiedAt": "2019-05-07 21:16:41", }

Operation group data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value/Length
operationGroup.createdAt
string
Yes
No
Auto-generated when the object is created in the database
For example 2019-05-07 21:16:41 in UTC format
operationGroup.createdBy
string
Yes in the case of POST
No
User Id who created category object using POST
For example [email protected]
minLength: 5
maxLength: 256
operationGroup.description
string
No
No
Stores a description of the service operation
minLength: 0
maxLength: 256
operationGroup.ID
string
Yes
No
The unique ID as provided by the user during record creation
AlphaNumeric IDs.
AlphaNumeric IDs.
"^[a-zA-Z0-9_]*$"
minLength: 3
maxLength: 32
operationGroup.modifiedAt
string
Yes
No
Auto-generated when the object is modified in the database
For example 2019-05-07 21:16:41 in UTC format
operationGroup.modifiedBy
string
Yes in the case of PUT or PATCH
No
User id who modified the category object using either PUT or PATCH
For example [email protected]
minLength: 5
maxLength: 256
operationGroup.name
string
Yes
No
Stores the name of the operation
For example 'storage', 'compute', and so on
minLength: 3
maxLength: 32

Region data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value/Length
region.ID
string
Yes
No
The unique ID as provided by the user during record creation
AlphaNumeric IDs.
AlphaNumeric IDs.
"^[a-zA-Z0-9_]*$"
minLength: 3
maxLength: 32
region.name
string
Yes
No
Stores the name of the region
For example 'storage', 'compute', and so on
minLength: 3
maxLength: 32
region.description
string
No
No
Stores a description of the service region
minLength: 0
maxLength: 256
region.createdBy
string
Yes in the case of POST
No
User Id who created category object using POST
For example [email protected]
minLength: 5
maxLength: 256
region.createdAt
string
Yes
No
Auto-generated when the object is created in the database
For example 2019-05-07 21:16:41 in UTC format
region.modifiedBy
string
Yes in the case of PUT or PATCH
No
User id who modified the category object using either PUT or PATCH
For example [email protected]
minLength: 5
maxLength: 256
region.modifiedAt
string
Yes
No
Auto-generated when the object is modified in the database
For example 2019-05-07 21:16:41 in UTC format

Provider data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value/Length
provider.ID
string
Yes
No
The unique ID as provided by the user during the record creation
AlphaNumeric IDs.
AlphaNumeric IDs.
"^[a-zA-Z0-9_]*$"
minLength: 3
maxLength: 32
provider.name
string
Yes
No
Stores the name of the provider
for example 'storage', 'compute', and so on
minLength: 3
maxLength: 32
provider.description
string
No
No
Stores a description of the service provider
minLength: 0
maxLength: 256
provider.createdBy
string
Yes in the case of POST
No
User Id who created category object using POST
For example [email protected]
minLength: 5
maxLength: 256
provider.createdAt
string
Yes
No
Auto-generated when the object is created in the database
For example 2019-05-07 21:16:41 in UTC format
provider.modifiedBy
string
Yes in the case of PUT or PATCH
No
User id who modified the category object using either PUT or PATCH
For example [email protected]
minLength: 5
maxLength: 256
provider.modifiedAt
string
Yes
No
Auto-generated when the object is modified in the database
For example 2019-05-07 21:16:41 in UTC format

Technologies data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value/Length
technologies.ID
string
Yes
No
The unique ID as provided by the user during record creation
AlphaNumeric IDs.
AlphaNumeric IDs.
"^[a-zA-Z0-9_]*$"
minLength: 3
maxLength: 32
technologies.name
string
Yes
No
Stores the name of the technology
For example 'storage', 'compute', and so on
minLength: 3
maxLength: 32
technologies.description
string
No
No
Stores a description of the service offering technology
minLength: 0
maxLength: 256
technologies.createdBy
string
Yes in the case of POST
No
User Id who created category object using POST
For example [email protected]
minLength: 5
maxLength: 256
technologies.createdAt
string
Yes
No
Auto-generated when the object is created in the database
For example 2019-05-07 21:16:41 in UTC format
technologies.modifiedBy
string
Yes in the case of PUT or PATCH
No
User id who modified the category object using either PUT or PATCH
For example [email protected]
minLength: 5
maxLength: 256
technologies.modifiedAt
string
Yes
No
Auto-generated when the object is modified in the database
For example 2019-05-07 21:16:41 in UTC format

Custom metadata

When working with custom metadata, the objective is to create a data model by defining an attribute group schema. While inserting the documents into the attribute group, the defined schema will be used to validate the document values. A new MongoDB collection will be created based on the
attributeGroupId
name. The Service Metadata standard data model will refer to such custom data model documents as needed.

Attribution group schema data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value/Length
attributeGroup.attributeGroupId
string
Yes
No
The unique ID as provided by the user during record creation
AlphaNumeric IDs.
AlphaNumeric IDs.
"^[a-zA-Z0-9_]*$"
minLength: 3
maxLength: 32
attributeGroup.atributeGroupName
string
Yes
No
Stores the name of the region
For example 'storage', 'compute', and so on
minLength: 3
maxLength: 32
attributeGroup.description
string
No
No
Stores a description of the service region
minLength: 0
maxLength: 256
attributeGroup.required
array of strings
No
No
Stores a list of attribute names that are required to be stored in the attribute group
-
attributeGroup.locale
string
No
No
Stores the language of the values stored in this attribute group
en_US
attributeGroup.attributes
JSON array of attribute objects
Yes
No
Stores a list of attributes
-
attributeGroup.createdBy
string
Yes in the case of POST
No
User Id who created category object using POST
For example [email protected]
minLength: 5
maxLength: 256
attributeGroup.createdAt
string
Yes
No
Auto-generated when the object is created in the database
For example 2019-05-07 21:16:41 in UTC format
attributeGroup.modifiedBy
string
Yes in the case of PUT or PATCH
No
User id who modified the category object using either PUT or PATCH
For example [email protected]
minLength: 5
maxLength: 256
attributeGroup.modifiedAt
string
Yes
No
Auto-generated when the object is modified in the database
For example 2019-05-07 21:16:41 in UTC format

Attribute data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value/Length
attribute.attributeId
string
Yes
No
The unique ID as provided by the user during record creation
AlphaNumeric IDs.
AlphaNumeric IDs.
"^[a-zA-Z0-9_]*$"
minLength: 3
maxLength: 32
attribute.attributeName
string
Yes
No
Stores the name of the region
For example 'storage', 'compute', and so on
minLength: 3
maxLength: 32
attribute.description
string
No
No
Stores a description of the service region
minLength: 0
maxLength: 256
attribute.type
string
Yes
No
Stores the type of attribute
enum, array, boolean, integer, object, string
attribute.properties.maxLength
string
No
No
Valid for string type. If provided, then the length of the value is verified against this string.
-
attribute.properties.minLength
string
No
No
Valid for string type. If provided, then the length of the value is verified against this string.
-
attribute.properties.pattern
string
No
No
Valid for string type. If provided, then the value is verified against this regular expression pattern.

Attribute group document data model

Parameter Name
JSON Type
Mandatory?
Is Data Encrypted?
Description
Sample Value/Length
attribute.values
List of JSON object of attributeDocument Type
Yes
No
-
-
attribute.attributeDocument.documentID
string
Yes
No
The unique ID as provided by the user during record creation
This ID is generated by the system
attribute.attributeDocument.rowItems
List of JSON object of attributeValueObject type
Yes
No
-
-
attribute.attributeDocument.rowItems.attributeId
string
Yes
No
This represents the attributeId as created in the attribute group
-
attribute.attributeDocument.rowItems.attributeValue
json Object
Yes
No
Contains the value of the attribute, which can be valueStr, valueInt, valueBool, valueObject, or valueArray. This value will be validated against the attribute type defined as part of the schema.
-
attribute.attributeDocument.rowItems.attributeValue.valueStr
string
No
No
Stores a string value
-
attribute.attributeDocument.rowItems.attributeValue.valueInt
integer
No
No
Stores a integervalue
-
attribute.attributeDocument.rowItems.attributeValue.valueBool
boolean
No
No
Stores a boolean value
-
attribute.attributeDocument.rowItems.attributeValue.valueObject
JSON Object
No
No
Stores a JSON object
-
attribute.attributeDocument.rowItems.attributeValue.valueArray
Json array
No
No
Stores array of JSON object
Do you have two minutes for a quick survey?
Take Survey