SlideShare a Scribd company logo
1 of 69
Download to read offline
vCloud APIs - Architecture, Integration
VMware Coffee Talk Webinar - vCloud API
- Prasad Pimplaskar
Ecosystem Engineering, VMware




                                          © 2009 VMware Inc. All rights reserved
Disclaimer
This session may contain product features that are currently under
development.
This session/overview of the new technology represents no
commitment from VMware to deliver these features in any generally
available product.
Features are subject to change, and must not be included in
contracts, purchase orders, or sales agreements of any kind.
Technical feasibility and market demand will affect final delivery.
Pricing and packaging for any new technologies or features
discussed or presented have not been determined.

     “These features are representative of feature areas under development. Feature commitments
     are subject to change, and must not be included in contracts, purchase orders, or sales
     agreements of any kind. Technical feasibility and market demand will affect final delivery.”




     Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
     products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
     the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
About the speaker

Prasad works as Sr. Member of Technical Staff in VMware’s
EcoSystem Engineering Group, mainly focusing on the vCloud
and vSphere Web Services API. Currently he is working with
vCloud Service Providers and ISV partners for smooth adoption of
VMware’s vCloud vision.
Prasad has more than 15 years of experience in Enterprise
Software technologies in various technical and management
capacity.
Prasad holds B.S. in Computer Engineering and M.S. in Software
Engineering with emphasis on Enterprise Technologies. He also
teaches graduate classes as a visiting faculty in San Jose State
University.




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Takeaways

How vCloud Ecosystem is placed
Know about the vCloud API
Understand the flow of API using the vCloud resources
Know about upcoming Java Library for vCloud API




 Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
 products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
 the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Agenda

vCloud Ecosystem
vCloud API concepts
vCloud API deep-dive
vCloud API and vCloud Express
vCloud API - Java Library




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vCloud Ecosystem




 Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
 products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
 the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vCloud Ecosystem


Content Providers
 • ISVs, VARs, IT Admins, Enthusiasts, Developers
Content
 • Virtualized Software Solutions (vApps)
 • Existing legacy solutions, or new apps written for the Cloud
Content Respositories
 • Object Stores, Virtual Appliance Marketplace
Cloud Service Providers
Enterprises
Federation



  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vCloud High Level View

                                                                                                    Org 2                                     Org 1
• Provide SW so that anyone can
                                                                                                  Company B                                 Company A
    easily create cloud
                                                                                                 Access Control                            Access Control
•   Supports all applications                                                                       Users                                     Users

                                                                                                         vDC                                       vDC
•   Can scale up to large deployments                                                                               Alloca
                                                                                                                    tion
                                                                                                                                                               Alloc
                                                                                                                                                               ation




•   Secure multi-tenancy
•   Controlled programmatically through
    standard interfaces                                                                             New Technologies & vCloud API
                                                                                                         New Technologies
                                                                                                                             vSphere




    Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
    products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
    the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.                          8
vCloud Added Value

Pure Virtual
• Physical Infrastructure is Abstracted Away
Scalable
• Management Layer
• Compute Capacity
Self-Service User Interface
Standard API
• Admin
• User




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vApp: The Next Generation VM

An uplifting of a virtualized workload
    VM = Virtualized Hardware Box
    App = Virtualized Software Solution
    Takes the benefits of virtualization:                                                                              Policies
    encapsulation, isolation and mobility
    higher up the stack                                                                                  1.     Product: eCommerce
                                                                                                         2.     Topology
                                                                                                         3.     Resources Req: CPU, Mem,
Properties:                                                                                                     Disk, Bandwidth
    Comprised of one or more VMs                                                                         4.     Only port 80 is used
    (may be multi-tier applications)                                                                     5.     DR RPO: 1 hour
    Encapsulates requirements on the                                                                     6.     VRM: Encrypt w/ SHA-1
    deployment environment                                                                               7.     Decommission in 2 month
    Distributed as an OVF package                                                                                                    Websphere
                                                                                                               Tomcat                                  Exchange

Built by:
      ISVs / Virtual Appliance Vendors
      IT administrators                                                                                                                     SAP
      SI/VARs




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Abstractions



                                      Organization 1


                                                                      vDC
                                 vDC
                                                                                           vApp

                                                                        Storage


                                 vDC
                                                                       Resource
                                                                         Pool




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Agenda

vCloud Ecosystem
vCloud API concepts
vCloud API deep-dive
vCloud API and vCloud Express
vCloud API - Java Library




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vCloud API Functions and Details



                                                                                              Spans vCenter Instances, Internal
  vApp Upload/Download
                                                                                              and External Clouds
                                        Inventory Listing

                                                                                              Subset implemented by vCloud
                                                 vApp Operations                              Express Partners


                                                     Catalog Mgmt                             Submitted to DMTF Cloud Standards
                                                                                              Incubation Group
                                                      Task Mgmt                               Detailed spec and programming
                                                                                              guide available at
                                                                                              http://www.vmware.com/go/vcloudapi
    Platform as a Service                        SP Automation
         Enablement




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.                  13
vCloud API Salient Points

An Ecosystem API                                                                                    Pure-virtual API
• Platform independent                                                                                • Resource semantics described
   Can be used from virtually any                                                                         independent of physical semantics
   platform                                                                                                    Physical infrastructure is hidden
   Can be implemented on a variety of                                                                 • Simpler semantics focused on end-
   platforms                                                                                              use and not on virtualizing
• Straightforward to use and
  implement
• Powerful and extensible
• Standards-based




     Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
     products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
     the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vCloud API Features

Release in ‘Open’ form
 • Submitted to DMTF
Interface for:
 • Providing and consuming resources in the Cloud
 • Deploying and managing virtualized workloads in the Cloud
 • Migrating virtualized workloads between Clouds.
REST based
Multi-tenant
Self-service
Service provider automation




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vCloud API

vCloud API collectively is:
 • Way to enable clients to interact with clouds using established, standard based
     protocols and data formats
 •   Result of combined efforts by VMware and its partners to create the
     programming framework and enable the Ecosystem.
 •   Conceptual models of the system; Entities and relationships between them
 •   REST interfaces that exposes the functionality
 •   Mapping of the entities to REST resources

vCloud design goals:
 • Extensibility
         Start with small set of functionality using limited entities and increase the scope
         subsequently
 • Modularity
         Share API components (resources, entities) between different functionality sets
 • Usability
         Simple to use and easy to adopt considering different types of client needs

     Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
     products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
     the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Representational State Transfer

Style of architecture based on the design that uses resources and focuses on their states
Not a standard but a design pattern that recommends use of standards (such as HTTP, URL)
Application state and functionality are abstracted into resources
Every resource is located by URL and represented using XML, JSON etc.
The resource state is manipulated or inquired using GET, POST, DELETE and PUT
 • Sounds like HTTP and web operations(?)

 • Best suited for web development and web oriented technologies

 • World Wide Web is collection of resources accessed using URLs.

This essentially provides us CRUD methods hence can be applied to any resource

Real life models translated to resources
REST directive:
 • NO side effects of GET operation

 • PUT is idempotent

 • …




   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Why REST

REST is stateless and thus improves scalability
Hyperlinks in the resources avoids separate discovery mechanism for
resources
Web friendly HTTP CRUD operations works well with proxies and firewalls
Loose coupling of service implementation and access
No enforcement of OO so that resource implementation can change without
much affecting the client logic
No enforcement of representation protocol
 • Payload can be XML, JSON and different content types as defined in the HTTP
  specification.

Widely adopted and easy to use
Extensible - we can use different content types and add new resource
representations without breaking existing implementation or client code


   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Why REST

REST does not enforce the content type.
Resource entities commonly use XML/JSON so that consumption in
terms of object is easy
The XML payload can be constrained by schema (which defines the
object model) so that the client and server are free to use OO and
modeling techniques
Given resource can be accessed by multiple URLs
• E.g. <vm-uri>/nic/{id} and <network-uri>/nic/{id} may refer to same resource
Certain operations are seamlessly represented by RESTful (HTTP
CRUD) way
•   Create resource (create network) – POST
•   Retrieve resource (Get organization details) – GET
•   Update resource (change network connection of VM) – PUT
•   Delete resource (delete vApp) – DELETE

    Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
    products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
    the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
REST in Real Life Which is Virtual

Representing actions
 • In real life everything can not represented using the CRUD methods such as the operations on
   resources. E.g. power on/off VM
REST purist – RESTful vs. REST-like
 • CRUD operations in practice limits the API and its usability
 • Limited web vocabulary limits the functionality made available by API or needs lots of operation
   overloading.
 • Very few commercially available Pure REST API. We take the REST-like REST-RPC hybrid approach
   where in operations are overloaded e.g. POST in certain conditions means execute the overloaded
   action.
Operations on virtual resources
 • CRUD operations on virtual resources
 • VM power on/off
Long running tasks are also resources
 • Any POST, PUT, DELETE operation resulting in Task creation will return a Task resource back
 • The Task resource provides more information and can be queried to get the result (success or error)

   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vCloud API and vSphere API

vSphere API: “Under the                                                                           vCloud API: “Driver Seat” API
Hood” API
 • Used to create virtual resources                                                                    • Uses virtual resources
 • Virtualization API                                                                                  • Pure-virtual API
     Exposes physical<->virtual mapping                                                                         Hides underlying physical resources
 • Targeted at sys-admins                                                                              • Targeted at cloud tenants
 • Product specific                                                                                    • Product agnostic
     Exposes vSphere’s capabilities                                                                             Standardizable
     Tied to a specific implementation                                                                          Variety of implementations
 • Rich and powerful                                                                                   • Simple yet powerful
 • VMware’s Cloud OS Platform API                                                                      • Implementable on the vSphere API
                                                                                                       • Not a replacement for the vSphere
                                                                                                           API



      Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
      products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
      the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vApp – Next Generation VM Concept

An uplifting of a virtualized
workload
 • VM = Virtualized Hardware Box
                                                                                                                  Instructions
 • vApp = Virtualized Software
  Solution                                                                                                1.     Name=eCommerce
                                                                                                          2.     Only port 80 is used
 • Encapsulation, isolation and                                                                           3.     100 ms web response
  mobility higher up the stack                                                                            4.     VRM: Encrypt w/ SHA-1
                                                                                                          5.     DR RPO: 1 hour
Properties:
                                                                                                          6.     Decommission in 1 month
 • Comprised of one or more VMs                                                                        My eCommerce Solution
 • Encapsulates requirements on the                                                                     Fire                            Load
                                                                                                                 Tomcat        IIS             Oracle
  deployment environment                                                                                Wall                           Balance


 • Distributed as an OVF package




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vDC – vApp Deployment Environment


                                                                                                         Type of Commodity
vDC
                                                                                                            • Compute, Storage and Network
 vApp                                     vApp                                                                  SLAs
                                                                                                         Quantity
                                                                                                            • MB of RAM, MHz of CPU, GB
                                                                                                                of Storage
 foo
                                            VDCNet
                                            (fenced)                                                     Scope for Over-provisioning
bar
(isolated)                                                                                               Other features
Trust Network
                                                                                                            • L2 Networks
                                                                                                            • Persistent vApps
DMZ Network




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Agenda

vCloud Ecosystem
vCloud API concepts
vCloud API deep-dive
vCloud API and vCloud Express
vCloud API - Java Library




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
REST Resource Type - Entities

Entity resources
 • Corresponds to things that can be persistent and are independent of API technology,
   regardless of REST model, data model, OO model
 • Helps define objects from the data/model.
 • <vm-uri> is an entity representing VM but <vm-uri>/action/poweroff is not since its not a thing
   that can be persisted

Entity properties
 • Properties as in OO sense which comprise the state of the entity
 • Accessed by GETting the entity resource
 • Also accessed using the subordinate URI of the entity URI e.g. <vm-uri>/name
 • Does not include reference to other entities. No entity relationship using the properties
Entity links
 • Created by the Server and Read only for the client
 • Can be treated as simple property whose value is a URI to some other resources
 • Every entity also provides a URL to itself.

   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
REST Resource Type - Entities

Entity resources are defined in XML schema
Entity can have zero or more attributes and zero or more sub-
components
Attributes are presented using XML data types
Entities can have mutable sub elements accessed by HREF attribute
which is a URI
Behavior
• GET returns the representation of the entity.
• PUT if applicable updates the representation of the entity. The body of the
  PUT must include the entire representation of the entity that will replace the
  original representation.
• DELETE destroys the entity
• POST is N/A

  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
REST Resource Type - Facets

Represents self contained portion of resource functionality
• Examples: <vapp-uri>/power, <vapp-uri>/snapshot
Can have action and properties but not Links
Facet actions are described in entity functionality
• Example
  <VApp ...> :..
      <Link rel="power:powerOn"
       href="https://vcloud.example.com/v1/vapp/1983/power/action/powerOn" />
  :..
  </VApp>




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
API Versioning
vCloud API schema versions are reflected in the URL that are used to access the
 resources. The version is also reflected in the namespace for the vCloud Resources
 definition in the supplied XML schema.

Xsi:schemaLocation=http://www.vmware.com/vcloud/api/v1 Catalog.xsd
xmlsns:=http://www.vmware.com/vcloud/api/v1


API Version Request / Response
 GET http://vcloud.example.com/api/versions


<SupportedVersions xmlns="http://www.vmware.com/vcloud/versions"
   xsi:schemaLocation="http://www.vmware.com/vcloud/versions
   http://vcloud.example.com/api/versions/schema/versions.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <VersionInfo>
      <Version>1</Version>
      <LoginUrl>http://vcloud.example.com/api/v1/login</LoginUrl>
      <MediaTypeMapping> … </MediaTypeMapping>
   </VersionInfo>
</SupportedVersions>


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Example: login

Request
 POST http://vcloud.example.com/api/v0.9/login?username=”example-
 user”:password=”Hell0”

Response
 Date: <request-date>

 Expires: <expiration-date>

 Set-Cookie: vcloud-token=<token>;Path=/
 Content-Type: application/vnd.vmware.vcloud.orgslist+xml

 <?xml version="1.0" encoding="UTF-8"?>
 <OrgList xmlns="http://www.vmware.com/vcloud/v0.9" ... >
    <Org type="application/vnd.vmware.vcloud.org+xml"
     name="Example Corp.“
     href="http://vcloud.example.com/api/v0.9/org/1"/>
    <Org> … </Org>
    <Org> … </Org>
    <Org> … </Org>
 </OrgList>


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Simple Example: Power On

 Request
 POST https://vcloud.example.com/api/v0.9/vapp/vapp-
 413/power/action/powerOn

Response

 202 Accepted

 <?xml version="1.0" encoding="UTF-8"?>
 <Task href="https://vcloud.example.com/api/v0.8/task/389"
     type="application/vnd.vmware.vcloud.task+xml"
     startTime="2009-7-31T09:30:47Z"
     status="running" ...>

       <Link rel="task:cancel”
         href="htt.../task/389/action/cancel"/>

     <Owner href="https://vcloud.example.com/api/v0.9/vapp/vapp-413"
       type="application/vnd.vmware.vcloud.vapp+xml“
       name="My vApp"/>
 </Task>


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Simple Example: Look at a vApp

Request
GET https://vcloud.example.com/api/v0.9/vapp/413

Content-type: vnd.vmware.cloud.vapp+xml

Response
<VApp name="My vApp"
    status="1"
    href="https://vcloud.example.com/vapp/413" ...>

  <Link rel="up" href= "https://vcloud.example.com/vdc/128"/>
  <NetworkSection>...</NetworkSection>
  <ovf:OperatingSystemSection ...>
     <Link rel="edit" href="http..." ... />
     <Description>Microsoft Windows Server 2003</Description>
  </ovf:OperatingSystemSection>
  <ovf:VirtualHardwareSection ovf:transport="iso">
     <Link rel="edit" href="http..." ... />
     <Item>…</Item>
     …
  </ovf:VirtualHardwareSection>
</VApp>

  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Entity Model


                          UML Notation:
                          “whole-part” relationship
                          “part” is exclusively owned by “whole”




                                                                                             UML Notation:
                                                                                             One-way association
 UML Notation:
 “group-member” relationship
 “member” maybe shared between “groups”



  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Entity Model




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Entity Model




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Entity Model




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Get Information about an Organization


 <Org href="https://vcloud.example.com/api/v0.9/org/25" name=“engineering-org"

    xmlns="http://www.vmware.com/vcloud/v1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">

          <Link rel="down" href="https://vcloud.example.com/api/v0.9/vdc/9"

             type="application/vnd.vmware.vcloud.vdc+xml" name="Miami Env1"/>

          <Link rel="down" href="https://vcloud.example.com/api/v0.9/vdc/9/catalog"

             type="application/vnd.vmware.vcloud.catalog+xml" name="Miami Env1 Catalog"/>

          <Link rel="down" href="https://vcloud.example.com/api/v0.9/tasksList/9"

             type="application/vnd.vmware.vcloud.tasksList+xml" name="Miami Env1 Tasks
   List"/>

 </Org>


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Supported Link Relationships

  Rel Attribute                                                            Description                                                          Applicable
                                                                                                                                                HTTP Verb
Down                                   An item in this container                                                                              GET
Add                                    Add to this container                                                                                  POST
Up                                     The container resource of ‘this’                                                                       GET
Remove                                 Remove ‘this’                                                                                          DELETE
Edit                                   Edit/Update ‘this’                                                                                     PUT
Copy                                   Copy ‘this’ entity to a destination specified in                                                       POST
                                       the request body
Move                                   Move ‘this’ entity to a destination specified in                                                       POST
                                       request body
Upload:default                         Upload ‘this’ item                                                                                     PUT
Download:default Download ‘this’ item                                                                                                         GET


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Example Workflow:
                       Instantiating a vApp Template




Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Finding a vApp Template

Request
GET https://vcloud.example.com/api/v0.9/vdc/128

Response
<Vdc href="https://vcloud.example.com/api/v0.9/vdc/128"
    name="Main Vdc" ...>

    <ResourceEntities>
       <ResourceEntity
          href="https://vcloud.example.com/api/v0.9/vAppTemplate/111"
          type="application/vnd.vmware.vcloud.vAppTemplate+xml"
          name="Ubuntu Template with vsftpd"/>
       <ResourceEntity href="https://vcloud.example.com/api/v0.9/media/112"
          type="application/vnd.vmware.vcloud.media+xml"
          name="Ubuntu Boot Floppy"/>
       <ResourceEntity href="https://vcloud.example.com/api/v0.9/media/113"
          type="application/vnd.vmware.vcloud.media+xml"
          name="Ubuntu ISO Image"/>
    </ResourceEntities>
   ...
</Vdc>

    Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
    products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
    the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Get Information about a vApp Template

Request
 GET https://vcloud.example.com/api/v0.8/vAppTemplate/111


Response
 <VAppTemplate
 href="https://vcloud.example.com/api/v0.8/vAppTemplate/111"
    name="Ubuntu Template with vsftpd"
    status="1"
    ...>
    <Description>Description of Ubuntu Template with
 vsftpd</Description>

 </VAppTemplate>




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Instantiating a vApp Template




Request
 POST
 https://vcloud.example.com/api/v0.8/vdc/128/action/instantiateVAppTemplate

 <InstantiateVAppTemplateParams
    name="Linux FTP server" ...>
    <VAppTemplate href="https://.../vAppTemplate/111" />
    <InstantiationParams ...>
       <NetworkConfigSection>
          <NetworkConfig name="My vApp Net">
             <Features>
                <vmw:FenceMode>allowInOut</vmw:FenceMode>
                <vmw:Dhcp>true<vmw:Dhcp>
             </Features>
             <NetworkAssociation href="https://.../network/14">
          </NetworkConfig>
       </NetworkConfigSection>
    </InstantiationParams>
 </InstantiateVAppTemplateParams>


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Creating vApp Template Using OVF Package

A vCloud API client can create a vApp template when it has access
to the OVF package using following 3 easy steps.

• Initiate Upload :
      This steps identifies the target vDC and uses the ‘uploadVAppTemplate’
  action, which results in creation of vApp template entity.


 •   Upload OVF descriptor:
 The vApp Entity created above provides a link to load the OVF descriptor.
     The client is expected to use simple PUT operation to upload the
     contents.

 •   Upload the Disk Files:
 As a result of uploading the OVF contents the vApp now lists the VMDK files
     with the corresponding URL and attribute ‘ovfDescriptorUploaded’ = True.
 This final step uploads the disk file contents using series of HTTP PUT
     requests for every File in the list provided by vApp entity.


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Initiate upload of vApp Template


Request
POST
https://vcloud.example.com/api/v0.9/vdc/128/action/uploadVAppTemplate

Content-Type:
application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml


<UploadVAppTemplateParams name="Ubuntu Template"
 transferFormat="application/ovf+xml">
      <Description>My Ubuntu vApp Template</Description>
</UploadVAppTemplateParams>




    Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
    products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
    the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Initiate upload of vApp Template
200 OK
Content-Type: application/vnd.vmware.vcloud.vAppTemplate+xml
<VAppTemplate name="Ubuntu Template“
   href=http://vcloud.example.com/api/v0.9/vAppTemplate/268
   status="0" ovfDescriptorUploaded="false”
   type="application/vnd.vmware.vcloud.vAppTemplate+xml" ... >
   <Link type="application/vnd.vmware.vcloud.vdc+xml" rel="up”
    href="http://vcloud.example.com/api/v0.9/vdc/128" />
   <Description>My Ubuntu vApp Template</Description>
   <Files>
         <File name="descriptor.ovf" bytesTransferred="0“>
               <Link rel="upload:default“
                  href="http://vcloud.example.com/transfer/.../descriptor.ovf"/>
         </File>
   </Files>
</VAppTemplate>



  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
upload ovf

 PUT /local_pathname_to_ovf_descriptor_file
 http://vcloud.example.com/transfer/.../descriptor.ovf>
200 OK
Content-Type: application/vnd.vmware.vcloud.vAppTemplate+xml
…
<VAppTemplate ovfDescriptorUploaded="true" status="0“ name="Ubuntu Template"
  href=http://vcloud.example.com/api/v0.9/vAppTemplate/268
  type=”application/vnd.vmware.vcloud.vAppTemplate+xml” .>
     <Link type="application/vnd.vmware.vcloud.vdc+xml" rel="up“
       href="http://vcloud.example.com/api/v0.9/vdc/128" />
         <Description>My Ubuntu vApp Template</Description>
         <Files>
                <File size="3940" bytesTransferred="3940" name="descriptor.ovf”
checksum="...“>
                      <Link rel="download:default“
href="http://vcloud.example.com/transfer/.../descriptor.ovf" />
                </File>
         <File size="1950489088" bytesTransferred="0“ name="example-disk0.vmdk”
           checksum=“ fabbad334523432444989bbbffeea5561 ">
                  <Link rel="upload:default“
href="http://vcloud.example.com/transfer/.../example-disk0.vmdk" />
         </File>
          <File . name="example-disk1.vmdk" .>
.           ..
          </File>
       </Files>
</VAppTemplate>


     Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
     products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
     the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Complete List of Operations


vApp Operations
                                                                                             Upload/Download/Provisioning Operations
      POST <vapp-uri>/action/{deploy, undeploy}
      POST <vapp-uri>/power/action/{powerOn,                                                          POST <vdc-uri>/action/composeVApp
      powerOff}                                                                                       POST <vdc-uri>/action/instantiateVAppTemplate
      POST <vapp-uri>/power/action/{reset, suspend}                                                   POST <vdc-uri>/action/uploadVAppTemplate
      POST <vapp-uri>/power/action/{shutdown, reboot}                                                 POST <vdc-uri>/media
      GET <vapp-uri>/screen
                                                                                                      PUT <upload-uri>
      POST <vapp-uri>/screen/action/acquireTicket
                                                                                                      GET <download-uri>
vApp Configuration Operations                                                                         DELETE <resourceEntity-uri>
      POST <vapp-parent-element-uri>
      DELETE <vapp-element-uri>                                                              Task Management
      PUT <vapp-element-uri>
                                                                                                      GET <tasks-list-uri>
                                                                                                      GET <task-uri>
Inventory Listing
      GET <vapp-uri>                                                                                  POST <task-uri>/action/cancel
      GET <vdc-uri>
      GET <vAppTemplate-uri>                                                                 Service Provider Automation
      GET <media-uri>
                                                                                                      Create/Delete/Update Org
      GET <network-uri>
                                                                                                      Create/Delete/Update vDC for an Org
Catalog Management                                                                                    Create/Delete/Update an Org Network
      GET <catalog-uri>                                                                               Create/Delete/Update Org Catalogs
      POST <catalog-uri>/catalogItems                                                                 Create/Delete/Update Users, Groups, Roles

   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
API Workflow


                                                          Deploy vApp                                                           Clone vApp
      Login                                              POST <vapp-                                                           POST <vdc-
  POST <login-uri>                                     uri>/action/deploy                                                 uri>/action/cloneVApp



   Get Organization                                   Power on vApp
    GET <org-uri>                                      POST <vapp-
                                                uri>/power/action/powerOn
                                                                                                               Suspend/shutdown/reset vApp
      Get vDC                                                                                               POST <vapp-uri>/power/action/{suspend,
    GET <vdc-uri>                                                                                                     shutdown, reset}
                                                    Get vApp Information
                                                      GET <vapp-uri>

  Get vAppTemplate
 GET <vapptemplate-
        uri>                                          Power off vApp
                                                       POST <vapp-
                                                uri>/power/action/powerOff


       Instantiate
     vAppTemplate
                                                        Undeploy vApp
      POST <vdc-                                                                                                           Delete vApp
                                                         POST <vapp-
 uri>/action/instantiate                                                                                                DELETE <vapp-uri>
                                                     uri>/action/undeploy
     VAppTemplate

   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Administrative API

• Administrative extensions to the vCloud API
• Administrative Operations need administrative credentials of vCloud
 administrator
• Access to Administrative entities such as User, Group, Role, Provider
 vDC
• Access to administrative view of entities e.g. AdminOrg, AdminVdc
• Special URL to access the entities
 http://vcloud.example.com/api/v0.9/admin
• The above URL gives list of Top Level Administrative Entities in a
 vCloud: OrganizationReferences, ProviderVdcReferences,
 RightRefrences, RoleReferences, Networks

    Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
    products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
    the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Organization Administration

       Task                                           Request                                            Request                           Response
                                                                                                        Body Type                            Type

 Create an                     POST vCloud-                                                          AdminOrg                           AdminOrg
 Organization                  URL/admin/orgs


 Get           GET                                                                                   None                               AdminOrg
 Administrativ vCloudURL/admin/org/org-id
 e View of an
 Organization


 Modify an                     PUT                                                                   AdminOrg                           AdminOrg
 Organization                  vCloudURL/admin/org/org-id


 Remove an                     DELETE                                                                none
 Organization                  vCloudURL/admin/org/org-id


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vDC Administration


•Provider vDC
    • Created by vCloud Service Provider using tools specific to platform
    (e.g. vSphere)
    • Entities are read only to the API client
•AdminVdc
    • Created by vCloud Administrator
    • Created to allocate subset of Provider vDC resources and assigned
    to a vDC in Organization
• Administrative view of vDc can be obtained by using vDC’s admin URL
which then returns AdminVdc entity


   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
vDC Administration Requests

       Task                                                   Request                                             Request                       Response
                                                                                                                 Body Type                        Type

Examine the                       GET                                                                            None                         providerVdc
contents of a                     vCloudURL/admin/providervdc/id
Provider vDC
Allocate a vDC                    POST vCLoudURL/admin/vdcs/id                                                   AdminVdc                     Task
to an
Organization
Get an                            GET vCloudURL/admin/id                                                         None                         AdminVdc
Administrative
View of a vDC
Modify a vDC                      PUT vCloudURL/admin/id                                                         AdminVdc                     Task


Remove a vDC                      DELETE vCloudURL/admin/id                                                      none


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
User, Group and Role Administration

vCloud Administrator is like a ‘root’
Every user exists within the context of an Organization.
vCloud Administrator adds users to an Organization by POSTing User
Body
vCloud Administrator can also import users from an LDAP directory
service


vCloud Administrator can also import groups from an LDAP directory
service


Roles associates names with set of rights.
Role names must be unique in a vCloud instance.
vCloud administrator aggregates a set of rights in a Role Body


  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
User Administration

          Task                                                Request                                           Request                           Response
                                                                                                               Body Type                            Type
Create or Import a                    POST                                                                   User                             Task
User                                  vCloudUrl/admin/org/id/users
Create an                             GET                                                                    None                             User
Administrative                        vCloudUrl/admin/user/user-id
View of a User
Modify User                           PUT                                                                    User                             Task
metadata                              vCloudUrl/admin/user/user-id
Remove User                           DELETE                                                                 None
                                      vCloudUrl/admin/user/user-id




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Group Administration

          Task                                                Request                                           Request                           Response
                                                                                                               Body Type                            Type

Import a Group                        POST                                                                   Group                            Task
                                      vCloudUrl/admin/org/org-id/groups

View Group                            GET                                                                    None                             Group
Metadata                              vCloudUrl/admin/group/group-id



Modify User                           PUT                                                                    Group                            Task
metadata                              vCloudUrl/admin/group/group-id

Remove User                           DELETE                                                                 None
                                      vCloudUrl/admin/group/group-id




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Roles Administration

          Task                                                Request                                           Request                           Response
                                                                                                               Body Type                            Type

Create a Role                         POST                                                                   Role                             Task
                                      vCloudUrl/admin/roles

View Roles                            GET                                                                    None                             Role
metadat                               vCloudUrl/admin/role/role-id


Modify Role                           PUT                                                                    Role                             Task
                                      vCloudUrl/admin/role/role-id

Remove a Role                         DELETE                                                                 None
                                      vCloudUrl/admin/role/role-id




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Controlling Access

Access control operations allows Administrator to Control access to
Catalogs and vApps


           Task                                            Request                                     Request Body                          Response
                                                                                                           Type                                Type

  Controlling Access                  PUT                                                             ControlAccessPara
  to Catalogs                          vCloudUrl/org/org-id/catalog/cat-                              ms
                                      id/controlAccess

  Controlling access                  PUT                                                             ControlAccessPara
  to vApps                            vCloudUrl/org/org-id/vapp/vapp-                                 ms
                                      id/controlAccess




   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
List of Administration API

Organization Administration                                                                      Vdc Administration
    POST vCloudUrl/api/v0.9/admin/orgs                                                                      POST vCloudUrl/api/v0.9/admin/org/<id>/vdcs
    GET vCloudUrl /api/v0.9/admin/org/<id>                                                                  GET vCloudUrl/api/v0.9/admin/vdc/<id>
    PUT vCloudUrl /api/v0.9/admin/org/<id>                                                                  PUT vCloudUrl/api/v0.9/admin/vdc/<id>
                                                                                                            DELETE vCloudUrl/api/v0.9/admin/vdc/<id>
    DELETE vCloudUrl /api/v0.9/admin/org/<id>


Role Administration                                                                                Groups Administration
    POST vCloudUrl /api/v0.9/admin/roles                                                                   POST vCloudUrl/api/v0.9/admin/org/<id>/groups
    GET vCloudUrl /api/v0.9/admin/role/<id>                                                                GET vlLoudUrl/api/v0.9/admin/groups/<id>
    PUT vCloudUrl /api/v0.9/admin/role/<id>                                                                PUT vCloudUrl/api/v0.9/admin/groups/<id>
    DELETE vCloudUrl /api/v0.9/admin/role/<id>                                                             DELETE vCloudUrl/api/v0.9/admin/groups/<id>

User Administration

    POST vCloudUrl /api/v0.9/admin/org/<id>/users
    GET vCloudUrl /api/v0.9/admin/user/<id>
    PUT vCloudUrl /api/v0.9/admin/user/<id>
    DELETE vCloudUrl /api/v0.9/admin/user/<id>




      Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
      products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
      the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Agenda

vCloud Ecosystem
vCloud API concepts
vCloud API deep-dive
vCloud API and vCloud Express
vCloud API - Java Library




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
VMware vCloud™ Express                                                                                                                                         *NEW*




A new class of cloud compute services
offered by vCloud ecosystem partners

Infrastructure as a Service
   • On Demand

   • Pay-as-you-go

   •Self-Service Portal
                                                                                             http://www.vmware.com/vcloudexpress
   •vCloud API

   •Web-based Signup/Activation                                                              http://www.vmware.com/vcloud-api

   •Utility Pricing

   •Credit Card Billing
   •Interoperability Across Service Providers


        Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
        products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
        the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.                     59
VMware vCloud™ Express




 Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
 products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
 the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Agenda

vCloud Ecosystem
vCloud API concepts
vCloud API deep-dive
vCloud API and vCloud Express
vCloud API - Java Library




  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Why Java Library?


Get Java developers on board

API is not just interfaces and protocols

Clients expect solid Object Model in line with their use cases and
programming language of choice

Make the REST Resources available in Java

Helper and utility classes to address the client use cases

REST API modularity reflected into different packages

Packages that connect to different back end services (e.g. REST API,
transfer service, chargeback …)



   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Java Library Design Principles

High fidelity to REST API entity/resource models

Simple and clean design to help Predictability

No object life cycle management at the client side

Use design patterns

API Commandments

 • Less is more.
 • REST model types should be accessible to the clients as is; do not hide them
 • Use composition to handle the use cases and not inheritance.
 • Hide the URL semantics
 • Expose the Object Oriented nature of REST resources
 • Associate the resources with their operations

   Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
   products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
   the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Code Sample



VcloudClient client =
VcloudClient client =
new VcloudClient("https://example.vcoud.vmware.com");
new VcloudClient("https://example.vcoud.vmware.com");

client.setProxy("proxy.vmware.com", 3128);
client.setProxy("proxy.vmware.com", 3128);

// Named references to the Organization that user can access
// Named references to the Organization that user can access
HashMap<String, ReferenceType> orgs =
HashMap<String, ReferenceType> orgs =
client.login(“UserName", “password");
client.login(“UserName", “password");

// Now get org for given name
// Now get org for given name
ReferenceType orgRef = orgs.get(name);
ReferenceType orgRef = orgs.get(name);




    Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
    products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
    the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Code Sample : Get Catalog Items



import com.vmware.vcloud.api.rest.schema.ReferenceType;
 import com.vmware.vcloud.api.rest.schema.ReferenceType;

import com.vmware.vcloud.sdk.Organization;
 import com.vmware.vcloud.sdk.Organization;
import com.vmware.vcloud.sdk.Catalog;
 import com.vmware.vcloud.sdk.Catalog;

try {
 try {
   org = Organization.getOrganizationByReference(client, orgRef);
   org = Organization.getOrganizationByReference(client, orgRef);

 for(LinkType ln: org.getCatalogLinks()) {
  for(LinkType ln: org.getCatalogLinks()) {
    Catalog cat = Catalog.getCatalog(client, ln);
    Catalog cat = Catalog.getCatalog(client, ln);

      for(ReferenceType ref: cat.getItemReferences()) {
       for(ReferenceType ref: cat.getItemReferences()) {
         System.out.println(“Item Name: ““ + ref.getName());
         System.out.println(“Item Name: + ref.getName());
      }}

 }}

}} catch (VCloudException e) {
   catch (VCloudException e) {
   // Handle the exception
    // Handle the exception
   e.printStackTrace();
    e.printStackTrace();
}}




        Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
        products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
        the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Code Sample : Get and ‘Power On’ vApp



try {
 try {
   org = Organization.getOrganizationByReference(client, orgRef);
   org = Organization.getOrganizationByReference(client, orgRef);
   vdcLink = org.getVdcLinkById(<org Id>);
   vdcLink = org.getVdcLinkById(<org Id>);

 Vdc vdc = Vdc.getVdc(client, vdcLink);
 Vdc vdc = Vdc.getVdc(client, vdcLink);

 // Named collection of vApp
  // Named collection of vApp
 HashMap<String, ReferenceType> vapps = vdc.getVappRefsByName();
  HashMap<String, ReferenceType> vapps = vdc.getVappRefsByName();
 ReferenceType vappRef = vapps.get(“AppServer1”);
  ReferenceType vappRef = vapps.get(“AppServer1”);

 // Here we get the vApp
  // Here we get the vApp
 Vapp vapp = Vapp.getVappByReference(client, vappRef);
 Vapp vapp = Vapp.getVappByReference(client, vappRef);

 // Now perform an operation
  // Now perform an operation
 Task task = vapp.powerOn();
  Task task = vapp.powerOn();
 ……

}} catch (VCloudException e) {
   catch (VCloudException e) {
   // Handle the exception
    // Handle the exception
   e.printStackTrace();
    e.printStackTrace();
}}




      Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
      products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
      the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Code Sample : Upload vApp template and VMDK Files

Vdc vdc = Vdc.getVdcById(client, vdcId);
Vdc vdc = Vdc.getVdcById(client, vdcId);

try {
 try {
   VappTemplate vappTempl = vdc.uploadVappTemplate(
   VappTemplate vappTempl = vdc.uploadVappTemplate(
     getUploadvAppTemplateParams("SDK-Sample-Test", "Test Template -- PP"));
     getUploadvAppTemplateParams("SDK-Sample-Test", "Test Template PP"));

 File ff = new File(“ovf File Path”);
 File = new File(“ovf File Path”);

 FileInputStream fis = new FileInputStream(f);
 FileInputStream fis = new FileInputStream(f);

 vappTempl.uploadOVFFile(fis);
 vappTempl.uploadOVFFile(fis);

 System.out.println("Done Upload ..." + vappTemplId);
 System.out.println("Done Upload ..." + vappTemplId);

  // Get vAppTemplate and check ovfUploaded to be True
   // Get vAppTemplate and check ovfUploaded to be True
 VappTemplate newVappTempl = ….
  VappTemplate newVappTempl = ….
 // Now Upload the VMDK/Disk Files
  // Now Upload the VMDK/Disk Files
 File f1 = new File(vmdk);
  File f1 = new File(vmdk);
 FileInputStream fis1 = new FileInputStream(f1);
  FileInputStream fis1 = new FileInputStream(f1);

 // The file name below should match the one in above file name list.
  // The file name below should match the one in above file name list.
 newVappTempl.uploadVappFile("dsl-with-tools-disk1.vmdk", fis1, f1.length());
  newVappTempl.uploadVappFile("dsl-with-tools-disk1.vmdk", fis1, f1.length());

}} catch (VCloudException e) {
   catch (VCloudException e) {
   e.printStackTrace();
    e.printStackTrace();
}} catch (FileNotFoundException e) {
   catch (FileNotFoundException e) {
   e.printStackTrace();
    e.printStackTrace();
}}

     Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
     products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
     the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
Call to Action

Save the date for VMworld Developer Event
     Dedicated event for software developers
     vSphere APIs, vCloud APIs, Applications
     Stay tuned for more details http://blogs.vmware.com/developer


Participate in vCloud API community
http://vmware.com/go/vcloudapi


Online Resources
http://www.vmware.com/solutions/cloud-computing/
http://www.vmware.com/solutions/cloud-computing/vcloud-
api.html

  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
New ! SDK Developer Support for your organization


                                                                                                  - Dedicated Support
                                                                                                  - Developer to Developer
                                                                                                  - Flexible 1,2,3 year terms
                                                                                                  - Support for vCloud API,
                                                                                                      SDKs when GA
                                                                                                  - Contact your VMW
                                                                                                      / Partner representative




          http://vmware.com/go/sdksupport
  Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware
  products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in
  the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.

More Related Content

What's hot

WinWire Webinar: Messaging and Networking with Windows Azure
WinWire Webinar: Messaging and Networking with Windows AzureWinWire Webinar: Messaging and Networking with Windows Azure
WinWire Webinar: Messaging and Networking with Windows AzureWinWire Technologies Inc
 
Create Secure Site-to-Cloud VPN Connections
Create Secure Site-to-Cloud VPN ConnectionsCreate Secure Site-to-Cloud VPN Connections
Create Secure Site-to-Cloud VPN ConnectionsOpSource
 
Delivery to the Internet: Reaching Audiences Any Time, Any Place
Delivery to  the Internet: Reaching Audiences Any Time, Any PlaceDelivery to  the Internet: Reaching Audiences Any Time, Any Place
Delivery to the Internet: Reaching Audiences Any Time, Any PlaceOnFrame Ltd
 
VMUG ISRAEL November 2012, EMC session by Itzik Reich
VMUG ISRAEL November 2012, EMC session by Itzik ReichVMUG ISRAEL November 2012, EMC session by Itzik Reich
VMUG ISRAEL November 2012, EMC session by Itzik ReichItzik Reich
 
We4IT LCTY 2013 - Infra-Man - Deep Dive into IBM Sametime - Advanced Video Te...
We4IT LCTY 2013 - Infra-Man - Deep Dive into IBM Sametime - Advanced Video Te...We4IT LCTY 2013 - Infra-Man - Deep Dive into IBM Sametime - Advanced Video Te...
We4IT LCTY 2013 - Infra-Man - Deep Dive into IBM Sametime - Advanced Video Te...We4IT Group
 
Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Arun Gupta
 
Vimantra Cloud Video Platform
Vimantra Cloud Video PlatformVimantra Cloud Video Platform
Vimantra Cloud Video PlatformThomson Reuters
 
Cisco Dec 6 Toronto VMUG
Cisco Dec 6 Toronto VMUGCisco Dec 6 Toronto VMUG
Cisco Dec 6 Toronto VMUGtovmug
 
Current and Future of WAC/KWAC
Current and Future of WAC/KWACCurrent and Future of WAC/KWAC
Current and Future of WAC/KWACSangwon Yoon
 
Atmos Cloud -levytilaa pilvipalveluna, Antti Mäkinen
Atmos Cloud -levytilaa pilvipalveluna, Antti MäkinenAtmos Cloud -levytilaa pilvipalveluna, Antti Mäkinen
Atmos Cloud -levytilaa pilvipalveluna, Antti MäkinenProact Finland
 
Php In The Enterprise 01 24 2010
Php In The Enterprise 01 24 2010Php In The Enterprise 01 24 2010
Php In The Enterprise 01 24 2010phptechtalk
 
eFolder Webinar, Three Winning Deployment Scenarios for Dell AppAssure
eFolder Webinar, Three Winning Deployment Scenarios for Dell AppAssureeFolder Webinar, Three Winning Deployment Scenarios for Dell AppAssure
eFolder Webinar, Three Winning Deployment Scenarios for Dell AppAssureDropbox
 
Avaya Sip Within Your Enterprise
Avaya   Sip Within Your EnterpriseAvaya   Sip Within Your Enterprise
Avaya Sip Within Your Enterprisehypknight
 
Day 3 p4 - cloud strategy
Day 3   p4 - cloud strategyDay 3   p4 - cloud strategy
Day 3 p4 - cloud strategyLilian Schaffer
 

What's hot (18)

WinWire Webinar: Messaging and Networking with Windows Azure
WinWire Webinar: Messaging and Networking with Windows AzureWinWire Webinar: Messaging and Networking with Windows Azure
WinWire Webinar: Messaging and Networking with Windows Azure
 
Create Secure Site-to-Cloud VPN Connections
Create Secure Site-to-Cloud VPN ConnectionsCreate Secure Site-to-Cloud VPN Connections
Create Secure Site-to-Cloud VPN Connections
 
Delivery to the Internet: Reaching Audiences Any Time, Any Place
Delivery to  the Internet: Reaching Audiences Any Time, Any PlaceDelivery to  the Internet: Reaching Audiences Any Time, Any Place
Delivery to the Internet: Reaching Audiences Any Time, Any Place
 
VMUG ISRAEL November 2012, EMC session by Itzik Reich
VMUG ISRAEL November 2012, EMC session by Itzik ReichVMUG ISRAEL November 2012, EMC session by Itzik Reich
VMUG ISRAEL November 2012, EMC session by Itzik Reich
 
We4IT LCTY 2013 - Infra-Man - Deep Dive into IBM Sametime - Advanced Video Te...
We4IT LCTY 2013 - Infra-Man - Deep Dive into IBM Sametime - Advanced Video Te...We4IT LCTY 2013 - Infra-Man - Deep Dive into IBM Sametime - Advanced Video Te...
We4IT LCTY 2013 - Infra-Man - Deep Dive into IBM Sametime - Advanced Video Te...
 
Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011
 
Vimantra Cloud Video Platform
Vimantra Cloud Video PlatformVimantra Cloud Video Platform
Vimantra Cloud Video Platform
 
Cold Fusion Deck
Cold Fusion DeckCold Fusion Deck
Cold Fusion Deck
 
Cisco Dec 6 Toronto VMUG
Cisco Dec 6 Toronto VMUGCisco Dec 6 Toronto VMUG
Cisco Dec 6 Toronto VMUG
 
Current and Future of WAC/KWAC
Current and Future of WAC/KWACCurrent and Future of WAC/KWAC
Current and Future of WAC/KWAC
 
Atmos Cloud -levytilaa pilvipalveluna, Antti Mäkinen
Atmos Cloud -levytilaa pilvipalveluna, Antti MäkinenAtmos Cloud -levytilaa pilvipalveluna, Antti Mäkinen
Atmos Cloud -levytilaa pilvipalveluna, Antti Mäkinen
 
Orange is v cloud 3
Orange is v cloud 3Orange is v cloud 3
Orange is v cloud 3
 
Php In The Enterprise 01 24 2010
Php In The Enterprise 01 24 2010Php In The Enterprise 01 24 2010
Php In The Enterprise 01 24 2010
 
eFolder Webinar, Three Winning Deployment Scenarios for Dell AppAssure
eFolder Webinar, Three Winning Deployment Scenarios for Dell AppAssureeFolder Webinar, Three Winning Deployment Scenarios for Dell AppAssure
eFolder Webinar, Three Winning Deployment Scenarios for Dell AppAssure
 
Orange is v cloud 3
Orange is v cloud 3Orange is v cloud 3
Orange is v cloud 3
 
Mulesoft
MulesoftMulesoft
Mulesoft
 
Avaya Sip Within Your Enterprise
Avaya   Sip Within Your EnterpriseAvaya   Sip Within Your Enterprise
Avaya Sip Within Your Enterprise
 
Day 3 p4 - cloud strategy
Day 3   p4 - cloud strategyDay 3   p4 - cloud strategy
Day 3 p4 - cloud strategy
 

Similar to V c loudapi_coffeetalk__pimplaskar_may2010

Presentation v cloud ap-is - architecture, integration
Presentation   v cloud ap-is - architecture, integrationPresentation   v cloud ap-is - architecture, integration
Presentation v cloud ap-is - architecture, integrationsolarisyourep
 
Cloud FoundryではじめるPaaSアプリケーション 開発入門講座
Cloud FoundryではじめるPaaSアプリケーション 開発入門講座 Cloud FoundryではじめるPaaSアプリケーション 開発入門講座
Cloud FoundryではじめるPaaSアプリケーション 開発入門講座 Toshihiko Ikeda
 
vFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsvFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsVMware vFabric
 
A journey to the cloud: Getting started migrating your on-premises service to...
A journey to the cloud: Getting started migrating your on-premises service to...A journey to the cloud: Getting started migrating your on-premises service to...
A journey to the cloud: Getting started migrating your on-premises service to...OVHcloud
 
Presentation building your cloud with v mware
Presentation   building your cloud with v mwarePresentation   building your cloud with v mware
Presentation building your cloud with v mwaresolarisyourep
 
Presentation building your cloud with v mware
Presentation   building your cloud with v mwarePresentation   building your cloud with v mware
Presentation building your cloud with v mwarexKinAnx
 
VMware TechTues - Veeam Availability Suite
VMware TechTues - Veeam Availability SuiteVMware TechTues - Veeam Availability Suite
VMware TechTues - Veeam Availability SuiteTeck Sze Tay
 
Private cloud 201 cr
Private cloud 201   crPrivate cloud 201   cr
Private cloud 201 crChris Avis
 
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practiceOpenCity Community
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1makker_nl
 
Are web apps the future?
Are web apps the future?Are web apps the future?
Are web apps the future?Jonathan Howell
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)Simon Haslam
 
Presentation v mware v-cloud director technical overview
Presentation   v mware v-cloud director technical overviewPresentation   v mware v-cloud director technical overview
Presentation v mware v-cloud director technical overviewsolarisyourep
 
JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...terrencebarr
 
Leon IT Setup Case Study
Leon IT Setup Case StudyLeon IT Setup Case Study
Leon IT Setup Case Studyrahulmeher
 
Building vSphere Perf Monitoring Tools
Building vSphere Perf Monitoring ToolsBuilding vSphere Perf Monitoring Tools
Building vSphere Perf Monitoring ToolsPablo Roesch
 
Real World Application Orchestration Made Easy on VMware vCloud Air, vSphere ...
Real World Application Orchestration Made Easy on VMware vCloud Air, vSphere ...Real World Application Orchestration Made Easy on VMware vCloud Air, vSphere ...
Real World Application Orchestration Made Easy on VMware vCloud Air, vSphere ...Nati Shalom
 
Subversion Edge Overview
Subversion Edge OverviewSubversion Edge Overview
Subversion Edge OverviewLotharSchubert
 

Similar to V c loudapi_coffeetalk__pimplaskar_may2010 (20)

Presentation v cloud ap-is - architecture, integration
Presentation   v cloud ap-is - architecture, integrationPresentation   v cloud ap-is - architecture, integration
Presentation v cloud ap-is - architecture, integration
 
Cloud FoundryではじめるPaaSアプリケーション 開発入門講座
Cloud FoundryではじめるPaaSアプリケーション 開発入門講座 Cloud FoundryではじめるPaaSアプリケーション 開発入門講座
Cloud FoundryではじめるPaaSアプリケーション 開発入門講座
 
JavaCro'15 - Oracle Java Cloud Service Java PaaS - Duško Vukmanović
JavaCro'15 - Oracle Java Cloud Service  Java PaaS - Duško VukmanovićJavaCro'15 - Oracle Java Cloud Service  Java PaaS - Duško Vukmanović
JavaCro'15 - Oracle Java Cloud Service Java PaaS - Duško Vukmanović
 
vFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsvFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS Apps
 
A journey to the cloud: Getting started migrating your on-premises service to...
A journey to the cloud: Getting started migrating your on-premises service to...A journey to the cloud: Getting started migrating your on-premises service to...
A journey to the cloud: Getting started migrating your on-premises service to...
 
Presentation building your cloud with v mware
Presentation   building your cloud with v mwarePresentation   building your cloud with v mware
Presentation building your cloud with v mware
 
Presentation building your cloud with v mware
Presentation   building your cloud with v mwarePresentation   building your cloud with v mware
Presentation building your cloud with v mware
 
VMware TechTues - Veeam Availability Suite
VMware TechTues - Veeam Availability SuiteVMware TechTues - Veeam Availability Suite
VMware TechTues - Veeam Availability Suite
 
Private cloud 201 cr
Private cloud 201   crPrivate cloud 201   cr
Private cloud 201 cr
 
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview Slides
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practice
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
 
Are web apps the future?
Are web apps the future?Are web apps the future?
Are web apps the future?
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
Presentation v mware v-cloud director technical overview
Presentation   v mware v-cloud director technical overviewPresentation   v mware v-cloud director technical overview
Presentation v mware v-cloud director technical overview
 
JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...
 
Leon IT Setup Case Study
Leon IT Setup Case StudyLeon IT Setup Case Study
Leon IT Setup Case Study
 
Building vSphere Perf Monitoring Tools
Building vSphere Perf Monitoring ToolsBuilding vSphere Perf Monitoring Tools
Building vSphere Perf Monitoring Tools
 
Real World Application Orchestration Made Easy on VMware vCloud Air, vSphere ...
Real World Application Orchestration Made Easy on VMware vCloud Air, vSphere ...Real World Application Orchestration Made Easy on VMware vCloud Air, vSphere ...
Real World Application Orchestration Made Easy on VMware vCloud Air, vSphere ...
 
Subversion Edge Overview
Subversion Edge OverviewSubversion Edge Overview
Subversion Edge Overview
 

Recently uploaded

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

V c loudapi_coffeetalk__pimplaskar_may2010

  • 1. vCloud APIs - Architecture, Integration VMware Coffee Talk Webinar - vCloud API - Prasad Pimplaskar Ecosystem Engineering, VMware © 2009 VMware Inc. All rights reserved
  • 2. Disclaimer This session may contain product features that are currently under development. This session/overview of the new technology represents no commitment from VMware to deliver these features in any generally available product. Features are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind. Technical feasibility and market demand will affect final delivery. Pricing and packaging for any new technologies or features discussed or presented have not been determined. “These features are representative of feature areas under development. Feature commitments are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind. Technical feasibility and market demand will affect final delivery.” Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 3. About the speaker Prasad works as Sr. Member of Technical Staff in VMware’s EcoSystem Engineering Group, mainly focusing on the vCloud and vSphere Web Services API. Currently he is working with vCloud Service Providers and ISV partners for smooth adoption of VMware’s vCloud vision. Prasad has more than 15 years of experience in Enterprise Software technologies in various technical and management capacity. Prasad holds B.S. in Computer Engineering and M.S. in Software Engineering with emphasis on Enterprise Technologies. He also teaches graduate classes as a visiting faculty in San Jose State University. Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 4. Takeaways How vCloud Ecosystem is placed Know about the vCloud API Understand the flow of API using the vCloud resources Know about upcoming Java Library for vCloud API Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 5. Agenda vCloud Ecosystem vCloud API concepts vCloud API deep-dive vCloud API and vCloud Express vCloud API - Java Library Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 6. vCloud Ecosystem Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 7. vCloud Ecosystem Content Providers • ISVs, VARs, IT Admins, Enthusiasts, Developers Content • Virtualized Software Solutions (vApps) • Existing legacy solutions, or new apps written for the Cloud Content Respositories • Object Stores, Virtual Appliance Marketplace Cloud Service Providers Enterprises Federation Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 8. vCloud High Level View Org 2 Org 1 • Provide SW so that anyone can Company B Company A easily create cloud Access Control Access Control • Supports all applications Users Users vDC vDC • Can scale up to large deployments Alloca tion Alloc ation • Secure multi-tenancy • Controlled programmatically through standard interfaces New Technologies & vCloud API New Technologies vSphere Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies. 8
  • 9. vCloud Added Value Pure Virtual • Physical Infrastructure is Abstracted Away Scalable • Management Layer • Compute Capacity Self-Service User Interface Standard API • Admin • User Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 10. vApp: The Next Generation VM An uplifting of a virtualized workload VM = Virtualized Hardware Box App = Virtualized Software Solution Takes the benefits of virtualization: Policies encapsulation, isolation and mobility higher up the stack 1. Product: eCommerce 2. Topology 3. Resources Req: CPU, Mem, Properties: Disk, Bandwidth Comprised of one or more VMs 4. Only port 80 is used (may be multi-tier applications) 5. DR RPO: 1 hour Encapsulates requirements on the 6. VRM: Encrypt w/ SHA-1 deployment environment 7. Decommission in 2 month Distributed as an OVF package Websphere Tomcat Exchange Built by: ISVs / Virtual Appliance Vendors IT administrators SAP SI/VARs Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 11. Abstractions Organization 1 vDC vDC vApp Storage vDC Resource Pool Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 12. Agenda vCloud Ecosystem vCloud API concepts vCloud API deep-dive vCloud API and vCloud Express vCloud API - Java Library Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 13. vCloud API Functions and Details Spans vCenter Instances, Internal vApp Upload/Download and External Clouds Inventory Listing Subset implemented by vCloud vApp Operations Express Partners Catalog Mgmt Submitted to DMTF Cloud Standards Incubation Group Task Mgmt Detailed spec and programming guide available at http://www.vmware.com/go/vcloudapi Platform as a Service SP Automation Enablement Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies. 13
  • 14. vCloud API Salient Points An Ecosystem API Pure-virtual API • Platform independent • Resource semantics described Can be used from virtually any independent of physical semantics platform Physical infrastructure is hidden Can be implemented on a variety of • Simpler semantics focused on end- platforms use and not on virtualizing • Straightforward to use and implement • Powerful and extensible • Standards-based Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 15. vCloud API Features Release in ‘Open’ form • Submitted to DMTF Interface for: • Providing and consuming resources in the Cloud • Deploying and managing virtualized workloads in the Cloud • Migrating virtualized workloads between Clouds. REST based Multi-tenant Self-service Service provider automation Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 16. vCloud API vCloud API collectively is: • Way to enable clients to interact with clouds using established, standard based protocols and data formats • Result of combined efforts by VMware and its partners to create the programming framework and enable the Ecosystem. • Conceptual models of the system; Entities and relationships between them • REST interfaces that exposes the functionality • Mapping of the entities to REST resources vCloud design goals: • Extensibility Start with small set of functionality using limited entities and increase the scope subsequently • Modularity Share API components (resources, entities) between different functionality sets • Usability Simple to use and easy to adopt considering different types of client needs Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 17. Representational State Transfer Style of architecture based on the design that uses resources and focuses on their states Not a standard but a design pattern that recommends use of standards (such as HTTP, URL) Application state and functionality are abstracted into resources Every resource is located by URL and represented using XML, JSON etc. The resource state is manipulated or inquired using GET, POST, DELETE and PUT • Sounds like HTTP and web operations(?) • Best suited for web development and web oriented technologies • World Wide Web is collection of resources accessed using URLs. This essentially provides us CRUD methods hence can be applied to any resource Real life models translated to resources REST directive: • NO side effects of GET operation • PUT is idempotent • … Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 18. Why REST REST is stateless and thus improves scalability Hyperlinks in the resources avoids separate discovery mechanism for resources Web friendly HTTP CRUD operations works well with proxies and firewalls Loose coupling of service implementation and access No enforcement of OO so that resource implementation can change without much affecting the client logic No enforcement of representation protocol • Payload can be XML, JSON and different content types as defined in the HTTP specification. Widely adopted and easy to use Extensible - we can use different content types and add new resource representations without breaking existing implementation or client code Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 19. Why REST REST does not enforce the content type. Resource entities commonly use XML/JSON so that consumption in terms of object is easy The XML payload can be constrained by schema (which defines the object model) so that the client and server are free to use OO and modeling techniques Given resource can be accessed by multiple URLs • E.g. <vm-uri>/nic/{id} and <network-uri>/nic/{id} may refer to same resource Certain operations are seamlessly represented by RESTful (HTTP CRUD) way • Create resource (create network) – POST • Retrieve resource (Get organization details) – GET • Update resource (change network connection of VM) – PUT • Delete resource (delete vApp) – DELETE Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 20. REST in Real Life Which is Virtual Representing actions • In real life everything can not represented using the CRUD methods such as the operations on resources. E.g. power on/off VM REST purist – RESTful vs. REST-like • CRUD operations in practice limits the API and its usability • Limited web vocabulary limits the functionality made available by API or needs lots of operation overloading. • Very few commercially available Pure REST API. We take the REST-like REST-RPC hybrid approach where in operations are overloaded e.g. POST in certain conditions means execute the overloaded action. Operations on virtual resources • CRUD operations on virtual resources • VM power on/off Long running tasks are also resources • Any POST, PUT, DELETE operation resulting in Task creation will return a Task resource back • The Task resource provides more information and can be queried to get the result (success or error) Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 21. vCloud API and vSphere API vSphere API: “Under the vCloud API: “Driver Seat” API Hood” API • Used to create virtual resources • Uses virtual resources • Virtualization API • Pure-virtual API Exposes physical<->virtual mapping Hides underlying physical resources • Targeted at sys-admins • Targeted at cloud tenants • Product specific • Product agnostic Exposes vSphere’s capabilities Standardizable Tied to a specific implementation Variety of implementations • Rich and powerful • Simple yet powerful • VMware’s Cloud OS Platform API • Implementable on the vSphere API • Not a replacement for the vSphere API Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 22. vApp – Next Generation VM Concept An uplifting of a virtualized workload • VM = Virtualized Hardware Box Instructions • vApp = Virtualized Software Solution 1. Name=eCommerce 2. Only port 80 is used • Encapsulation, isolation and 3. 100 ms web response mobility higher up the stack 4. VRM: Encrypt w/ SHA-1 5. DR RPO: 1 hour Properties: 6. Decommission in 1 month • Comprised of one or more VMs My eCommerce Solution • Encapsulates requirements on the Fire Load Tomcat IIS Oracle deployment environment Wall Balance • Distributed as an OVF package Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 23. vDC – vApp Deployment Environment Type of Commodity vDC • Compute, Storage and Network vApp vApp SLAs Quantity • MB of RAM, MHz of CPU, GB of Storage foo VDCNet (fenced) Scope for Over-provisioning bar (isolated) Other features Trust Network • L2 Networks • Persistent vApps DMZ Network Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 24. Agenda vCloud Ecosystem vCloud API concepts vCloud API deep-dive vCloud API and vCloud Express vCloud API - Java Library Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 25. REST Resource Type - Entities Entity resources • Corresponds to things that can be persistent and are independent of API technology, regardless of REST model, data model, OO model • Helps define objects from the data/model. • <vm-uri> is an entity representing VM but <vm-uri>/action/poweroff is not since its not a thing that can be persisted Entity properties • Properties as in OO sense which comprise the state of the entity • Accessed by GETting the entity resource • Also accessed using the subordinate URI of the entity URI e.g. <vm-uri>/name • Does not include reference to other entities. No entity relationship using the properties Entity links • Created by the Server and Read only for the client • Can be treated as simple property whose value is a URI to some other resources • Every entity also provides a URL to itself. Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 26. REST Resource Type - Entities Entity resources are defined in XML schema Entity can have zero or more attributes and zero or more sub- components Attributes are presented using XML data types Entities can have mutable sub elements accessed by HREF attribute which is a URI Behavior • GET returns the representation of the entity. • PUT if applicable updates the representation of the entity. The body of the PUT must include the entire representation of the entity that will replace the original representation. • DELETE destroys the entity • POST is N/A Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 27. REST Resource Type - Facets Represents self contained portion of resource functionality • Examples: <vapp-uri>/power, <vapp-uri>/snapshot Can have action and properties but not Links Facet actions are described in entity functionality • Example <VApp ...> :.. <Link rel="power:powerOn" href="https://vcloud.example.com/v1/vapp/1983/power/action/powerOn" /> :.. </VApp> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 28. API Versioning vCloud API schema versions are reflected in the URL that are used to access the resources. The version is also reflected in the namespace for the vCloud Resources definition in the supplied XML schema. Xsi:schemaLocation=http://www.vmware.com/vcloud/api/v1 Catalog.xsd xmlsns:=http://www.vmware.com/vcloud/api/v1 API Version Request / Response GET http://vcloud.example.com/api/versions <SupportedVersions xmlns="http://www.vmware.com/vcloud/versions" xsi:schemaLocation="http://www.vmware.com/vcloud/versions http://vcloud.example.com/api/versions/schema/versions.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <VersionInfo> <Version>1</Version> <LoginUrl>http://vcloud.example.com/api/v1/login</LoginUrl> <MediaTypeMapping> … </MediaTypeMapping> </VersionInfo> </SupportedVersions> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 29. Example: login Request POST http://vcloud.example.com/api/v0.9/login?username=”example- user”:password=”Hell0” Response Date: <request-date> Expires: <expiration-date> Set-Cookie: vcloud-token=<token>;Path=/ Content-Type: application/vnd.vmware.vcloud.orgslist+xml <?xml version="1.0" encoding="UTF-8"?> <OrgList xmlns="http://www.vmware.com/vcloud/v0.9" ... > <Org type="application/vnd.vmware.vcloud.org+xml" name="Example Corp.“ href="http://vcloud.example.com/api/v0.9/org/1"/> <Org> … </Org> <Org> … </Org> <Org> … </Org> </OrgList> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 30. Simple Example: Power On Request POST https://vcloud.example.com/api/v0.9/vapp/vapp- 413/power/action/powerOn Response 202 Accepted <?xml version="1.0" encoding="UTF-8"?> <Task href="https://vcloud.example.com/api/v0.8/task/389" type="application/vnd.vmware.vcloud.task+xml" startTime="2009-7-31T09:30:47Z" status="running" ...> <Link rel="task:cancel” href="htt.../task/389/action/cancel"/> <Owner href="https://vcloud.example.com/api/v0.9/vapp/vapp-413" type="application/vnd.vmware.vcloud.vapp+xml“ name="My vApp"/> </Task> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 31. Simple Example: Look at a vApp Request GET https://vcloud.example.com/api/v0.9/vapp/413 Content-type: vnd.vmware.cloud.vapp+xml Response <VApp name="My vApp" status="1" href="https://vcloud.example.com/vapp/413" ...> <Link rel="up" href= "https://vcloud.example.com/vdc/128"/> <NetworkSection>...</NetworkSection> <ovf:OperatingSystemSection ...> <Link rel="edit" href="http..." ... /> <Description>Microsoft Windows Server 2003</Description> </ovf:OperatingSystemSection> <ovf:VirtualHardwareSection ovf:transport="iso"> <Link rel="edit" href="http..." ... /> <Item>…</Item> … </ovf:VirtualHardwareSection> </VApp> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 32. Entity Model UML Notation: “whole-part” relationship “part” is exclusively owned by “whole” UML Notation: One-way association UML Notation: “group-member” relationship “member” maybe shared between “groups” Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 33. Entity Model Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 34. Entity Model Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 35. Entity Model Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 36. Get Information about an Organization <Org href="https://vcloud.example.com/api/v0.9/org/25" name=“engineering-org" xmlns="http://www.vmware.com/vcloud/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Link rel="down" href="https://vcloud.example.com/api/v0.9/vdc/9" type="application/vnd.vmware.vcloud.vdc+xml" name="Miami Env1"/> <Link rel="down" href="https://vcloud.example.com/api/v0.9/vdc/9/catalog" type="application/vnd.vmware.vcloud.catalog+xml" name="Miami Env1 Catalog"/> <Link rel="down" href="https://vcloud.example.com/api/v0.9/tasksList/9" type="application/vnd.vmware.vcloud.tasksList+xml" name="Miami Env1 Tasks List"/> </Org> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 37. Supported Link Relationships Rel Attribute Description Applicable HTTP Verb Down An item in this container GET Add Add to this container POST Up The container resource of ‘this’ GET Remove Remove ‘this’ DELETE Edit Edit/Update ‘this’ PUT Copy Copy ‘this’ entity to a destination specified in POST the request body Move Move ‘this’ entity to a destination specified in POST request body Upload:default Upload ‘this’ item PUT Download:default Download ‘this’ item GET Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 38. Example Workflow: Instantiating a vApp Template Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 39. Finding a vApp Template Request GET https://vcloud.example.com/api/v0.9/vdc/128 Response <Vdc href="https://vcloud.example.com/api/v0.9/vdc/128" name="Main Vdc" ...> <ResourceEntities> <ResourceEntity href="https://vcloud.example.com/api/v0.9/vAppTemplate/111" type="application/vnd.vmware.vcloud.vAppTemplate+xml" name="Ubuntu Template with vsftpd"/> <ResourceEntity href="https://vcloud.example.com/api/v0.9/media/112" type="application/vnd.vmware.vcloud.media+xml" name="Ubuntu Boot Floppy"/> <ResourceEntity href="https://vcloud.example.com/api/v0.9/media/113" type="application/vnd.vmware.vcloud.media+xml" name="Ubuntu ISO Image"/> </ResourceEntities> ... </Vdc> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 40. Get Information about a vApp Template Request GET https://vcloud.example.com/api/v0.8/vAppTemplate/111 Response <VAppTemplate href="https://vcloud.example.com/api/v0.8/vAppTemplate/111" name="Ubuntu Template with vsftpd" status="1" ...> <Description>Description of Ubuntu Template with vsftpd</Description> </VAppTemplate> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 41. Instantiating a vApp Template Request POST https://vcloud.example.com/api/v0.8/vdc/128/action/instantiateVAppTemplate <InstantiateVAppTemplateParams name="Linux FTP server" ...> <VAppTemplate href="https://.../vAppTemplate/111" /> <InstantiationParams ...> <NetworkConfigSection> <NetworkConfig name="My vApp Net"> <Features> <vmw:FenceMode>allowInOut</vmw:FenceMode> <vmw:Dhcp>true<vmw:Dhcp> </Features> <NetworkAssociation href="https://.../network/14"> </NetworkConfig> </NetworkConfigSection> </InstantiationParams> </InstantiateVAppTemplateParams> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 42. Creating vApp Template Using OVF Package A vCloud API client can create a vApp template when it has access to the OVF package using following 3 easy steps. • Initiate Upload : This steps identifies the target vDC and uses the ‘uploadVAppTemplate’ action, which results in creation of vApp template entity. • Upload OVF descriptor: The vApp Entity created above provides a link to load the OVF descriptor. The client is expected to use simple PUT operation to upload the contents. • Upload the Disk Files: As a result of uploading the OVF contents the vApp now lists the VMDK files with the corresponding URL and attribute ‘ovfDescriptorUploaded’ = True. This final step uploads the disk file contents using series of HTTP PUT requests for every File in the list provided by vApp entity. Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 43. Initiate upload of vApp Template Request POST https://vcloud.example.com/api/v0.9/vdc/128/action/uploadVAppTemplate Content-Type: application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml <UploadVAppTemplateParams name="Ubuntu Template" transferFormat="application/ovf+xml"> <Description>My Ubuntu vApp Template</Description> </UploadVAppTemplateParams> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 44. Initiate upload of vApp Template 200 OK Content-Type: application/vnd.vmware.vcloud.vAppTemplate+xml <VAppTemplate name="Ubuntu Template“ href=http://vcloud.example.com/api/v0.9/vAppTemplate/268 status="0" ovfDescriptorUploaded="false” type="application/vnd.vmware.vcloud.vAppTemplate+xml" ... > <Link type="application/vnd.vmware.vcloud.vdc+xml" rel="up” href="http://vcloud.example.com/api/v0.9/vdc/128" /> <Description>My Ubuntu vApp Template</Description> <Files> <File name="descriptor.ovf" bytesTransferred="0“> <Link rel="upload:default“ href="http://vcloud.example.com/transfer/.../descriptor.ovf"/> </File> </Files> </VAppTemplate> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 45. upload ovf PUT /local_pathname_to_ovf_descriptor_file http://vcloud.example.com/transfer/.../descriptor.ovf> 200 OK Content-Type: application/vnd.vmware.vcloud.vAppTemplate+xml … <VAppTemplate ovfDescriptorUploaded="true" status="0“ name="Ubuntu Template" href=http://vcloud.example.com/api/v0.9/vAppTemplate/268 type=”application/vnd.vmware.vcloud.vAppTemplate+xml” .> <Link type="application/vnd.vmware.vcloud.vdc+xml" rel="up“ href="http://vcloud.example.com/api/v0.9/vdc/128" /> <Description>My Ubuntu vApp Template</Description> <Files> <File size="3940" bytesTransferred="3940" name="descriptor.ovf” checksum="...“> <Link rel="download:default“ href="http://vcloud.example.com/transfer/.../descriptor.ovf" /> </File> <File size="1950489088" bytesTransferred="0“ name="example-disk0.vmdk” checksum=“ fabbad334523432444989bbbffeea5561 "> <Link rel="upload:default“ href="http://vcloud.example.com/transfer/.../example-disk0.vmdk" /> </File> <File . name="example-disk1.vmdk" .> . .. </File> </Files> </VAppTemplate> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 46. Complete List of Operations vApp Operations Upload/Download/Provisioning Operations POST <vapp-uri>/action/{deploy, undeploy} POST <vapp-uri>/power/action/{powerOn, POST <vdc-uri>/action/composeVApp powerOff} POST <vdc-uri>/action/instantiateVAppTemplate POST <vapp-uri>/power/action/{reset, suspend} POST <vdc-uri>/action/uploadVAppTemplate POST <vapp-uri>/power/action/{shutdown, reboot} POST <vdc-uri>/media GET <vapp-uri>/screen PUT <upload-uri> POST <vapp-uri>/screen/action/acquireTicket GET <download-uri> vApp Configuration Operations DELETE <resourceEntity-uri> POST <vapp-parent-element-uri> DELETE <vapp-element-uri> Task Management PUT <vapp-element-uri> GET <tasks-list-uri> GET <task-uri> Inventory Listing GET <vapp-uri> POST <task-uri>/action/cancel GET <vdc-uri> GET <vAppTemplate-uri> Service Provider Automation GET <media-uri> Create/Delete/Update Org GET <network-uri> Create/Delete/Update vDC for an Org Catalog Management Create/Delete/Update an Org Network GET <catalog-uri> Create/Delete/Update Org Catalogs POST <catalog-uri>/catalogItems Create/Delete/Update Users, Groups, Roles Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 47. API Workflow Deploy vApp Clone vApp Login POST <vapp- POST <vdc- POST <login-uri> uri>/action/deploy uri>/action/cloneVApp Get Organization Power on vApp GET <org-uri> POST <vapp- uri>/power/action/powerOn Suspend/shutdown/reset vApp Get vDC POST <vapp-uri>/power/action/{suspend, GET <vdc-uri> shutdown, reset} Get vApp Information GET <vapp-uri> Get vAppTemplate GET <vapptemplate- uri> Power off vApp POST <vapp- uri>/power/action/powerOff Instantiate vAppTemplate Undeploy vApp POST <vdc- Delete vApp POST <vapp- uri>/action/instantiate DELETE <vapp-uri> uri>/action/undeploy VAppTemplate Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 48. Administrative API • Administrative extensions to the vCloud API • Administrative Operations need administrative credentials of vCloud administrator • Access to Administrative entities such as User, Group, Role, Provider vDC • Access to administrative view of entities e.g. AdminOrg, AdminVdc • Special URL to access the entities http://vcloud.example.com/api/v0.9/admin • The above URL gives list of Top Level Administrative Entities in a vCloud: OrganizationReferences, ProviderVdcReferences, RightRefrences, RoleReferences, Networks Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 49. Organization Administration Task Request Request Response Body Type Type Create an POST vCloud- AdminOrg AdminOrg Organization URL/admin/orgs Get GET None AdminOrg Administrativ vCloudURL/admin/org/org-id e View of an Organization Modify an PUT AdminOrg AdminOrg Organization vCloudURL/admin/org/org-id Remove an DELETE none Organization vCloudURL/admin/org/org-id Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 50. vDC Administration •Provider vDC • Created by vCloud Service Provider using tools specific to platform (e.g. vSphere) • Entities are read only to the API client •AdminVdc • Created by vCloud Administrator • Created to allocate subset of Provider vDC resources and assigned to a vDC in Organization • Administrative view of vDc can be obtained by using vDC’s admin URL which then returns AdminVdc entity Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 51. vDC Administration Requests Task Request Request Response Body Type Type Examine the GET None providerVdc contents of a vCloudURL/admin/providervdc/id Provider vDC Allocate a vDC POST vCLoudURL/admin/vdcs/id AdminVdc Task to an Organization Get an GET vCloudURL/admin/id None AdminVdc Administrative View of a vDC Modify a vDC PUT vCloudURL/admin/id AdminVdc Task Remove a vDC DELETE vCloudURL/admin/id none Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 52. User, Group and Role Administration vCloud Administrator is like a ‘root’ Every user exists within the context of an Organization. vCloud Administrator adds users to an Organization by POSTing User Body vCloud Administrator can also import users from an LDAP directory service vCloud Administrator can also import groups from an LDAP directory service Roles associates names with set of rights. Role names must be unique in a vCloud instance. vCloud administrator aggregates a set of rights in a Role Body Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 53. User Administration Task Request Request Response Body Type Type Create or Import a POST User Task User vCloudUrl/admin/org/id/users Create an GET None User Administrative vCloudUrl/admin/user/user-id View of a User Modify User PUT User Task metadata vCloudUrl/admin/user/user-id Remove User DELETE None vCloudUrl/admin/user/user-id Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 54. Group Administration Task Request Request Response Body Type Type Import a Group POST Group Task vCloudUrl/admin/org/org-id/groups View Group GET None Group Metadata vCloudUrl/admin/group/group-id Modify User PUT Group Task metadata vCloudUrl/admin/group/group-id Remove User DELETE None vCloudUrl/admin/group/group-id Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 55. Roles Administration Task Request Request Response Body Type Type Create a Role POST Role Task vCloudUrl/admin/roles View Roles GET None Role metadat vCloudUrl/admin/role/role-id Modify Role PUT Role Task vCloudUrl/admin/role/role-id Remove a Role DELETE None vCloudUrl/admin/role/role-id Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 56. Controlling Access Access control operations allows Administrator to Control access to Catalogs and vApps Task Request Request Body Response Type Type Controlling Access PUT ControlAccessPara to Catalogs vCloudUrl/org/org-id/catalog/cat- ms id/controlAccess Controlling access PUT ControlAccessPara to vApps vCloudUrl/org/org-id/vapp/vapp- ms id/controlAccess Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 57. List of Administration API Organization Administration Vdc Administration POST vCloudUrl/api/v0.9/admin/orgs POST vCloudUrl/api/v0.9/admin/org/<id>/vdcs GET vCloudUrl /api/v0.9/admin/org/<id> GET vCloudUrl/api/v0.9/admin/vdc/<id> PUT vCloudUrl /api/v0.9/admin/org/<id> PUT vCloudUrl/api/v0.9/admin/vdc/<id> DELETE vCloudUrl/api/v0.9/admin/vdc/<id> DELETE vCloudUrl /api/v0.9/admin/org/<id> Role Administration Groups Administration POST vCloudUrl /api/v0.9/admin/roles POST vCloudUrl/api/v0.9/admin/org/<id>/groups GET vCloudUrl /api/v0.9/admin/role/<id> GET vlLoudUrl/api/v0.9/admin/groups/<id> PUT vCloudUrl /api/v0.9/admin/role/<id> PUT vCloudUrl/api/v0.9/admin/groups/<id> DELETE vCloudUrl /api/v0.9/admin/role/<id> DELETE vCloudUrl/api/v0.9/admin/groups/<id> User Administration POST vCloudUrl /api/v0.9/admin/org/<id>/users GET vCloudUrl /api/v0.9/admin/user/<id> PUT vCloudUrl /api/v0.9/admin/user/<id> DELETE vCloudUrl /api/v0.9/admin/user/<id> Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 58. Agenda vCloud Ecosystem vCloud API concepts vCloud API deep-dive vCloud API and vCloud Express vCloud API - Java Library Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 59. VMware vCloud™ Express *NEW* A new class of cloud compute services offered by vCloud ecosystem partners Infrastructure as a Service • On Demand • Pay-as-you-go •Self-Service Portal http://www.vmware.com/vcloudexpress •vCloud API •Web-based Signup/Activation http://www.vmware.com/vcloud-api •Utility Pricing •Credit Card Billing •Interoperability Across Service Providers Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies. 59
  • 60. VMware vCloud™ Express Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 61. Agenda vCloud Ecosystem vCloud API concepts vCloud API deep-dive vCloud API and vCloud Express vCloud API - Java Library Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 62. Why Java Library? Get Java developers on board API is not just interfaces and protocols Clients expect solid Object Model in line with their use cases and programming language of choice Make the REST Resources available in Java Helper and utility classes to address the client use cases REST API modularity reflected into different packages Packages that connect to different back end services (e.g. REST API, transfer service, chargeback …) Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 63. Java Library Design Principles High fidelity to REST API entity/resource models Simple and clean design to help Predictability No object life cycle management at the client side Use design patterns API Commandments • Less is more. • REST model types should be accessible to the clients as is; do not hide them • Use composition to handle the use cases and not inheritance. • Hide the URL semantics • Expose the Object Oriented nature of REST resources • Associate the resources with their operations Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 64. Code Sample VcloudClient client = VcloudClient client = new VcloudClient("https://example.vcoud.vmware.com"); new VcloudClient("https://example.vcoud.vmware.com"); client.setProxy("proxy.vmware.com", 3128); client.setProxy("proxy.vmware.com", 3128); // Named references to the Organization that user can access // Named references to the Organization that user can access HashMap<String, ReferenceType> orgs = HashMap<String, ReferenceType> orgs = client.login(“UserName", “password"); client.login(“UserName", “password"); // Now get org for given name // Now get org for given name ReferenceType orgRef = orgs.get(name); ReferenceType orgRef = orgs.get(name); Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 65. Code Sample : Get Catalog Items import com.vmware.vcloud.api.rest.schema.ReferenceType; import com.vmware.vcloud.api.rest.schema.ReferenceType; import com.vmware.vcloud.sdk.Organization; import com.vmware.vcloud.sdk.Organization; import com.vmware.vcloud.sdk.Catalog; import com.vmware.vcloud.sdk.Catalog; try { try { org = Organization.getOrganizationByReference(client, orgRef); org = Organization.getOrganizationByReference(client, orgRef); for(LinkType ln: org.getCatalogLinks()) { for(LinkType ln: org.getCatalogLinks()) { Catalog cat = Catalog.getCatalog(client, ln); Catalog cat = Catalog.getCatalog(client, ln); for(ReferenceType ref: cat.getItemReferences()) { for(ReferenceType ref: cat.getItemReferences()) { System.out.println(“Item Name: ““ + ref.getName()); System.out.println(“Item Name: + ref.getName()); }} }} }} catch (VCloudException e) { catch (VCloudException e) { // Handle the exception // Handle the exception e.printStackTrace(); e.printStackTrace(); }} Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 66. Code Sample : Get and ‘Power On’ vApp try { try { org = Organization.getOrganizationByReference(client, orgRef); org = Organization.getOrganizationByReference(client, orgRef); vdcLink = org.getVdcLinkById(<org Id>); vdcLink = org.getVdcLinkById(<org Id>); Vdc vdc = Vdc.getVdc(client, vdcLink); Vdc vdc = Vdc.getVdc(client, vdcLink); // Named collection of vApp // Named collection of vApp HashMap<String, ReferenceType> vapps = vdc.getVappRefsByName(); HashMap<String, ReferenceType> vapps = vdc.getVappRefsByName(); ReferenceType vappRef = vapps.get(“AppServer1”); ReferenceType vappRef = vapps.get(“AppServer1”); // Here we get the vApp // Here we get the vApp Vapp vapp = Vapp.getVappByReference(client, vappRef); Vapp vapp = Vapp.getVappByReference(client, vappRef); // Now perform an operation // Now perform an operation Task task = vapp.powerOn(); Task task = vapp.powerOn(); …… }} catch (VCloudException e) { catch (VCloudException e) { // Handle the exception // Handle the exception e.printStackTrace(); e.printStackTrace(); }} Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 67. Code Sample : Upload vApp template and VMDK Files Vdc vdc = Vdc.getVdcById(client, vdcId); Vdc vdc = Vdc.getVdcById(client, vdcId); try { try { VappTemplate vappTempl = vdc.uploadVappTemplate( VappTemplate vappTempl = vdc.uploadVappTemplate( getUploadvAppTemplateParams("SDK-Sample-Test", "Test Template -- PP")); getUploadvAppTemplateParams("SDK-Sample-Test", "Test Template PP")); File ff = new File(“ovf File Path”); File = new File(“ovf File Path”); FileInputStream fis = new FileInputStream(f); FileInputStream fis = new FileInputStream(f); vappTempl.uploadOVFFile(fis); vappTempl.uploadOVFFile(fis); System.out.println("Done Upload ..." + vappTemplId); System.out.println("Done Upload ..." + vappTemplId); // Get vAppTemplate and check ovfUploaded to be True // Get vAppTemplate and check ovfUploaded to be True VappTemplate newVappTempl = …. VappTemplate newVappTempl = …. // Now Upload the VMDK/Disk Files // Now Upload the VMDK/Disk Files File f1 = new File(vmdk); File f1 = new File(vmdk); FileInputStream fis1 = new FileInputStream(f1); FileInputStream fis1 = new FileInputStream(f1); // The file name below should match the one in above file name list. // The file name below should match the one in above file name list. newVappTempl.uploadVappFile("dsl-with-tools-disk1.vmdk", fis1, f1.length()); newVappTempl.uploadVappFile("dsl-with-tools-disk1.vmdk", fis1, f1.length()); }} catch (VCloudException e) { catch (VCloudException e) { e.printStackTrace(); e.printStackTrace(); }} catch (FileNotFoundException e) { catch (FileNotFoundException e) { e.printStackTrace(); e.printStackTrace(); }} Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 68. Call to Action Save the date for VMworld Developer Event Dedicated event for software developers vSphere APIs, vCloud APIs, Applications Stay tuned for more details http://blogs.vmware.com/developer Participate in vCloud API community http://vmware.com/go/vcloudapi Online Resources http://www.vmware.com/solutions/cloud-computing/ http://www.vmware.com/solutions/cloud-computing/vcloud- api.html Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.
  • 69. New ! SDK Developer Support for your organization - Dedicated Support - Developer to Developer - Flexible 1,2,3 year terms - Support for vCloud API, SDKs when GA - Contact your VMW / Partner representative http://vmware.com/go/sdksupport Copyright © 2010 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and/or other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies.