<commit_before><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter [
   <!ENTITY % common_project  SYSTEM "../wadls/common_project.ent">
   %common_project;
   ]>
<chapter xmlns="http://docbook.org/ns/docbook"
   xmlns:xi="http://www.w3.org/2001/XInclude"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns:linkend="http://www.w3.org/1999/linkend"
   xmlns:xref="http://www.w3.org/1999/xref"
   xmlns:wadl="http://wadl.dev.java.net/2009/02"
   version="5.0-extension RackBook-2.0"
   xml:id="compute-v2.1"
   role="api-reference">
  <title>Compute API (CURRENT)</title>
  <note>
    <para>
      Effective in the OpenStack Kilo release, XML support in requests and
      responses was removed for the Compute API.
    </para>
  </note>
  <para>
    This documentation supports the API v2.1 base version. If all extensions
    are enabled, the Compute API v1.1 and v2.0 requests and responses match
    the API v2.1 requests and responses.
  </para>
  <para>
    Each API version lists its required extensions for the full request and
    responses to be available. API v2.1 must enable all extensions all the
    time. It uses micro-version headers to expose any additional
    functionality.
  <!-- TODO - link for more details... -->
  </para>
  <para>
    This page lists the Compute API operations in the following order:
  </para>
  <itemizedlist role="compact">
    <listitem>
      <para>
          <link
            xlink:href="http://developer.openstack.org/api-ref-compute-v2.1.html#versions-v2.1">Versions</link>
      </para>
    </listitem>
    <listitem>
      <para>
        <link
            xlink:href="http://developer.openstack.org/api-ref-compute-v2.1.html#os-servers-v2.1">Servers</link>
      </para>
    </listitem>
    <listitem>
      <para>
        <link
            xlink:href="http://developer.openstack.org/api-ref-compute-v2.1.html#os-flavors-v2.1">Flavors</link>
      </para>
    </listitem>
    <listitem>
      <para>
        <link
            xlink:href="http://developer.openstack.org/api-ref-compute-v2.1.html#keypairs-v2.1">Keypairs</link>
      </para>
    </listitem>
    <listitem>
      <para>
        <link
            xlink:href="http://developer.openstack.org/api-ref-compute-v2.1.html#limits-v2.1">Limits</link>
      </para>
    </listitem>
    <listitem>
      <para>
         <link xlink:href="http://developer.openstack.org/api-ref-compute-v2.1.html#extensions-v2.1">Extensions</link> in alphabetical order by resource
      </para>
    </listitem>
  </itemizedlist>
  <section xml:id="versions-v2.1">
    <title>API versions</title>
    <para>
       Lists information for all API versions.
    </para>
    <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
      <wadl:resource
          href="../wadls/compute-api/src/v2.1/wadl/versions-v2.1.wadl#versions">
        <wadl:method href="#listVersionsv2.1"/>
      </wadl:resource>
    </wadl:resources>
  </section>
  <section xml:id="os-servers-v2.1">
    <title>Servers (servers)</title>
      <para>Lists, creates, gets details for, updates, and deletes servers.</para>
      <para><emphasis role="bold">Passwords</emphasis></para>
      <para>
        When you create a server, you can specify a password through the
        optional <property>adminPass</property> attribute. The password must
        meet the complexity requirements set by your OpenStack Compute
        provider. The server might enter an <code>ERROR</code> state if the
        complexity requirements are not met. In this case, a client might
        issue a change password action to reset the server password.
      </para>
      <para>
        If you do not specify a password, the API generates and assigns a
        random password that it returns in the response object. This
        password is guaranteed to meet the security requirements set by the
        compute provider. For security reasons, the password is not returned
        in subsequent &GET; calls.
      </para>
      <para><emphasis role="bold">Server metadata</emphasis></para>
      <para>
        You can specify custom server metadata at server launch time. The
        maximum size for each metadata key-value pair is 255 bytes. The
        compute provider determines the maximum number of key-value pairs
        that can be supplied for each server. You can query this value
        through the <code>maxServerMeta</code> absolute limit.
      </para>
      <para><emphasis role="bold">Server networks</emphasis></para>
      <para>
        You can specify one or more networks to which the server connects at
        launch time. Users can also specify a specific port on the network
        or the fixed IP address to assign to the server interface.
      </para>
      <note>
        <para>
          You can use both IPv4 and IPv6 addresses as access addresses and
          you can assign both addresses simultaneously. You can update
          access addresses after you create a server.
        </para>
      </note>
      <para><emphasis role="bold">Server personality</emphasis></para>
      <para>
        To customize the personality of a server instance, you can
        inject data into its file system. For example, you might
        insert ssh keys, set configuration files, or store data
        that you want to retrieve from inside the instance. This
        customization method provides minimal launch-time
        personalization. If you require significant customization,
        create a custom image.
      </para>
      <para>
        Follow these guidelines when you inject files:
      </para>
      <itemizedlist>
        <listitem>
          <para>
            The maximum size of the file path data is 255 bytes.
          </para>
        </listitem>
        <listitem>
          <para>
            Encode the file contents as a Base64 string. The compute
            provider determines the maximum size of the file contents. This
            value can vary based on the image that is used to create the
            server.
          </para>
          <note>
            <para>
              The maximum limit refers to the number of bytes in the
              decoded data and not to the number of characters in
              the encoded data.
            </para>
          </note>
        </listitem>
        <listitem>
          <para>
            You can inject only text files. You cannot inject
            binary or ZIP files into a new build.
          </para>
        </listitem>
        <listitem>
          <para>
            The <code>maxPersonality</code> absolute limit defines
            the maximum number of file path and content pairs that
            you can supply. The compute provider determines this
            value.
          </para>
        </listitem>
        <listitem>
          <para>
            The <code>maxPersonalitySize</code> absolute limit is a
            byte limit that is guaranteed to apply to all images in
            the deployment. Providers can set additional per-image
            personality limits.
          </para>
        </listitem>
      </itemizedlist>
      <para>
        The file injection might not occur until after the server
        is built and booted.
      </para>
      <para>
        During file injection, any existing files that match files in the
        request are renamed to include the BAK extension appended with a time
        stamp. For example, if the <code>/etc/passwd</code> file exists, it is
        backed up as <code>/etc/passwd.bak.1246036261.5785</code>.
      </para>
      <para>
        After file injection, only system administrators can
        access personality files. For example, on Linux, all files
        have root as the owner and the root group as the group
        owner, and allow only user and group read access (chmod
        440).
      </para>
      <para><emphasis role="bold">Server access addresses</emphasis></para>
      <para>
        In a hybrid environment, the underlying implementation might not
        control the IP address of a server. Instead, the access IP address
        might be part of the dedicated hardware; for example, a router/NAT
        device. In this case, the addresses provided by the implementation
        cannot actually be used to access the server (from outside the local
        LAN). Here, a separate <firstterm>access address</firstterm> might
        be assigned at creation time to provide access to the server. This
        address might not be directly bound to a network interface on the
        server and might not necessarily appear when you query the server
        addresses. Nonetheless, clients that must access the server directly
        are encouraged to do so through an access address.
      </para>
      <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02"
        href="../wadls/compute-api/src/v2.1/wadl/os-compute-2.1.wadl"/>
  </section>
  <section xml:id="os-multiple-create-v2.1">
      <title>Servers multiple create (servers)</title>
      <para>
         Creates one or more servers.
      </para>
      <para>
          Optionally, you can set <code>"return_reservation_id": "True"</code>
          in the request body to request that a reservation ID be returned
          instead of the newly created instance information. With this
          parameter, the response shows only the reservation ID.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-multiple-create-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-server-actions-v2.1">
    <title>Servers actions (servers, action)</title>
    <para>
       Performs actions on a server. Specify the action in the request body.
    </para>
    <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-multinic-v2.1.wadl#action">
        <wadl:method href="#addFixedIp"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#attach"/>
        <wadl:method href="#confirmResize"/>
        <wadl:method href="#createImage"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-evacuate-v2.1.wadl#action">
        <wadl:method href="#evacuate"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-deferred-delete-v2.1.wadl#action">
        <wadl:method href="#forceDelete"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-console-output-v2.1.wadl#action">
        <wadl:method href="#getConsoleOutput"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-remote-consoles-v2.1.wadl#action">
        <wadl:method href="#getRDPConsole"/>
        <wadl:method href="#getSerialConsole"/>
        <wadl:method href="#getSPICEConsole"/>
        <wadl:method href="#getVNCConsole"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#reboot"/>
        <wadl:method href="#rebuild"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-multinic-v2.1.wadl#action">
        <wadl:method href="#removeFixedIp"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#rescue"/>
        <wadl:method href="#resize"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-deferred-delete-v2.1.wadl#action">
        <wadl:method href="#restore"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#revertResize"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-shelve-v2.1.wadl#action">
        <wadl:method href="#shelve"/>
        <wadl:method href="#shelveOffload"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#start"/>
        <wadl:method href="#stop"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#unrescue"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-shelve-v2.1.wadl#action">
        <wadl:method href="#unshelve"/>
      </wadl:resource>
    </wadl:resources>
  </section>
  <section xml:id="os-admin-actions-v2.1">
    <title>Servers admin actions (servers, action)</title>
    <para>
       Administrators only. Performs actions on a server. Specify the action
       in the request body.
    </para>
    <wadl:resources
       href="../wadls/compute-api/src/v2.1/wadl/os-admin-actions-v2.1.wadl"
       xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="diagnostics-v2.1">
      <title>Servers diagnostics (servers, diagnostics)</title>
      <para>
         Gets the usage data for a server.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/diagnostics-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="server-ips-v2.1">
      <title>Servers IPs (servers, ips)</title>
      <para>
         Lists the IP addresses assigned to an instance or shows details for
         an IP address.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/server-ips-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="server-metadata-v2.1">
      <title>Server metadata (servers, metadata)</title>
      <para>
         Lists metadata, creates or replaces one or more metadata
         items, and updates one or more metadata items for a server.
      </para>
      <para>
         Shows details for, creates or replaces, and updates a metadata item,
         by key, for a server.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/server-metadata-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-instance-actions-v2.1">
    <title>Servers action (servers, os-instance-actions)</title>
    <para>
      Permits all users to list available server actions for a server. Permits
      administrators to get details for a server action for a server.
    </para>
    <wadl:resources
       href="../wadls/compute-api/src/v2.1/wadl/os-instance-actions-v2.1.wadl"
       xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-interface-v2.1">
      <title>Port interfaces (servers, os-interface)</title>
      <para>
         Creates a port interface and uses it to attach a port to a server and
         detaches a port interface from a server. Also, lists all port
         interfaces and shows details for a port interface.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-interface-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
  <section xml:id="os-server-password-v2.1">
      <title>Servers password (servers, os-server-password)</title>
      <para>
         Gets the encrypted administrative password set through the metadata
         service.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-server-password-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-virtual-interfaces-v2.1">
      <title>Servers virtual interfaces (servers, os-virtual-interfaces)</title>
      <para>
         Lists virtual interfaces for a server instance.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-virtual-interfaces-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-flavors-v2.1">
      <title>Flavors with extended attributes (flavors)</title>
      <para>
         Shows information about flavors.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-flavors-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-flavor-access-v2.1">
      <title>Flavors access (flavors, os-flavor-access, action)</title>
      <para>
         Provides flavor access support.
      </para>
      <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
         <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-flavor-access-v2.1.wadl#os-flavor-access">
              <wadl:method href="#create-flavor-accesslist"/>
              <wadl:method href="#list-flavor-accesslist"/>
         </wadl:resource>
         <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-flavor-access-v2.1.wadl#flavor_id">
               <wadl:method href="#show-flavor-accesslist"/>
         </wadl:resource>
         <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-flavor-access-v2.1.wadl#action">
               <wadl:method href="#add-flavoraccess-to-tenant"/>
               <wadl:method href="#remove-flavoraccess-from-tenant"/>
         </wadl:resource>
         <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-flavor-access-v2.1.wadl#detail">
               <wadl:method href="#list-flavor-accesslist-detail"/>
         </wadl:resource>
      </wadl:resources>
  </section>
  <section xml:id="flavor-extra-specs-v2.1">
      <title>Flavors extra-specs (flavors, os-flavor-extra-specs)</title>
      <para>
         Lists, creates, deletes, and updates the extra-specs or keys for a
         flavor.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-flavor-extra-specs-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-flavor-manage-v2.1">
      <title>Flavors manage (flavors, os-flavor-manage)</title>
      <para>
         Creates and deletes flavors.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-flavor-manage-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="keypairs-v2.1">
      <title>Keypairs (keypairs)</title>
      <para>Generates, imports, and deletes SSH keys.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/keypairs-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="limits-v2.1">
      <title>Limits (limits)</title>
      <para>
         Shows all global and rate limit information.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/limits-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="extensions-v2.1">
      <title>Extensions (extensions)</title>
      <para>
         Available extensions.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-extensions-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="compute_images-v2.1">
        <title>Images</title>
        <para>
            Lists, gets details for, and deletes images. Also sets, lists,
            gets details for, and deletes image metadata.
         </para>
         <para>
            An image is a collection of files that you use to create and
            rebuild a server. By default, operators provide pre-built
            operating system images. You can also create custom images. See
            Compute server actions.
         </para>
         <para>
            If you set the image size policy in the <code>policy.json</code>
            file, the <code>OS-EXT-IMG-SIZE:size</code> extended attribute is
            visible.
        </para>
        <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#Images">
                <wadl:method href="#listImages"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#image_detail">
                <wadl:method href="#listDetailImages"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#image_id">
                <wadl:method href="#getImage"/>
                <wadl:method href="#deleteImage"/>
            </wadl:resource>
        </wadl:resources>
  </section>
  <section xml:id="compute_image_metadata-v2.1">
        <title>Image metadata</title>
        <para>Shows details for, sets, updates, and deletes image metadata or metadata items.</para>
        <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#image_metadata">
                <wadl:method href="#showImageMetadata"/>
                <wadl:method href="#createImageMetadata"/>
                <wadl:method href="#updateImageMetadata"/>
            </wadl:resource>
            <wadl:resource
                href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#imageMetadataKey">
                <wadl:method href="#getImageMetadataItem"/>
                <wadl:method href="#setImageMetadataItem"/>
                <wadl:method href="#deleteImageMetadataItem"/>
            </wadl:resource>
        </wadl:resources>
  </section>
  <section xml:id="os-agents-v2.1">
      <title>Guest agents (os-agents)</title>
      <para>
         Creates, lists, updates, and deletes guest agent builds. Use guest
         agents to access files on the disk, configure networking, or run
         other applications or scripts in the guest while the agent runs. This
         hypervisor-specific extension is not currently enabled for KVM. Use
         of guest agents is possible only if the underlying service provider
         uses the Xen driver.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-agents-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-aggregates-v2.1">
      <title>Host aggregates (os-aggregates, action)</title>
      <para>
         Creates and manages host aggregates. An aggregate assigns metadata to
         groups of compute nodes. Aggregates are only visible to the cloud
         provider.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-aggregates-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-assisted-volume-snapshots-v2.1">
      <title>Assisted volume snapshots (os-assisted-volume-snapshots)</title>
      <para>
         Creates and deletes snapshots through an emulator/hypervisor.
         The qcow2 file format is supported.
      </para>
      <para>
         An internal snapshot that lacks storage such as NFS or GlusterFS
         can use an emulator/hypervisor to add the snapshot feature.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-assisted-volume-snapshots-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-availability-zone-v2.1">
      <title>Availability zones (os-availability-zone)</title>
      <para>
         Gets availability zone information.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-availability-zone-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-baremetal-nodes-v2.1">
      <title>Bare metal nodes (os-baremetal-nodes)</title>
      <para>Bare metal nodes.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-baremetal-nodes-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-block-device-mapping-v2.1">
      <title>Servers with block device mapping format
          (servers, os-block-device-mapping)</title>
      <para>Creates a server with a block device mapping.</para>
      <wadl:resources
          href="../wadls/compute-api/src/v2.1/wadl/os-block-device-mapping-v2.1.wadl"
          xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-cells-v2.1">
      <title>Cells (os-cells, capacities)</title>
      <para>
         Adds neighbor cells, lists neighbor cells, and gets the capabilities
         of the local cell.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-cells-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-certificates-v2.1">
      <title>Root certificates (os-certificates)</title>
      <para>Creates and shows details for a root certificate.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-certificates-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-cloudpipe-v2.1">
      <title>Cloudpipe (os-cloudpipe)</title>
      <para>Manages virtual VPNs for projects.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-cloudpipe-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-consoles-v2.1">
      <title>Server consoles (servers, os-consoles, os-console-auth-token)</title>
      <para>Manages server consoles.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-consoles-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-fixed-ips-v2.1">
       <title>Fixed IPs (os-fixed-ips)</title>
       <para>
           Shows data for a fixed IP, such as host name, CIDR, and
           address. Also, reserves and frees a fixed IP address.
       </para>
       <wadl:resources
           href="../wadls/compute-api/src/v2.1/wadl/os-fixed-ips-v2.1.wadl"
           xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-floating-ip-dns-v2.1">
      <title>Floating IP DNS records (os-floating-ip-dns)</title>
      <para>
         Manages DNS records associated with IP addresses allocated by the
         floating IPs extension. Requests are dispatched to a DNS driver
         selected at startup.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-floating-ip-dns-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-floating-ip-pools-v2.1">
      <title>Floating IP pools (os-floating-ip-pools)</title>
      <para>
         Manages groups of floating IPs.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-floating-ip-pools-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-floating-ips-v2.1">
      <title>Floating IPs (os-floating-ips)</title>
      <para>
         Assigns and allocates floating IP addresses to instances
         that run in an OpenStack cloud.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-floating-ips-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-floating-ips-bulk-v2.1">
      <title>Floating IPs bulk (os-floating-ips-bulk)</title>
      <para>
         Bulk-creates, deletes, and lists floating IPs. Default pool name is
         <code>nova</code>. To view available pools, use the <code>os-floating-ip-pools</code> extension.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-floating-ips-bulk-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="v2.1os-fping">
      <title>Ping instances (os-fping)</title>
      <para>
         Pings instances and reports which ones are alive.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-fping-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-hosts-v2.1">
      <title>Hosts (os-hosts)</title>
      <para>
         Manages physical hosts.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-hosts-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-hypervisors-v2.1">
      <title>Hypervisors (os-hypervisors)</title>
      <para>
        Lists all hypervisors, shows summary statistics for all hypervisors
        over all compute nodes, shows details for a hypervisor, and shows the
        uptime for a hypervisor.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-hypervisors-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-instance-usage-audit-log-v2.1">
      <title>Instance usage audit log (os-instance-usage-audit-log)</title>
      <para>
         Administrator only. Monitors task logs.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-instance-usage-audit-log-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-migrations-v2.1">
      <title>Migrations (os-migrations)</title>
      <para>
         Shows data on migrations.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-migrations-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-networks-v2.1">
      <title>Networks (os-networks)</title>
      <para>
         Creates, lists, shows information for, and deletes networks.
      </para>
      <para>
         Adds network to a project, disassociates a network from a project,
         and disassociates a project from a network.
      </para>
      <para>
         Associates host with and disassociates host from a network.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-networks-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-quota-class-sets-v2.1">
      <title>Quota class (os-quota-class-sets)</title>
      <para>
         Provides quota classes management support.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-quota-class-sets-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-quota-sets-v2.1">
      <title>Quota sets (os-quota-sets)</title>
      <para>
         Permits administrators, depending on policy settings, to view quotas
         for a project and view and update default quotas.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-quota-sets-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-security-groups-v2.1">
      <title>Security groups (os-security-groups)</title>
      <para>
         Lists, shows information for, creates, and deletes security groups.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-security-groups-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-security-group-default-rules-v2.1">
      <title>Rules for default security group
            (os-security-group-default-rules)</title>
      <para>
          Lists, shows information for, and creates default security
          group rules.
      </para>
      <wadl:resources
          href="../wadls/compute-api/src/v2.1/wadl/os-security-group-default-rules-v2.1.wadl"
          xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-security-group-rules-v2.1">
      <title>Rules for security group (os-security-group-rules)</title>
      <para>
         Creates and deletes security group rules.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-security-group-rules-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-server-external-events-v2.1">
        <title>Create external events (os-server-external-events)</title>
        <para>
          Creates one or more external events. Each event is dispatched to a
          server instance.
        </para>
        <wadl:resources
          href="../wadls/compute-api/src/v2.1/wadl/os-server-external-events-v2.1.wadl"
          xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-server-groups-v2.1">
     <title>Server groups (os-server-groups)</title>
     <para>
         Lists, shows information for, creates, and deletes server groups.
      </para>
      <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
         <wadl:resource
             href="../wadls/compute-api/src/v2.1/wadl/os-server-groups-v2.1.wadl#os-server-groups">
            <wadl:method href="#listServerGroups"/>
            <wadl:method href="#createServerGroup"/>
         </wadl:resource>
         <wadl:resource
             href="../wadls/compute-api/src/v2.1/wadl/os-server-groups-v2.1.wadl#ServerGroup_id">
            <wadl:method href="#showServerGroup"/>
            <wadl:method href="#deleteServerGroup"/>
         </wadl:resource>
      </wadl:resources>
   </section>
   <section xml:id="os-services-v2.1">
        <title>Manage services (os-services)</title>
        <para>
            Lists all or only disabled Compute services for all hosts in a
            tenant. Logs information for disabled services. Enables or
            disables scheduling for, forces down, unsets the forced-down state
            of, or deletes a service.
         </para>
         <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#os-services">
               <wadl:method href="#listServices"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#detail">
               <wadl:method href="#getDisableReasonDetail"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#enable">
               <wadl:method href="#enableScheduling"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#disable">
               <wadl:method href="#disableScheduling"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#disable-log-reason">
               <wadl:method href="#disableLogReason"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#force">
               <wadl:method href="#putForceDown"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#os-services">
               <wadl:method href="#deleteService"/>
            </wadl:resource>
         </wadl:resources>
    </section>
    <section xml:id="os-simple-tenant-usage-v2.1">
        <title>Usage reports (os-simple-tenant-usage)</title>
        <para>
            Reports usage statistics on compute and storage resources.
        </para>
        <wadl:resources
           href="../wadls/compute-api/src/v2.1/wadl/os-simple-tenant-usage-v2.1.wadl"
           xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
    </section>
    <section xml:id="os-tenant-networks-v2.1">
      <title>Project networks (os-tenant-networks)</title>
      <para>
         Creates, lists, shows information for, and deletes project networks.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-tenant-networks-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
    <section xml:id="os-volumes">
        <title>Volume extension (os-volumes, os-snapshots)</title>
        <para>
            Manages volumes and snapshots for use with the Compute API.
        </para>
        <wadl:resources
            href="../wadls/compute-api/src/v2.1/wadl/os-volumes-v2.1.wadl"
            xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
    </section>
</chapter>
<commit_msg>Rework introduction to Compute API<commit_after><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter [
   <!ENTITY % common_project  SYSTEM "../wadls/common_project.ent">
   %common_project;
   ]>
<chapter xmlns="http://docbook.org/ns/docbook"
   xmlns:xi="http://www.w3.org/2001/XInclude"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns:linkend="http://www.w3.org/1999/linkend"
   xmlns:xref="http://www.w3.org/1999/xref"
   xmlns:wadl="http://wadl.dev.java.net/2009/02"
   version="5.0-extension RackBook-2.0"
   xml:id="compute-v2.1"
   role="api-reference">
  <title>Compute API (CURRENT)</title>
  <para>
    This documentation supports the API v2.1 base version. If all extensions
    are enabled, the Compute API v1.1 and v2.0 requests and responses match
    the API v2.1 requests and responses.
  </para>
  <para>
    Each API version lists its required extensions for the full request and
    responses to be available. API v2.1 must enable all extensions all the
    time. It uses micro-version headers to expose any additional
    functionality.
  </para>
  <note>
    <para>
      Effective in the OpenStack Kilo release, XML support in requests and
      responses was removed for the Compute API.
    </para>
  </note>
  <para>
    For details about the Compute API, see the <link
    xlink:href="http://developer.openstack.org/api-guide/compute/">Compute
    API</link>.
  </para>
  <section xml:id="versions-v2.1">
    <title>API versions</title>
    <para>
       Lists information for all API versions.
    </para>
    <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
      <wadl:resource
          href="../wadls/compute-api/src/v2.1/wadl/versions-v2.1.wadl#versions">
        <wadl:method href="#listVersionsv2.1"/>
      </wadl:resource>
    </wadl:resources>
  </section>
  <section xml:id="os-servers-v2.1">
    <title>Servers (servers)</title>
      <para>Lists, creates, gets details for, updates, and deletes servers.</para>
      <para><emphasis role="bold">Passwords</emphasis></para>
      <para>
        When you create a server, you can specify a password through the
        optional <property>adminPass</property> attribute. The password must
        meet the complexity requirements set by your OpenStack Compute
        provider. The server might enter an <code>ERROR</code> state if the
        complexity requirements are not met. In this case, a client might
        issue a change password action to reset the server password.
      </para>
      <para>
        If you do not specify a password, the API generates and assigns a
        random password that it returns in the response object. This
        password is guaranteed to meet the security requirements set by the
        compute provider. For security reasons, the password is not returned
        in subsequent &GET; calls.
      </para>
      <para><emphasis role="bold">Server metadata</emphasis></para>
      <para>
        You can specify custom server metadata at server launch time. The
        maximum size for each metadata key-value pair is 255 bytes. The
        compute provider determines the maximum number of key-value pairs
        that can be supplied for each server. You can query this value
        through the <code>maxServerMeta</code> absolute limit.
      </para>
      <para><emphasis role="bold">Server networks</emphasis></para>
      <para>
        You can specify one or more networks to which the server connects at
        launch time. Users can also specify a specific port on the network
        or the fixed IP address to assign to the server interface.
      </para>
      <note>
        <para>
          You can use both IPv4 and IPv6 addresses as access addresses and
          you can assign both addresses simultaneously. You can update
          access addresses after you create a server.
        </para>
      </note>
      <para><emphasis role="bold">Server personality</emphasis></para>
      <para>
        To customize the personality of a server instance, you can
        inject data into its file system. For example, you might
        insert ssh keys, set configuration files, or store data
        that you want to retrieve from inside the instance. This
        customization method provides minimal launch-time
        personalization. If you require significant customization,
        create a custom image.
      </para>
      <para>
        Follow these guidelines when you inject files:
      </para>
      <itemizedlist>
        <listitem>
          <para>
            The maximum size of the file path data is 255 bytes.
          </para>
        </listitem>
        <listitem>
          <para>
            Encode the file contents as a Base64 string. The compute
            provider determines the maximum size of the file contents. This
            value can vary based on the image that is used to create the
            server.
          </para>
          <note>
            <para>
              The maximum limit refers to the number of bytes in the
              decoded data and not to the number of characters in
              the encoded data.
            </para>
          </note>
        </listitem>
        <listitem>
          <para>
            You can inject only text files. You cannot inject
            binary or ZIP files into a new build.
          </para>
        </listitem>
        <listitem>
          <para>
            The <code>maxPersonality</code> absolute limit defines
            the maximum number of file path and content pairs that
            you can supply. The compute provider determines this
            value.
          </para>
        </listitem>
        <listitem>
          <para>
            The <code>maxPersonalitySize</code> absolute limit is a
            byte limit that is guaranteed to apply to all images in
            the deployment. Providers can set additional per-image
            personality limits.
          </para>
        </listitem>
      </itemizedlist>
      <para>
        The file injection might not occur until after the server
        is built and booted.
      </para>
      <para>
        During file injection, any existing files that match files in the
        request are renamed to include the BAK extension appended with a time
        stamp. For example, if the <code>/etc/passwd</code> file exists, it is
        backed up as <code>/etc/passwd.bak.1246036261.5785</code>.
      </para>
      <para>
        After file injection, only system administrators can
        access personality files. For example, on Linux, all files
        have root as the owner and the root group as the group
        owner, and allow only user and group read access (chmod
        440).
      </para>
      <para><emphasis role="bold">Server access addresses</emphasis></para>
      <para>
        In a hybrid environment, the underlying implementation might not
        control the IP address of a server. Instead, the access IP address
        might be part of the dedicated hardware; for example, a router/NAT
        device. In this case, the addresses provided by the implementation
        cannot actually be used to access the server (from outside the local
        LAN). Here, a separate <firstterm>access address</firstterm> might
        be assigned at creation time to provide access to the server. This
        address might not be directly bound to a network interface on the
        server and might not necessarily appear when you query the server
        addresses. Nonetheless, clients that must access the server directly
        are encouraged to do so through an access address.
      </para>
      <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02"
        href="../wadls/compute-api/src/v2.1/wadl/os-compute-2.1.wadl"/>
  </section>
  <section xml:id="os-multiple-create-v2.1">
      <title>Servers multiple create (servers)</title>
      <para>
         Creates one or more servers.
      </para>
      <para>
          Optionally, you can set <code>"return_reservation_id": "True"</code>
          in the request body to request that a reservation ID be returned
          instead of the newly created instance information. With this
          parameter, the response shows only the reservation ID.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-multiple-create-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-server-actions-v2.1">
    <title>Servers actions (servers, action)</title>
    <para>
       Performs actions on a server. Specify the action in the request body.
    </para>
    <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-multinic-v2.1.wadl#action">
        <wadl:method href="#addFixedIp"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#attach"/>
        <wadl:method href="#confirmResize"/>
        <wadl:method href="#createImage"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-evacuate-v2.1.wadl#action">
        <wadl:method href="#evacuate"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-deferred-delete-v2.1.wadl#action">
        <wadl:method href="#forceDelete"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-console-output-v2.1.wadl#action">
        <wadl:method href="#getConsoleOutput"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-remote-consoles-v2.1.wadl#action">
        <wadl:method href="#getRDPConsole"/>
        <wadl:method href="#getSerialConsole"/>
        <wadl:method href="#getSPICEConsole"/>
        <wadl:method href="#getVNCConsole"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#reboot"/>
        <wadl:method href="#rebuild"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-multinic-v2.1.wadl#action">
        <wadl:method href="#removeFixedIp"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#rescue"/>
        <wadl:method href="#resize"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-deferred-delete-v2.1.wadl#action">
        <wadl:method href="#restore"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#revertResize"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-shelve-v2.1.wadl#action">
        <wadl:method href="#shelve"/>
        <wadl:method href="#shelveOffload"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#start"/>
        <wadl:method href="#stop"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-server-actions-v2.1.wadl#action">
        <wadl:method href="#unrescue"/>
      </wadl:resource>
      <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-shelve-v2.1.wadl#action">
        <wadl:method href="#unshelve"/>
      </wadl:resource>
    </wadl:resources>
  </section>
  <section xml:id="os-admin-actions-v2.1">
    <title>Servers admin actions (servers, action)</title>
    <para>
       Administrators only. Performs actions on a server. Specify the action
       in the request body.
    </para>
    <wadl:resources
       href="../wadls/compute-api/src/v2.1/wadl/os-admin-actions-v2.1.wadl"
       xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="diagnostics-v2.1">
      <title>Servers diagnostics (servers, diagnostics)</title>
      <para>
         Gets the usage data for a server.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/diagnostics-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="server-ips-v2.1">
      <title>Servers IPs (servers, ips)</title>
      <para>
         Lists the IP addresses assigned to an instance or shows details for
         an IP address.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/server-ips-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="server-metadata-v2.1">
      <title>Server metadata (servers, metadata)</title>
      <para>
         Lists metadata, creates or replaces one or more metadata
         items, and updates one or more metadata items for a server.
      </para>
      <para>
         Shows details for, creates or replaces, and updates a metadata item,
         by key, for a server.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/server-metadata-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-instance-actions-v2.1">
    <title>Servers action (servers, os-instance-actions)</title>
    <para>
      Permits all users to list available server actions for a server. Permits
      administrators to get details for a server action for a server.
    </para>
    <wadl:resources
       href="../wadls/compute-api/src/v2.1/wadl/os-instance-actions-v2.1.wadl"
       xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-interface-v2.1">
      <title>Port interfaces (servers, os-interface)</title>
      <para>
         Creates a port interface and uses it to attach a port to a server and
         detaches a port interface from a server. Also, lists all port
         interfaces and shows details for a port interface.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-interface-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
  <section xml:id="os-server-password-v2.1">
      <title>Servers password (servers, os-server-password)</title>
      <para>
         Gets the encrypted administrative password set through the metadata
         service.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-server-password-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-virtual-interfaces-v2.1">
      <title>Servers virtual interfaces (servers, os-virtual-interfaces)</title>
      <para>
         Lists virtual interfaces for a server instance.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-virtual-interfaces-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-flavors-v2.1">
      <title>Flavors with extended attributes (flavors)</title>
      <para>
         Shows information about flavors.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-flavors-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-flavor-access-v2.1">
      <title>Flavors access (flavors, os-flavor-access, action)</title>
      <para>
         Provides flavor access support.
      </para>
      <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
         <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-flavor-access-v2.1.wadl#os-flavor-access">
              <wadl:method href="#create-flavor-accesslist"/>
              <wadl:method href="#list-flavor-accesslist"/>
         </wadl:resource>
         <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-flavor-access-v2.1.wadl#flavor_id">
               <wadl:method href="#show-flavor-accesslist"/>
         </wadl:resource>
         <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-flavor-access-v2.1.wadl#action">
               <wadl:method href="#add-flavoraccess-to-tenant"/>
               <wadl:method href="#remove-flavoraccess-from-tenant"/>
         </wadl:resource>
         <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-flavor-access-v2.1.wadl#detail">
               <wadl:method href="#list-flavor-accesslist-detail"/>
         </wadl:resource>
      </wadl:resources>
  </section>
  <section xml:id="flavor-extra-specs-v2.1">
      <title>Flavors extra-specs (flavors, os-flavor-extra-specs)</title>
      <para>
         Lists, creates, deletes, and updates the extra-specs or keys for a
         flavor.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-flavor-extra-specs-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-flavor-manage-v2.1">
      <title>Flavors manage (flavors, os-flavor-manage)</title>
      <para>
         Creates and deletes flavors.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-flavor-manage-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="keypairs-v2.1">
      <title>Keypairs (keypairs)</title>
      <para>Generates, imports, and deletes SSH keys.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/keypairs-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="limits-v2.1">
      <title>Limits (limits)</title>
      <para>
         Shows all global and rate limit information.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/limits-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="extensions-v2.1">
      <title>Extensions (extensions)</title>
      <para>
         Available extensions.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-extensions-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="compute_images-v2.1">
        <title>Images</title>
        <para>
            Lists, gets details for, and deletes images. Also sets, lists,
            gets details for, and deletes image metadata.
         </para>
         <para>
            An image is a collection of files that you use to create and
            rebuild a server. By default, operators provide pre-built
            operating system images. You can also create custom images. See
            Compute server actions.
         </para>
         <para>
            If you set the image size policy in the <code>policy.json</code>
            file, the <code>OS-EXT-IMG-SIZE:size</code> extended attribute is
            visible.
        </para>
        <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#Images">
                <wadl:method href="#listImages"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#image_detail">
                <wadl:method href="#listDetailImages"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#image_id">
                <wadl:method href="#getImage"/>
                <wadl:method href="#deleteImage"/>
            </wadl:resource>
        </wadl:resources>
  </section>
  <section xml:id="compute_image_metadata-v2.1">
        <title>Image metadata</title>
        <para>Shows details for, sets, updates, and deletes image metadata or metadata items.</para>
        <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#image_metadata">
                <wadl:method href="#showImageMetadata"/>
                <wadl:method href="#createImageMetadata"/>
                <wadl:method href="#updateImageMetadata"/>
            </wadl:resource>
            <wadl:resource
                href="../wadls/compute-api/src/v2.1/wadl/images-v2.1.wadl#imageMetadataKey">
                <wadl:method href="#getImageMetadataItem"/>
                <wadl:method href="#setImageMetadataItem"/>
                <wadl:method href="#deleteImageMetadataItem"/>
            </wadl:resource>
        </wadl:resources>
  </section>
  <section xml:id="os-agents-v2.1">
      <title>Guest agents (os-agents)</title>
      <para>
         Creates, lists, updates, and deletes guest agent builds. Use guest
         agents to access files on the disk, configure networking, or run
         other applications or scripts in the guest while the agent runs. This
         hypervisor-specific extension is not currently enabled for KVM. Use
         of guest agents is possible only if the underlying service provider
         uses the Xen driver.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-agents-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-aggregates-v2.1">
      <title>Host aggregates (os-aggregates, action)</title>
      <para>
         Creates and manages host aggregates. An aggregate assigns metadata to
         groups of compute nodes. Aggregates are only visible to the cloud
         provider.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-aggregates-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-assisted-volume-snapshots-v2.1">
      <title>Assisted volume snapshots (os-assisted-volume-snapshots)</title>
      <para>
         Creates and deletes snapshots through an emulator/hypervisor.
         The qcow2 file format is supported.
      </para>
      <para>
         An internal snapshot that lacks storage such as NFS or GlusterFS
         can use an emulator/hypervisor to add the snapshot feature.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-assisted-volume-snapshots-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
  </section>
  <section xml:id="os-availability-zone-v2.1">
      <title>Availability zones (os-availability-zone)</title>
      <para>
         Gets availability zone information.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-availability-zone-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-baremetal-nodes-v2.1">
      <title>Bare metal nodes (os-baremetal-nodes)</title>
      <para>Bare metal nodes.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-baremetal-nodes-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-block-device-mapping-v2.1">
      <title>Servers with block device mapping format
          (servers, os-block-device-mapping)</title>
      <para>Creates a server with a block device mapping.</para>
      <wadl:resources
          href="../wadls/compute-api/src/v2.1/wadl/os-block-device-mapping-v2.1.wadl"
          xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-cells-v2.1">
      <title>Cells (os-cells, capacities)</title>
      <para>
         Adds neighbor cells, lists neighbor cells, and gets the capabilities
         of the local cell.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-cells-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-certificates-v2.1">
      <title>Root certificates (os-certificates)</title>
      <para>Creates and shows details for a root certificate.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-certificates-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-cloudpipe-v2.1">
      <title>Cloudpipe (os-cloudpipe)</title>
      <para>Manages virtual VPNs for projects.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-cloudpipe-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-consoles-v2.1">
      <title>Server consoles (servers, os-consoles, os-console-auth-token)</title>
      <para>Manages server consoles.</para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-consoles-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-fixed-ips-v2.1">
       <title>Fixed IPs (os-fixed-ips)</title>
       <para>
           Shows data for a fixed IP, such as host name, CIDR, and
           address. Also, reserves and frees a fixed IP address.
       </para>
       <wadl:resources
           href="../wadls/compute-api/src/v2.1/wadl/os-fixed-ips-v2.1.wadl"
           xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-floating-ip-dns-v2.1">
      <title>Floating IP DNS records (os-floating-ip-dns)</title>
      <para>
         Manages DNS records associated with IP addresses allocated by the
         floating IPs extension. Requests are dispatched to a DNS driver
         selected at startup.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-floating-ip-dns-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-floating-ip-pools-v2.1">
      <title>Floating IP pools (os-floating-ip-pools)</title>
      <para>
         Manages groups of floating IPs.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-floating-ip-pools-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-floating-ips-v2.1">
      <title>Floating IPs (os-floating-ips)</title>
      <para>
         Assigns and allocates floating IP addresses to instances
         that run in an OpenStack cloud.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-floating-ips-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-floating-ips-bulk-v2.1">
      <title>Floating IPs bulk (os-floating-ips-bulk)</title>
      <para>
         Bulk-creates, deletes, and lists floating IPs. Default pool name is
         <code>nova</code>. To view available pools, use the <code>os-floating-ip-pools</code> extension.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-floating-ips-bulk-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="v2.1os-fping">
      <title>Ping instances (os-fping)</title>
      <para>
         Pings instances and reports which ones are alive.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-fping-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-hosts-v2.1">
      <title>Hosts (os-hosts)</title>
      <para>
         Manages physical hosts.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-hosts-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-hypervisors-v2.1">
      <title>Hypervisors (os-hypervisors)</title>
      <para>
        Lists all hypervisors, shows summary statistics for all hypervisors
        over all compute nodes, shows details for a hypervisor, and shows the
        uptime for a hypervisor.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-hypervisors-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-instance-usage-audit-log-v2.1">
      <title>Instance usage audit log (os-instance-usage-audit-log)</title>
      <para>
         Administrator only. Monitors task logs.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-instance-usage-audit-log-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-migrations-v2.1">
      <title>Migrations (os-migrations)</title>
      <para>
         Shows data on migrations.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-migrations-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-networks-v2.1">
      <title>Networks (os-networks)</title>
      <para>
         Creates, lists, shows information for, and deletes networks.
      </para>
      <para>
         Adds network to a project, disassociates a network from a project,
         and disassociates a project from a network.
      </para>
      <para>
         Associates host with and disassociates host from a network.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-networks-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-quota-class-sets-v2.1">
      <title>Quota class (os-quota-class-sets)</title>
      <para>
         Provides quota classes management support.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-quota-class-sets-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-quota-sets-v2.1">
      <title>Quota sets (os-quota-sets)</title>
      <para>
         Permits administrators, depending on policy settings, to view quotas
         for a project and view and update default quotas.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-quota-sets-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-security-groups-v2.1">
      <title>Security groups (os-security-groups)</title>
      <para>
         Lists, shows information for, creates, and deletes security groups.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-security-groups-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-security-group-default-rules-v2.1">
      <title>Rules for default security group
            (os-security-group-default-rules)</title>
      <para>
          Lists, shows information for, and creates default security
          group rules.
      </para>
      <wadl:resources
          href="../wadls/compute-api/src/v2.1/wadl/os-security-group-default-rules-v2.1.wadl"
          xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-security-group-rules-v2.1">
      <title>Rules for security group (os-security-group-rules)</title>
      <para>
         Creates and deletes security group rules.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-security-group-rules-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-server-external-events-v2.1">
        <title>Create external events (os-server-external-events)</title>
        <para>
          Creates one or more external events. Each event is dispatched to a
          server instance.
        </para>
        <wadl:resources
          href="../wadls/compute-api/src/v2.1/wadl/os-server-external-events-v2.1.wadl"
          xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
   <section xml:id="os-server-groups-v2.1">
     <title>Server groups (os-server-groups)</title>
     <para>
         Lists, shows information for, creates, and deletes server groups.
      </para>
      <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
         <wadl:resource
             href="../wadls/compute-api/src/v2.1/wadl/os-server-groups-v2.1.wadl#os-server-groups">
            <wadl:method href="#listServerGroups"/>
            <wadl:method href="#createServerGroup"/>
         </wadl:resource>
         <wadl:resource
             href="../wadls/compute-api/src/v2.1/wadl/os-server-groups-v2.1.wadl#ServerGroup_id">
            <wadl:method href="#showServerGroup"/>
            <wadl:method href="#deleteServerGroup"/>
         </wadl:resource>
      </wadl:resources>
   </section>
   <section xml:id="os-services-v2.1">
        <title>Manage services (os-services)</title>
        <para>
            Lists all or only disabled Compute services for all hosts in a
            tenant. Logs information for disabled services. Enables or
            disables scheduling for, forces down, unsets the forced-down state
            of, or deletes a service.
         </para>
         <wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#os-services">
               <wadl:method href="#listServices"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#detail">
               <wadl:method href="#getDisableReasonDetail"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#enable">
               <wadl:method href="#enableScheduling"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#disable">
               <wadl:method href="#disableScheduling"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#disable-log-reason">
               <wadl:method href="#disableLogReason"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#force">
               <wadl:method href="#putForceDown"/>
            </wadl:resource>
            <wadl:resource href="../wadls/compute-api/src/v2.1/wadl/os-services-v2.1.wadl#os-services">
               <wadl:method href="#deleteService"/>
            </wadl:resource>
         </wadl:resources>
    </section>
    <section xml:id="os-simple-tenant-usage-v2.1">
        <title>Usage reports (os-simple-tenant-usage)</title>
        <para>
            Reports usage statistics on compute and storage resources.
        </para>
        <wadl:resources
           href="../wadls/compute-api/src/v2.1/wadl/os-simple-tenant-usage-v2.1.wadl"
           xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
    </section>
    <section xml:id="os-tenant-networks-v2.1">
      <title>Project networks (os-tenant-networks)</title>
      <para>
         Creates, lists, shows information for, and deletes project networks.
      </para>
      <wadl:resources
         href="../wadls/compute-api/src/v2.1/wadl/os-tenant-networks-v2.1.wadl"
         xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
   </section>
    <section xml:id="os-volumes">
        <title>Volume extension (os-volumes, os-snapshots)</title>
        <para>
            Manages volumes and snapshots for use with the Compute API.
        </para>
        <wadl:resources
            href="../wadls/compute-api/src/v2.1/wadl/os-volumes-v2.1.wadl"
            xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
    </section>
</chapter>

{'fraction_non_alphanumeric': 0.14433988375311377, 'fraction_numerical': 0.022944921118184334, 'mean_word_length': 2.3381530928073175, 'pattern_counts': {'":': 2, '<': 1294, '<?xml version=': 2, '>': 1294, 'https://': 0, 'lorem ipsum': 0, 'www.': 8, 'xml': 228}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7304950', 'n_tokens_mistral': 25204, 'n_tokens_neox': 24488, 'n_words': 4875}