<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>
<!-- Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License. You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<section id="release-ip-for-vpc">
  <title>Releasing an IP Address Alloted to a VPC</title>
  <para>The IP address is a limited resource. If you no longer need a particular IP, you can
    disassociate it from its VPC and return it to the pool of available addresses. An IP address can
    be released from its tier, only when all the networking ( port forwarding, load balancing, or
    StaticNAT ) rules are removed for this IP address. The released IP address will still belongs to
    the same VPC.</para>
  <orderedlist>
    <listitem>
      <para>Log in to the &PRODUCT; UI as an administrator or end user.</para>
    </listitem>
    <listitem>
      <para>In the left navigation, choose Network.</para>
    </listitem>
    <listitem>
      <para>In the Select view, select VPC.</para>
      <para>All the VPCs that you have created for the account is listed in the page.</para>
    </listitem>
    <listitem>
      <para>Click the Configure button of the VPC whose IP you want to release.</para>
      <para>The VPC page is displayed where all the tiers you created are listed in a
        diagram.</para>
      <para>The following options are displayed.</para>
      <itemizedlist>
        <listitem>
          <para>Internal LB</para>
        </listitem>
        <listitem>
          <para>Public LB IP</para>
        </listitem>
        <listitem>
          <para>Static NAT</para>
        </listitem>
        <listitem>
          <para>Virtual Machines</para>
        </listitem>
        <listitem>
          <para>CIDR</para>
        </listitem>
      </itemizedlist>
      <para>The following router information is displayed:</para>
      <itemizedlist>
        <listitem>
          <para>Private Gateways</para>
        </listitem>
        <listitem>
          <para>Public IP Addresses</para>
        </listitem>
        <listitem>
          <para>Site-to-Site VPNs</para>
        </listitem>
        <listitem>
          <para>Network ACL Lists</para>
        </listitem>
      </itemizedlist>
    </listitem>
    <listitem>
      <para>Select Public IP Addresses.</para>
      <para>The IP Addresses page is displayed.</para>
    </listitem>
    <listitem>
      <para>Click the IP you want to release.</para>
    </listitem>
    <listitem>
      <para>In the Details tab, click the Release IP button <inlinemediaobject>
          <imageobject>
            <imagedata fileref="./images/release-ip-icon.png"/>
          </imageobject>
          <textobject>
            <phrase>release-ip-icon.png: button to release an IP.</phrase>
          </textobject>
        </inlinemediaobject></para>
    </listitem>
  </orderedlist>
</section>
