Jump to: navigation, search

Difference between revisions of "API Special Interest Group/Current Design/Service Catalog"

Line 1: Line 1:
 
The format of the service catalog needs to be fixed. The de facto standard is currently DevStack. We need to define a proper format for the service catalog.
 
The format of the service catalog needs to be fixed. The de facto standard is currently DevStack. We need to define a proper format for the service catalog.
  
== Entry Points ==
+
= Examples From The Wild =
  
How are entry points currently done for all the services?
+
== Rackspace Public Cloud ==
  
== Versions ==
+
<pre><nowiki>
 +
{
 +
  "access": {
 +
    "user": {
 +
      "RAX-AUTH:defaultRegion": "DFW",
 +
      "name": "useranme",
 +
      "roles": [
 +
        {
 +
          "name": "checkmate",
 +
          "description": "Checkmate Access role",
 +
          "id": "10000150"
 +
        },
 +
        {
 +
          "name": "object-store:default",
 +
          "description": "A Role that allows a user access to keystone Service methods",
 +
          "id": "5",
 +
          "tenantId": "MossoCloudFS_ID"
 +
        },
 +
        {
 +
          "name": "compute:default",
 +
          "description": "A Role that allows a user access to keystone Service methods",
 +
          "id": "6",
 +
          "tenantId": "TENANT_ID"
 +
        },
 +
        {
 +
          "name": "identity:user-admin",
 +
          "description": "User Admin Role.",
 +
          "id": "3"
 +
        }
 +
      ],
 +
      "id": "USER_ID"
 +
    },
 +
    "serviceCatalog": [
 +
      {
 +
        "type": "rax:object-cdn",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://cdn5.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://cdn4.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "publicURL": "https://cdn1.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://cdn6.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "publicURL": "https://cdn2.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "ORD"
 +
          }
 +
        ],
 +
        "name": "cloudFilesCDN"
 +
      },
 +
      {
 +
        "type": "object-store",
 +
        "endpoints": [
 +
          {
 +
            "internalURL": "https://snet-storage101.iad3.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "publicURL": "https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "internalURL": "https://snet-storage101.syd2.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "publicURL": "https://storage101.syd2.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "internalURL": "https://snet-storage101.dfw1.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "publicURL": "https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "internalURL": "https://snet-storage101.hkg1.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "publicURL": "https://storage101.hkg1.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "internalURL": "https://snet-storage101.ord1.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "publicURL": "https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_ID",
 +
            "tenantId": "MossoCloudFS_ID",
 +
            "region": "ORD"
 +
          }
 +
        ],
 +
        "name": "cloudFiles"
 +
      },
 +
      {
 +
        "type": "volume",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://syd.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://ord.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          },
 +
          {
 +
            "publicURL": "https://iad.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://hkg.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          }
 +
        ],
 +
        "name": "cloudBlockStorage"
 +
      },
 +
      {
 +
        "type": "image",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://iad.images.api.rackspacecloud.com/v2",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://ord.images.api.rackspacecloud.com/v2",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          },
 +
          {
 +
            "publicURL": "https://hkg.images.api.rackspacecloud.com/v2",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.images.api.rackspacecloud.com/v2",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://syd.images.api.rackspacecloud.com/v2",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          }
 +
        ],
 +
        "name": "cloudImages"
 +
      },
 +
      {
 +
        "type": "rax:queues",
 +
        "endpoints": [
 +
          {
 +
            "internalURL": "https://snet-hkg.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "publicURL": "https://hkg.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "internalURL": "https://snet-ord.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "publicURL": "https://ord.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          },
 +
          {
 +
            "internalURL": "https://snet-syd.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "publicURL": "https://syd.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "internalURL": "https://snet-dfw.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "publicURL": "https://dfw.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "internalURL": "https://snet-iad.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "publicURL": "https://iad.queues.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          }
 +
        ],
 +
        "name": "cloudQueues"
 +
      },
 +
      {
 +
        "type": "rax:bigdata",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://iad.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://ord.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          }
 +
        ],
 +
        "name": "cloudBigData"
 +
      },
 +
      {
 +
        "type": "orchestration",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://hkg.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://ord.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          },
 +
          {
 +
            "publicURL": "https://iad.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://syd.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          }
 +
        ],
 +
        "name": "cloudOrchestration"
 +
      },
 +
      {
 +
        "type": "compute",
 +
        "endpoints": [
 +
          {
 +
            "versionId": "2",
 +
            "versionList": "https://syd.servers.api.rackspacecloud.com/",
 +
            "versionInfo": "https://syd.servers.api.rackspacecloud.com/v2",
 +
            "publicURL": "https://syd.servers.api.rackspacecloud.com/v2/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "versionId": "2",
 +
            "versionList": "https://dfw.servers.api.rackspacecloud.com/",
 +
            "versionInfo": "https://dfw.servers.api.rackspacecloud.com/v2",
 +
            "publicURL": "https://dfw.servers.api.rackspacecloud.com/v2/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "versionId": "2",
 +
            "versionList": "https://iad.servers.api.rackspacecloud.com/",
 +
            "versionInfo": "https://iad.servers.api.rackspacecloud.com/v2",
 +
            "publicURL": "https://iad.servers.api.rackspacecloud.com/v2/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "versionId": "2",
 +
            "versionList": "https://hkg.servers.api.rackspacecloud.com/",
 +
            "versionInfo": "https://hkg.servers.api.rackspacecloud.com/v2",
 +
            "publicURL": "https://hkg.servers.api.rackspacecloud.com/v2/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "versionId": "2",
 +
            "versionList": "https://ord.servers.api.rackspacecloud.com/",
 +
            "versionInfo": "https://ord.servers.api.rackspacecloud.com/v2",
 +
            "publicURL": "https://ord.servers.api.rackspacecloud.com/v2/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          }
 +
        ],
 +
        "name": "cloudServersOpenStack"
 +
      },
 +
      {
 +
        "type": "rax:autoscale",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://ord.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://hkg.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "publicURL": "https://iad.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://syd.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          }
 +
        ],
 +
        "name": "autoscale"
 +
      },
 +
      {
 +
        "type": "rax:database",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://syd.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://ord.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          },
 +
          {
 +
            "publicURL": "https://iad.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://hkg.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          }
 +
        ],
 +
        "name": "cloudDatabases"
 +
      },
 +
      {
 +
        "type": "rax:backup",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://iad.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://hkg.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "publicURL": "https://syd.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://ord.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          }
 +
        ],
 +
        "name": "cloudBackup"
 +
      },
 +
      {
 +
        "type": "network",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://iad.networks.api.rackspacecloud.com/v2.0",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://lon.networks.api.rackspacecloud.com/v2.0",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "LON"
 +
          },
 +
          {
 +
            "publicURL": "https://ord.networks.api.rackspacecloud.com/v2.0",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          },
 +
          {
 +
            "publicURL": "https://syd.networks.api.rackspacecloud.com/v2.0",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.networks.api.rackspacecloud.com/v2.0",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "publicURL": "https://hkg.networks.api.rackspacecloud.com/v2.0",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          }
 +
        ],
 +
        "name": "cloudNetworks"
 +
      },
 +
      {
 +
        "type": "rax:cloudmetrics",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://global.metrics.api.rackspacecloud.com/v2.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          }
 +
        ],
 +
        "name": "cloudMetrics"
 +
      },
 +
      {
 +
        "type": "rax:load-balancer",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://syd.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "publicURL": "https://iad.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "publicURL": "https://ord.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          },
 +
          {
 +
            "publicURL": "https://hkg.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "publicURL": "https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          }
 +
        ],
 +
        "name": "cloudLoadBalancers"
 +
      },
 +
      {
 +
        "type": "rax:feeds",
 +
        "endpoints": [
 +
          {
 +
            "internalURL": "https://atom.prod.hkg1.us.ci.rackspace.net/TENANT_ID",
 +
            "publicURL": "https://hkg.feeds.api.rackspacecloud.com/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "HKG"
 +
          },
 +
          {
 +
            "internalURL": "https://atom.prod.syd2.us.ci.rackspace.net/TENANT_ID",
 +
            "publicURL": "https://syd.feeds.api.rackspacecloud.com/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "SYD"
 +
          },
 +
          {
 +
            "internalURL": "https://atom.prod.iad3.us.ci.rackspace.net/TENANT_ID",
 +
            "publicURL": "https://iad.feeds.api.rackspacecloud.com/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "IAD"
 +
          },
 +
          {
 +
            "internalURL": "https://atom.prod.dfw1.us.ci.rackspace.net/TENANT_ID",
 +
            "publicURL": "https://dfw.feeds.api.rackspacecloud.com/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "DFW"
 +
          },
 +
          {
 +
            "internalURL": "https://atom.prod.ord1.us.ci.rackspace.net/TENANT_ID",
 +
            "publicURL": "https://ord.feeds.api.rackspacecloud.com/TENANT_ID",
 +
            "tenantId": "TENANT_ID",
 +
            "region": "ORD"
 +
          }
 +
        ],
 +
        "name": "cloudFeeds"
 +
      },
 +
      {
 +
        "type": "rax:monitor",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://monitoring.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID"
 +
          }
 +
        ],
 +
        "name": "cloudMonitoring"
 +
      },
 +
      {
 +
        "type": "rax:dns",
 +
        "endpoints": [
 +
          {
 +
            "publicURL": "https://dns.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID"
 +
          }
 +
        ],
 +
        "name": "cloudDNS"
 +
      },
 +
      {
 +
        "type": "compute",
 +
        "endpoints": [
 +
          {
 +
            "versionId": "1.0",
 +
            "versionList": "https://servers.api.rackspacecloud.com/",
 +
            "versionInfo": "https://servers.api.rackspacecloud.com/v1.0",
 +
            "publicURL": "https://servers.api.rackspacecloud.com/v1.0/TENANT_ID",
 +
            "tenantId": "TENANT_ID"
 +
          }
 +
        ],
 +
        "name": "cloudServers"
 +
      }
 +
    ],
 +
    "token": {
 +
      "RAX-AUTH:authenticatedBy": [
 +
        "PASSWORD"
 +
      ],
 +
      "tenant": {
 +
        "name": "TENANT_ID",
 +
        "id": "TENANT_ID"
 +
      },
 +
      "expires": "2014-12-11T03:26:57.420Z",
 +
      "id": "TOKEN_ID"
 +
    }
 +
  }
 +
}
 +
</nowiki></pre>
  
How are versions currently done for all the services?
+
== HP Public Cloud ==
  
== Name and Type ==
+
== Rackspace Private Cloud ==
  
Why are both needed?
+
== DevStack ==
Which are guaranteed to be unique?
 
  
== JSON structure ==
+
== RDO ==
  
Does there need to be a top-level "access" property?
+
== Mirantis ==
 +
 
 +
 
 +
= Outstanding Questions =
 +
 
 +
* How are entry points currently done for all the services?
 +
* How are versions currently done for all the services?
 +
* Why are Name and Type both needed?
 +
* Which of Name and Type are guaranteed to be unique?
 +
* Does there need to be a top-level "access" property?

Revision as of 22:40, 10 December 2014

The format of the service catalog needs to be fixed. The de facto standard is currently DevStack. We need to define a proper format for the service catalog.

Examples From The Wild

Rackspace Public Cloud

{
  "access": {
    "user": {
      "RAX-AUTH:defaultRegion": "DFW",
      "name": "useranme",
      "roles": [
        {
          "name": "checkmate",
          "description": "Checkmate Access role",
          "id": "10000150"
        },
        {
          "name": "object-store:default",
          "description": "A Role that allows a user access to keystone Service methods",
          "id": "5",
          "tenantId": "MossoCloudFS_ID"
        },
        {
          "name": "compute:default",
          "description": "A Role that allows a user access to keystone Service methods",
          "id": "6",
          "tenantId": "TENANT_ID"
        },
        {
          "name": "identity:user-admin",
          "description": "User Admin Role.",
          "id": "3"
        }
      ],
      "id": "USER_ID"
    },
    "serviceCatalog": [
      {
        "type": "rax:object-cdn",
        "endpoints": [
          {
            "publicURL": "https://cdn5.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://cdn4.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "SYD"
          },
          {
            "publicURL": "https://cdn1.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://cdn6.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "HKG"
          },
          {
            "publicURL": "https://cdn2.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "ORD"
          }
        ],
        "name": "cloudFilesCDN"
      },
      {
        "type": "object-store",
        "endpoints": [
          {
            "internalURL": "https://snet-storage101.iad3.clouddrive.com/v1/MossoCloudFS_ID",
            "publicURL": "https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "IAD"
          },
          {
            "internalURL": "https://snet-storage101.syd2.clouddrive.com/v1/MossoCloudFS_ID",
            "publicURL": "https://storage101.syd2.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "SYD"
          },
          {
            "internalURL": "https://snet-storage101.dfw1.clouddrive.com/v1/MossoCloudFS_ID",
            "publicURL": "https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "DFW"
          },
          {
            "internalURL": "https://snet-storage101.hkg1.clouddrive.com/v1/MossoCloudFS_ID",
            "publicURL": "https://storage101.hkg1.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "HKG"
          },
          {
            "internalURL": "https://snet-storage101.ord1.clouddrive.com/v1/MossoCloudFS_ID",
            "publicURL": "https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_ID",
            "tenantId": "MossoCloudFS_ID",
            "region": "ORD"
          }
        ],
        "name": "cloudFiles"
      },
      {
        "type": "volume",
        "endpoints": [
          {
            "publicURL": "https://syd.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          },
          {
            "publicURL": "https://dfw.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://ord.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          },
          {
            "publicURL": "https://iad.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://hkg.blockstorage.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          }
        ],
        "name": "cloudBlockStorage"
      },
      {
        "type": "image",
        "endpoints": [
          {
            "publicURL": "https://iad.images.api.rackspacecloud.com/v2",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://ord.images.api.rackspacecloud.com/v2",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          },
          {
            "publicURL": "https://hkg.images.api.rackspacecloud.com/v2",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          },
          {
            "publicURL": "https://dfw.images.api.rackspacecloud.com/v2",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://syd.images.api.rackspacecloud.com/v2",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          }
        ],
        "name": "cloudImages"
      },
      {
        "type": "rax:queues",
        "endpoints": [
          {
            "internalURL": "https://snet-hkg.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "publicURL": "https://hkg.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          },
          {
            "internalURL": "https://snet-ord.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "publicURL": "https://ord.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          },
          {
            "internalURL": "https://snet-syd.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "publicURL": "https://syd.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          },
          {
            "internalURL": "https://snet-dfw.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "publicURL": "https://dfw.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "internalURL": "https://snet-iad.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "publicURL": "https://iad.queues.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          }
        ],
        "name": "cloudQueues"
      },
      {
        "type": "rax:bigdata",
        "endpoints": [
          {
            "publicURL": "https://iad.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://dfw.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://ord.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          }
        ],
        "name": "cloudBigData"
      },
      {
        "type": "orchestration",
        "endpoints": [
          {
            "publicURL": "https://hkg.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          },
          {
            "publicURL": "https://dfw.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://ord.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          },
          {
            "publicURL": "https://iad.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://syd.orchestration.api.rackspacecloud.com/v1/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          }
        ],
        "name": "cloudOrchestration"
      },
      {
        "type": "compute",
        "endpoints": [
          {
            "versionId": "2",
            "versionList": "https://syd.servers.api.rackspacecloud.com/",
            "versionInfo": "https://syd.servers.api.rackspacecloud.com/v2",
            "publicURL": "https://syd.servers.api.rackspacecloud.com/v2/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          },
          {
            "versionId": "2",
            "versionList": "https://dfw.servers.api.rackspacecloud.com/",
            "versionInfo": "https://dfw.servers.api.rackspacecloud.com/v2",
            "publicURL": "https://dfw.servers.api.rackspacecloud.com/v2/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "versionId": "2",
            "versionList": "https://iad.servers.api.rackspacecloud.com/",
            "versionInfo": "https://iad.servers.api.rackspacecloud.com/v2",
            "publicURL": "https://iad.servers.api.rackspacecloud.com/v2/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "versionId": "2",
            "versionList": "https://hkg.servers.api.rackspacecloud.com/",
            "versionInfo": "https://hkg.servers.api.rackspacecloud.com/v2",
            "publicURL": "https://hkg.servers.api.rackspacecloud.com/v2/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          },
          {
            "versionId": "2",
            "versionList": "https://ord.servers.api.rackspacecloud.com/",
            "versionInfo": "https://ord.servers.api.rackspacecloud.com/v2",
            "publicURL": "https://ord.servers.api.rackspacecloud.com/v2/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          }
        ],
        "name": "cloudServersOpenStack"
      },
      {
        "type": "rax:autoscale",
        "endpoints": [
          {
            "publicURL": "https://ord.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          },
          {
            "publicURL": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://hkg.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          },
          {
            "publicURL": "https://iad.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://syd.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          }
        ],
        "name": "autoscale"
      },
      {
        "type": "rax:database",
        "endpoints": [
          {
            "publicURL": "https://syd.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          },
          {
            "publicURL": "https://dfw.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://ord.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          },
          {
            "publicURL": "https://iad.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://hkg.databases.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          }
        ],
        "name": "cloudDatabases"
      },
      {
        "type": "rax:backup",
        "endpoints": [
          {
            "publicURL": "https://iad.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://hkg.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          },
          {
            "publicURL": "https://syd.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          },
          {
            "publicURL": "https://dfw.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://ord.backup.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          }
        ],
        "name": "cloudBackup"
      },
      {
        "type": "network",
        "endpoints": [
          {
            "publicURL": "https://iad.networks.api.rackspacecloud.com/v2.0",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://lon.networks.api.rackspacecloud.com/v2.0",
            "tenantId": "TENANT_ID",
            "region": "LON"
          },
          {
            "publicURL": "https://ord.networks.api.rackspacecloud.com/v2.0",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          },
          {
            "publicURL": "https://syd.networks.api.rackspacecloud.com/v2.0",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          },
          {
            "publicURL": "https://dfw.networks.api.rackspacecloud.com/v2.0",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "publicURL": "https://hkg.networks.api.rackspacecloud.com/v2.0",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          }
        ],
        "name": "cloudNetworks"
      },
      {
        "type": "rax:cloudmetrics",
        "endpoints": [
          {
            "publicURL": "https://global.metrics.api.rackspacecloud.com/v2.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          }
        ],
        "name": "cloudMetrics"
      },
      {
        "type": "rax:load-balancer",
        "endpoints": [
          {
            "publicURL": "https://syd.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          },
          {
            "publicURL": "https://iad.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "publicURL": "https://ord.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          },
          {
            "publicURL": "https://hkg.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          },
          {
            "publicURL": "https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          }
        ],
        "name": "cloudLoadBalancers"
      },
      {
        "type": "rax:feeds",
        "endpoints": [
          {
            "internalURL": "https://atom.prod.hkg1.us.ci.rackspace.net/TENANT_ID",
            "publicURL": "https://hkg.feeds.api.rackspacecloud.com/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "HKG"
          },
          {
            "internalURL": "https://atom.prod.syd2.us.ci.rackspace.net/TENANT_ID",
            "publicURL": "https://syd.feeds.api.rackspacecloud.com/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "SYD"
          },
          {
            "internalURL": "https://atom.prod.iad3.us.ci.rackspace.net/TENANT_ID",
            "publicURL": "https://iad.feeds.api.rackspacecloud.com/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "IAD"
          },
          {
            "internalURL": "https://atom.prod.dfw1.us.ci.rackspace.net/TENANT_ID",
            "publicURL": "https://dfw.feeds.api.rackspacecloud.com/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "DFW"
          },
          {
            "internalURL": "https://atom.prod.ord1.us.ci.rackspace.net/TENANT_ID",
            "publicURL": "https://ord.feeds.api.rackspacecloud.com/TENANT_ID",
            "tenantId": "TENANT_ID",
            "region": "ORD"
          }
        ],
        "name": "cloudFeeds"
      },
      {
        "type": "rax:monitor",
        "endpoints": [
          {
            "publicURL": "https://monitoring.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID"
          }
        ],
        "name": "cloudMonitoring"
      },
      {
        "type": "rax:dns",
        "endpoints": [
          {
            "publicURL": "https://dns.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID"
          }
        ],
        "name": "cloudDNS"
      },
      {
        "type": "compute",
        "endpoints": [
          {
            "versionId": "1.0",
            "versionList": "https://servers.api.rackspacecloud.com/",
            "versionInfo": "https://servers.api.rackspacecloud.com/v1.0",
            "publicURL": "https://servers.api.rackspacecloud.com/v1.0/TENANT_ID",
            "tenantId": "TENANT_ID"
          }
        ],
        "name": "cloudServers"
      }
    ],
    "token": {
      "RAX-AUTH:authenticatedBy": [
        "PASSWORD"
      ],
      "tenant": {
        "name": "TENANT_ID",
        "id": "TENANT_ID"
      },
      "expires": "2014-12-11T03:26:57.420Z",
      "id": "TOKEN_ID"
    }
  }
}

HP Public Cloud

Rackspace Private Cloud

DevStack

RDO

Mirantis

Outstanding Questions

  • How are entry points currently done for all the services?
  • How are versions currently done for all the services?
  • Why are Name and Type both needed?
  • Which of Name and Type are guaranteed to be unique?
  • Does there need to be a top-level "access" property?