Collection Metadata

Collection specific metadata can be queried by sending an HTTP OPTIONS request on the specific collection:

OPTIONS /api/:collection

What gets returned is the following structure:

{
  "attributes": [
  ],
  "virtual_attributes": [
  ],
  "relationships": [
  ],
  "data": {
  }
}
Entry Description

attributes

Physical attributes of the collection

virtual_attributes

Virtual attributes of the collection

relationships

Physical or Virtual associations to other resources

data

Optional meta-data for the collection

The following is an example for the groups collection:

OPTIONS /api/groups
{
  "attributes": [
    "created_on",
    "description",
    "group_type",
    "id",
    "sequence",
    "settings",
    "tenant_id",
    "updated_on"
  ],
  "virtual_attributes": [
    "allocated_memory",
    "allocated_storage",
    "allocated_vcpu",
    "custom_1",
    "custom_2",
    "custom_3",
    "custom_4",
    "custom_5",
    "custom_6",
    "custom_7",
    "custom_8",
    "custom_9",
    "miq_user_role_name",
    "provisioned_storage",
    "read_only",
    "region_description",
    "region_number",
    "user_count"
  ],
  "relationships": [
    "active_vms",
    "custom_attributes",
    "entitlement",
    "miq_custom_attributes",
    "miq_report_results",
    "miq_reports",
    "miq_templates",
    "miq_user_role",
    "miq_widget_contents",
    "miq_widget_sets",
    "taggings",
    "tags",
    "tenant",
    "users",
    "vms"
  ],
  "data": {
  }
}

Optional Metadata

Most collections do not declare additional metadata as shown by the empty data hash entry above. Optional metadata is made available as needed for API clients. They are generally used to provide additional information needed for user-interfaces, help complete or validate data for additional API calls, etc.

Currently, optional metadata is made available for the following collections:

Collection

/api/arbitration_rules

/api/container_deployments

There is no enforced structure for the data element as each collection may need to provide different types of metadata. The following are partial meta-data examples:

OPTIONS /api/arbitration_rules
{
  "attributes" : [
    ...
  ],
  "virtual_attributes" : [
    ...
  ],
  "relationships" : [
    ...
  ],
  "data" : {
    "field_values": [
      "User-id",
      "User-name",
      "User-email",
      "User-userid",
      "User-first_name",
      "User-last_name",
      ...
    ]
  }
}
OPTIONS /api/container_deployments
{
  "attributes" : [
    ...
  ],
  "virtual_attributes" : [
    ...
  ],
  "relationships" : [
    ...
  ],
  "data" : {
    "deployment_types" : [
      "origin",
      "openshift-enterprise"
    ],
    "provision" : [
      {
        "provider" : {
          ...
        },
        "templates" : [
          ...
        ]
      }
    ],
    "providers" : [
      ...
    ]
  }
}