#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.
msgid ""
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2013-02-02T20:11:56\n"
"PO-Revision-Date: 2013-02-02T20:11:56\n"
"Last-Translator: Automatically generated\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
"Content-Type: application/x-publican; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. Tag: title
#, no-c-format
msgid "Adding a Virtual Private Cloud"
msgstr ""

#. Tag: para
#, no-c-format
msgid "When creating the VPC, you simply provide the zone and a set of IP addresses for the VPC network address space. You specify this set of addresses in the form of a Classless Inter-Domain Routing (CIDR) block."
msgstr ""

#. Tag: para
#, no-c-format
msgid "Log in to the &PRODUCT; UI as an administrator or end user."
msgstr ""

#. Tag: para
#, no-c-format
msgid "In the left navigation, choose Network."
msgstr ""

#. Tag: para
#, no-c-format
msgid "In the Select view, select VPC."
msgstr ""

#. Tag: para
#, no-c-format
msgid "Click Add VPC. The Add VPC page is displayed as follows:"
msgstr ""

#. Tag: para
#, no-c-format
msgid "Provide the following information:"
msgstr ""

#. Tag: para
#, no-c-format
msgid "<emphasis role=\"bold\">Name</emphasis>: A short name for the VPC that you are creating."
msgstr ""

#. Tag: para
#, no-c-format
msgid "<emphasis role=\"bold\">Description</emphasis>: A brief description of the VPC."
msgstr ""

#. Tag: para
#, no-c-format
msgid "<emphasis role=\"bold\">Zone</emphasis>: Choose the zone where you want the VPC to be available."
msgstr ""

#. Tag: para
#, no-c-format
msgid "<emphasis role=\"bold\">Super CIDR for Guest Networks</emphasis>: Defines the CIDR range for all the tiers (guest networks) within a VPC. When you create a tier, ensure that its CIDR is within the Super CIDR value you enter. The CIDR must be RFC1918 compliant."
msgstr ""

#. Tag: para
#, no-c-format
msgid "<emphasis role=\"bold\">DNS domain for Guest Networks</emphasis>: If you want to assign a special domain name, specify the DNS suffix. This parameter is applied to all the tiers within the VPC. That implies, all the tiers you create in the VPC belong to the same DNS domain. If the parameter is not specified, a DNS domain name is generated automatically."
msgstr ""

