Merge branch 'master' of https://github.com/tjprescott/azure-cli into FinishOutBlobCommandGroup

# Conflicts:
#	azure-cli.pyproj
This commit is contained in:
Travis Prescott 2016-04-20 16:18:19 -07:00
Родитель 912a11582d 5cdc28cf89
Коммит 7246cd676a
30 изменённых файлов: 1607 добавлений и 42 удалений

Просмотреть файл

@ -9,6 +9,53 @@ This package has [not] been tested [much] with Python 2.7, 3.4 and 3.5.
Installation
============
cURL Installation
-----------------
To install via cURL on Linux, Unix and OS X, type:
.. code:: shell
curl http://azure-cli-nightly.cloudapp.net/install | bash
Note: This will install the latest nightly builds.
If you get errors on install with cffi or cryptography such as the examples below,
install libssl-dev, libffi-dev and python3-dev by typing:
.. code:: shell
sudo apt-get update
sudo apt-get install -y build-essential libssl-dev libffi-dev python3-dev
**Example Errors**
.. code:: shell
Downloading cffi-1.5.2.tar.gz (388kB)
100% |################################| 389kB 3.9MB/s
Complete output from command python setup.py egg_info:
No working compiler found, or bogus compiler options
passed to the compiler from Python's distutils module.
See the error messages above.
(If they are about -mno-fused-madd and you are on OS/X 10.8,
see http://stackoverflow.com/questions/22313407/ .)
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-77i2fido/cffi/
.. code:: shell
#include <openssl/e_os2.h>
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Failed building wheel for cryptography
Download Package
----------------

Просмотреть файл

@ -37,6 +37,27 @@
<Compile Include="azure\cli\extensions\__init__.py" />
<Compile Include="azure\cli\main.py" />
<Compile Include="azure\cli\tests\test_add_resourcegroup_transform.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\credentials.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\exceptions.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\basic_dependency.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\dependency.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\deployment_extended.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\deployment_properties_extended.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\deployment_vnet.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\parameters_link.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\provider.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\provider_resource_type.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\resource_management_client_enums.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\template_link.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\__init__.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\operations\vnet_operations.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\operations\__init__.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\resource_management_client.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\version.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\__init__.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\__init__.py">
<SubType>Code</SubType>
</Compile>
<Compile Include="azure\cli\utils\command_test_script.py">
<SubType>Code</SubType>
</Compile>
@ -138,6 +159,10 @@
<Folder Include="command_modules\azure-cli-network\azure\cli\" />
<Folder Include="command_modules\azure-cli-network\azure\cli\command_modules\" />
<Folder Include="command_modules\azure-cli-network\azure\cli\command_modules\network\" />
<Folder Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\" />
<Folder Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\" />
<Folder Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\models\" />
<Folder Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\lib\operations\" />
<Folder Include="command_modules\azure-cli-network\azure\cli\command_modules\network\tests\" />
<Folder Include="command_modules\azure-cli-network\azure\cli\command_modules\network\tests\recordings\" />
<Folder Include="command_modules\azure-cli-profile\" />
@ -187,6 +212,8 @@
</ItemGroup>
<ItemGroup>
<Content Include="command_modules\azure-cli-component\requirements.txt" />
<Content Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\azuredeploy.json" />
<Content Include="command_modules\azure-cli-network\azure\cli\command_modules\network\mgmt\swagger_create_vnet.json" />
<Content Include="command_modules\azure-cli-network\requirements.txt" />
<Content Include="command_modules\azure-cli-profile\requirements.txt" />
<Content Include="command_modules\azure-cli-resource\requirements.txt" />

Просмотреть файл

@ -0,0 +1,23 @@
import json
import sys
from azure.cli.application import Configuration
class Exporter(json.JSONEncoder):
def default(self, o):#pylint: disable=method-hidden
try:
return super(Exporter, self).default(o)
except TypeError:
return str(o)
cmd_set_names = None
if len(sys.argv) > 1:
cmd_set_names = sys.argv[1].split(',')
config = Configuration([])
cmd_table = config.get_command_table()
cmd_names = [x['name'] for x in cmd_table.values()
if cmd_set_names is None or (x['name'].split()[0]) in cmd_set_names]
print('\n'.join(cmd_names))

19
scripts/install Normal file
Просмотреть файл

@ -0,0 +1,19 @@
#!/usr/bin/env bash
#
# Bash script to install the Azure CLI
#
INSTALL_SCRIPT_URL=http://azure-cli-nightly.cloudapp.net/install.py
_TTY=/dev/tty
install_script=$(mktemp -t azure_cli_install_tmp_XXXX) || exit
echo "Downloading Azure CLI install script from $INSTALL_SCRIPT_URL to $install_script."
curl -# $INSTALL_SCRIPT_URL > $install_script || exit
chmod 775 $install_script
echo "Running install script."
if [[ -z "$AZURE_CLI_DISABLE_PROMPTS" && -t 1 ]]; then
$install_script < $_TTY
else
export AZURE_CLI_DISABLE_PROMPTS=1
$install_script
fi

164
scripts/install.py Normal file
Просмотреть файл

@ -0,0 +1,164 @@
#!/usr/bin/env python
#
# This script will install the CLI into a directory and create an executable
# at a specified file path that is the entry point into the CLI.
#
# By default, the latest versions of all CLI command packages will be installed.
#
# - Optional Environment Variables Available
# AZURE_CLI_DISABLE_PROMPTS - Disable prompts during installation and use the defaults
# AZURE_CLI_ENVIRONMENT_NAME - The name of the profile/environment you want to create
# AZURE_CLI_PACKAGE_VERSION - The version of the CLI and its command packages to install
# AZURE_CLI_PRIVATE_PYPI_URL - The URL to a PyPI server to include as an index for pip
# AZURE_CLI_PRIVATE_PYPI_HOST - The IP address/hostname of the PyPI server
#
from __future__ import print_function
import os
import sys
import platform
import stat
import tarfile
import tempfile
from subprocess import check_call
try:
# Attempt to load python 3 module
from urllib.request import urlretrieve
except ImportError:
# Import python 2 version
from urllib import urlretrieve
try:
# Rename raw_input to input to support Python 2
input = raw_input
except NameError:
# Python 3 doesn't have raw_input
pass
AZ_DISPATCH_TEMPLATE = """#!/usr/bin/env python
import os
import sys
from subprocess import check_call, CalledProcessError
ENVIRONMENT_NAME = os.environ.get('AZURE_CLI_ENVIRONMENT_NAME') or '{environment_name}'
PATH_TO_PYTHON = os.path.join('{install_location}', '{envs_dir_name}', ENVIRONMENT_NAME, '{bin_dir_name}', 'python')
try:
check_call([PATH_TO_PYTHON, '-m', 'azure.cli'] + sys.argv[1:])
except CalledProcessError as err:
sys.exit(err.returncode)
"""
DEFAULT_INSTALL_LOCATION = os.path.join(os.path.sep, 'usr', 'local', 'az')
DEFAULT_EXEC_FILENAME = os.path.join(os.path.sep, 'usr', 'local', 'bin', 'az')
VIRTUALENV_VERSION = '15.0.0'
BIN_DIR_NAME = 'Scripts' if platform.system() == 'Windows' else 'bin'
ENVS_DIR_NAME = 'envs'
DEFAULT_ENVIRONMENT_NAME = 'default'
DISABLE_PROMPTS = os.environ.get('AZURE_CLI_DISABLE_PROMPTS')
PACKAGE_VERSION = os.environ.get('AZURE_CLI_PACKAGE_VERSION')
PRIVATE_PYPI_URL = os.environ.get('AZURE_CLI_PRIVATE_PYPI_URL')
PRIVATE_PYPI_HOST = os.environ.get('AZURE_CLI_PRIVATE_PYPI_HOST')
def exec_command(command, cwd=None, env=None):
print('Executing: '+command)
command_list = command if isinstance(command, list) else command.split()
check_call(command_list, cwd=cwd, env=env)
def create_tmp_dir():
return tempfile.mkdtemp()
def create_dir(directory):
if not os.path.isdir(directory):
os.makedirs(directory)
def create_virtualenv(tmp_dir, version, install_dir):
file_name = 'virtualenv-'+version+'.tar.gz'
download_location = os.path.join(tmp_dir, file_name)
downloaded_file, _ = urlretrieve('https://pypi.python.org/packages/source/v/virtualenv/'+file_name,
download_location)
package_tar = tarfile.open(downloaded_file)
package_tar.extractall(path=tmp_dir)
package_tar.close()
virtualenv_dir_name = 'virtualenv-'+version
working_dir = os.path.join(tmp_dir, virtualenv_dir_name)
exec_command('{0} virtualenv.py --python {0} {1}'.format(sys.executable, install_dir), cwd=working_dir)
def get_pip_install_command(module_name, path_to_pip):
version = '==' + PACKAGE_VERSION if PACKAGE_VERSION else ''
param_extra_index_url = '--extra-index-url '+PRIVATE_PYPI_URL if PRIVATE_PYPI_URL else ''
param_trusted_host = '--trusted-host '+PRIVATE_PYPI_HOST if PRIVATE_PYPI_HOST else ''
return '{pip} install {module_name}{version} {param_extra_index_url} {param_trusted_host}'.format(
pip=path_to_pip,
module_name=module_name,
version=version,
param_extra_index_url=param_extra_index_url,
param_trusted_host=param_trusted_host,
)
def install_cli(install_dir):
path_to_pip = os.path.join(install_dir, BIN_DIR_NAME, 'pip')
exec_command(get_pip_install_command('azure-cli', path_to_pip),
env=dict(os.environ, AZURE_CLI_DISABLE_POST_INSTALL='1'))
modules_to_install = ['azure-cli-component', 'azure-cli-profile', 'azure-cli-storage',
'azure-cli-vm', 'azure-cli-network', 'azure-cli-resource',
'azure-cli-taskhelp']
for module_name in modules_to_install:
exec_command(get_pip_install_command(module_name, path_to_pip))
def create_executable(exec_filename, install_location, environment_name):
exec_dir = os.path.dirname(exec_filename)
create_dir(exec_dir)
with open(exec_filename, 'w') as exec_file:
exec_file.write(AZ_DISPATCH_TEMPLATE.format(
install_location=install_location,
environment_name=environment_name,
envs_dir_name=ENVS_DIR_NAME,
bin_dir_name=BIN_DIR_NAME))
cur_stat = os.stat(exec_filename)
os.chmod(exec_filename, cur_stat.st_mode | stat.S_IEXEC)
def prompt_input(message):
return None if DISABLE_PROMPTS else input(message)
def verify_executable_overwrite(exec_filename):
if os.path.isfile(exec_filename):
ans = prompt_input("'{}' exists! Overwrite? [y/n]: ".format(exec_filename))
if ans and ans.lower() != 'y':
return False
return True
def get_install_location():
prompt_message = 'Where would you like to install? (default {}): '.format(DEFAULT_INSTALL_LOCATION)
install_location = prompt_input(prompt_message) or DEFAULT_INSTALL_LOCATION
install_location = os.path.expanduser(install_location)
print("We will install at '{}'.".format(install_location))
return install_location
def get_exec_filename():
prompt_message = 'Where would you like to place the executable? (default {}): '.format(DEFAULT_EXEC_FILENAME)
exec_filename = prompt_input(prompt_message) or DEFAULT_EXEC_FILENAME
exec_filename = os.path.expanduser(exec_filename)
exec_filename = os.path.realpath(exec_filename)
print("The executable will be '{}'.".format(exec_filename))
return exec_filename
def get_environment_name():
return os.environ.get('AZURE_CLI_ENVIRONMENT_NAME') or DEFAULT_ENVIRONMENT_NAME
def main():
tmp_dir = create_tmp_dir()
install_location = get_install_location()
exec_filename = get_exec_filename()
if not verify_executable_overwrite(exec_filename):
print("Installation cancelled.")
sys.exit(1)
environment_name = get_environment_name()
env_dir = os.path.join(install_location, ENVS_DIR_NAME, environment_name)
create_dir(env_dir)
create_virtualenv(tmp_dir, VIRTUALENV_VERSION, env_dir)
install_cli(env_dir)
create_executable(exec_filename, install_location, environment_name)
print("Installation successful.")
print("Run the CLI with {} --help".format(exec_filename))
if __name__ == '__main__':
main()

Просмотреть файл

@ -1,6 +1,7 @@
from __future__ import print_function
import sys
import time
import random
from importlib import import_module
from collections import defaultdict, OrderedDict
from pip import get_installed_distributions
@ -13,7 +14,7 @@ INSTALLED_COMMAND_MODULES = [dist.key.replace('azure-cli-', '')
COMMON_PARAMETERS = {
'resource_group_name': {
'name': '--resourcegroup -g',
'metavar': 'RESOURCE GROUP',
'metavar': 'RESOURCEGROUP',
'help': 'Name of resource group',
'required': True
},
@ -22,6 +23,13 @@ COMMON_PARAMETERS = {
'metavar': 'LOCATION',
'help': 'Location',
'required': True
},
'deployment_name': {
'name': '--deployment-name',
'metavar': 'DEPLOYMENTNAME',
'help': 'Name of the resource deployment',
'default': 'azurecli' + str(time.time()) + str(random.randint(0, 10000000)),
'required': False
}
}

Просмотреть файл

@ -5,7 +5,8 @@ from msrest.exceptions import ClientException
from azure.cli.parser import IncorrectUsageError
from ..commands import COMMON_PARAMETERS
EXCLUDED_PARAMS = frozenset(['self', 'raw', 'custom_headers', 'operation_config'])
EXCLUDED_PARAMS = frozenset(['self', 'raw', 'custom_headers', 'operation_config',
'content_version'])
class AutoCommandDefinition(object): #pylint: disable=too-few-public-methods
@ -67,13 +68,9 @@ def build_operation(command_name,
client_type,
operations,
command_table,
common_parameters=None,
custom_parameters=None,
extra_parameters=None):
merged_common_parameters = COMMON_PARAMETERS.copy()
merged_common_parameters.update(common_parameters or {})
extra_parameters = extra_parameters or {}
for op in operations:
func = _make_func(client_type, member_path, op.return_type, op.operation)
@ -92,29 +89,40 @@ def build_operation(command_name,
try:
# this works in python3
default = args[arg].default
required = default == inspect.Parameter.empty # pylint: disable=no-member
required = default == inspect.Parameter.empty #pylint: disable=no-member
except TypeError:
arg_defaults = dict(zip(sig.args[-len(sig.defaults):], sig.defaults))
default = arg_defaults.get(arg)
required = arg not in arg_defaults
action = 'store_' + str(not default).lower() if isinstance(default, bool) else None
common_param = merged_common_parameters.get(arg, {
try:
default = (default
if default != inspect._empty #pylint: disable=protected-access, no-member
else None)
except AttributeError:
pass
parameter = {
'name': '--' + arg.replace('_', '-'),
'required': required,
'default': default,
'dest': arg,
'help': _option_description(op.operation, arg),
'action': action
}).copy() # We need to make a copy to allow consumers to mutate the value
# retrieved from the common parameters without polluting future
# use...
common_param['dest'] = common_param.get('dest', arg)
options.append(common_param)
}
parameter.update(COMMON_PARAMETERS.get(arg, {}))
if custom_parameters:
parameter.update(custom_parameters.get(arg, {}))
options.append(parameter)
# append any 'extra' args needed (for example to obtain a client) that aren't required
# by the SDK.
for arg in extra_parameters.values():
options.append(arg.copy())
if extra_parameters:
for arg in extra_parameters.values():
options.append(arg.copy())
command_table[func] = {
'name': ' '.join([command_name, op.opname]),

Просмотреть файл

@ -1,3 +1,4 @@
import time
from azure.mgmt.network import NetworkManagementClient, NetworkManagementClientConfiguration
from azure.mgmt.network.operations import (ApplicationGatewaysOperations,
ExpressRouteCircuitAuthorizationsOperations,
@ -18,9 +19,14 @@ from azure.mgmt.network.operations import (ApplicationGatewaysOperations,
VirtualNetworkGatewaysOperations,
VirtualNetworksOperations)
from azure.cli.command_modules.network.mgmt.lib import (ResourceManagementClient as VNetClient,
ResourceManagementClientConfiguration
as VNetClientConfig)
from azure.cli.command_modules.network.mgmt.lib.operations import VNetOperations
from azure.cli.commands._command_creation import get_mgmt_service_client
from azure.cli.commands._auto_command import build_operation, AutoCommandDefinition
from azure.cli.commands import CommandTable, LongRunningOperation
from azure.cli.commands import CommandTable, LongRunningOperation, COMMON_PARAMETERS
from azure.cli._locale import L
command_table = CommandTable()
@ -28,7 +34,6 @@ command_table = CommandTable()
def _network_client_factory(_):
return get_mgmt_service_client(NetworkManagementClient, NetworkManagementClientConfiguration)
# pylint: disable=line-too-long
# Application gateways
build_operation("network appgateway",
@ -245,34 +250,43 @@ build_operation("network vnet",
],
command_table)
@command_table.command('network vnet create')
@command_table.description(L('Create or update a virtual network (VNet)'))
@command_table.option('--resource-group -g', help=L('the resource group name'), required=True)
@command_table.option('--name -n', help=L('the VNet name'), required=True)
@command_table.option('--location -l', help=L('the VNet location'), required=True)
@command_table.option('--address-space -a', metavar='ADDRESS SPACE', help=L('the VNet address-space in CIDR notation or multiple address-spaces, quoted and space-separated'), required=True)
@command_table.option('--dns-servers -d', metavar='DNS SERVERS', help=L('the VNet DNS servers, quoted and space-separated'))
def create_update_vnet(args):
from azure.mgmt.network.models import AddressSpace, DhcpOptions, VirtualNetwork
# BUG: we are waiting on autorest to support this rename (https://github.com/Azure/autorest/issues/941)
VNET_SPECIFIC_PARAMS = {
'deployment_parameter_virtual_network_name_value': {
'name': '--vnet-name',
'metavar': 'VNETNAME',
},
'deployment_parameter_virtual_network_prefix_value': {
'name': '--vnet-prefix',
'metavar': 'VNETPREFIX',
},
'deployment_parameter_subnet_name_value': {
'name': '--subnet-name',
'metavar': 'SUBNETNAME',
},
'deployment_parameter_subnet_prefix_value': {
'name': '--subnet-prefix',
'metavar': 'SUBNETPREFIX',
},
'deployment_parameter_location_value': {
'name': '--location',
'metavar': 'LOCATION',
}
}
resource_group = args.get('resource_group')
name = args.get('name')
location = args.get('location')
address_space = AddressSpace(address_prefixes=args.get('address_space').split())
dhcp_options = DhcpOptions(dns_servers=args.get('dns_servers').split())
vnet_settings = VirtualNetwork(location=location,
address_space=address_space,
dhcp_options=dhcp_options)
op = LongRunningOperation('Creating virtual network', 'Virtual network created')
smc = _network_client_factory({})
poller = smc.virtual_networks.create_or_update(resource_group, name, vnet_settings)
return op(poller)
build_operation('network vnet',
'vnet',
lambda _: get_mgmt_service_client(VNetClient, VNetClientConfig),
[
AutoCommandDefinition(VNetOperations.create,
LongRunningOperation(L('Creating virtual network'), L('Virtual network created')))
],
command_table,
VNET_SPECIFIC_PARAMS)
@command_table.command('network subnet create')
@command_table.description(L('Create or update a virtual network (VNet) subnet'))
@command_table.option('--resource-group -g', help=L('the the resource group name'), required=True)
@command_table.option(**COMMON_PARAMETERS['resource_group_name'])
@command_table.option('--name -n', help=L('the the subnet name'), required=True)
@command_table.option('--vnet -v', help=L('the name of the subnet vnet'), required=True)
@command_table.option('--address-prefix -a', help=L('the the address prefix in CIDR format'), required=True)

Просмотреть файл

@ -0,0 +1,3 @@
#pylint: skip-file
import pkg_resources
pkg_resources.declare_namespace(__name__)

Просмотреть файл

@ -0,0 +1,79 @@
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"virtualNetworkName": {
"type": "string",
"metadata": {
"description": "Name of the virtual network."
}
},
"virtualNetworkPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "IP address prefix for the virtual network."
}
},
"subnetName": {
"type": "string",
"defaultValue": "Subnet1",
"metadata": {
"description": "Name of the subnet."
}
},
"subnetPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/24",
"metadata": {
"description": "IP address for the subnet."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Virtual network location."
}
}
},
"variables": {
"NewVNetName": "[parameters('virtualNetworkName')]",
"NewVNetPrefix": "[parameters('virtualNetworkPrefix')]",
"NewVNetSubnet1Name": "[parameters('subnetName')]",
"NewVNetSubnet1Prefix": "[parameters('subnetPrefix')]"
},
"resources": [
{
"name": "[variables('NewVNetName')]",
"type": "Microsoft.Network/virtualNetworks",
"location": "[parameters('location')]",
"apiVersion": "2015-06-15",
"dependsOn": [ ],
"tags": {
"displayName": "NewVNet"
},
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('NewVNetPrefix')]"
]
},
"subnets": [
{
"name": "[variables('NewVNetSubnet1Name')]",
"properties": {
"addressPrefix": "[variables('NewVNetSubnet1Prefix')]"
}
}
]
}
}
],
"outputs": {
"NewVNet": {
"type": "object",
"value": "[reference(variables('NewVNetName'))]"
}
}
}

Просмотреть файл

@ -0,0 +1,18 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from .resource_management_client import ResourceManagementClient, ResourceManagementClientConfiguration
from .version import VERSION
__all__ = [
'ResourceManagementClient',
'ResourceManagementClientConfiguration'
]
__version__ = VERSION

Просмотреть файл

@ -0,0 +1,17 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.authentication import (
BasicAuthentication,
BasicTokenAuthentication,
OAuthTokenAuthentication)
from msrestazure.azure_active_directory import (
InteractiveCredentials,
ServicePrincipalCredentials,
UserPassCredentials)

Просмотреть файл

@ -0,0 +1,20 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.exceptions import (
ClientException,
SerializationError,
DeserializationError,
TokenExpiredError,
ClientRequestError,
AuthenticationError,
HttpOperationError,
ValidationError,
)
from msrestazure.azure_exceptions import CloudError

Просмотреть файл

@ -0,0 +1,33 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from .deployment_vnet import DeploymentVNet
from .template_link import TemplateLink
from .parameters_link import ParametersLink
from .provider_resource_type import ProviderResourceType
from .provider import Provider
from .basic_dependency import BasicDependency
from .dependency import Dependency
from .deployment_properties_extended import DeploymentPropertiesExtended
from .deployment_extended import DeploymentExtended
from .resource_management_client_enums import (
DeploymentMode,
)
__all__ = [
'DeploymentVNet',
'TemplateLink',
'ParametersLink',
'ProviderResourceType',
'Provider',
'BasicDependency',
'Dependency',
'DeploymentPropertiesExtended',
'DeploymentExtended',
'DeploymentMode',
]

Просмотреть файл

@ -0,0 +1,30 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class BasicDependency(Model):
"""
Deployment dependency information.
:param str id: Gets or sets the ID of the dependency.
:param str resource_type: Gets or sets the dependency resource type.
:param str resource_name: Gets or sets the dependency resource name.
"""
_attribute_map = {
'id': {'key': 'id', 'type': 'str'},
'resource_type': {'key': 'resourceType', 'type': 'str'},
'resource_name': {'key': 'resourceName', 'type': 'str'},
}
def __init__(self, id=None, resource_type=None, resource_name=None, **kwargs):
self.id = id
self.resource_type = resource_type
self.resource_name = resource_name

Просмотреть файл

@ -0,0 +1,33 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class Dependency(Model):
"""
Deployment dependency information.
:param list depends_on: Gets the list of dependencies.
:param str id: Gets or sets the ID of the dependency.
:param str resource_type: Gets or sets the dependency resource type.
:param str resource_name: Gets or sets the dependency resource name.
"""
_attribute_map = {
'depends_on': {'key': 'dependsOn', 'type': '[BasicDependency]'},
'id': {'key': 'id', 'type': 'str'},
'resource_type': {'key': 'resourceType', 'type': 'str'},
'resource_name': {'key': 'resourceName', 'type': 'str'},
}
def __init__(self, depends_on=None, id=None, resource_type=None, resource_name=None, **kwargs):
self.depends_on = depends_on
self.id = id
self.resource_type = resource_type
self.resource_name = resource_name

Просмотреть файл

@ -0,0 +1,35 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class DeploymentExtended(Model):
"""
Deployment information.
:param str id: Gets or sets the ID of the deployment.
:param str name: Gets or sets the name of the deployment.
:param DeploymentPropertiesExtended properties: Gets or sets deployment
properties.
"""
_validation = {
'name': {'required': True},
}
_attribute_map = {
'id': {'key': 'id', 'type': 'str'},
'name': {'key': 'name', 'type': 'str'},
'properties': {'key': 'properties', 'type': 'DeploymentPropertiesExtended'},
}
def __init__(self, name, id=None, properties=None, **kwargs):
self.id = id
self.name = name
self.properties = properties

Просмотреть файл

@ -0,0 +1,63 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class DeploymentPropertiesExtended(Model):
"""
Deployment properties with additional details.
:param str provisioning_state: Gets or sets the state of the provisioning.
:param str correlation_id: Gets or sets the correlation ID of the
deployment.
:param datetime timestamp: Gets or sets the timestamp of the template
deployment.
:param object outputs: Gets or sets key/value pairs that represent
deploymentoutput.
:param list providers: Gets the list of resource providers needed for the
deployment.
:param list dependencies: Gets the list of deployment dependencies.
:param object template: Gets or sets the template content. Use only one
of Template or TemplateLink.
:param TemplateLink template_link: Gets or sets the URI referencing the
template. Use only one of Template or TemplateLink.
:param object parameters: Deployment parameters. Use only one of
Parameters or ParametersLink.
:param ParametersLink parameters_link: Gets or sets the URI referencing
the parameters. Use only one of Parameters or ParametersLink.
:param str mode: Gets or sets the deployment mode. Possible values
include: 'Incremental', 'Complete'
"""
_attribute_map = {
'provisioning_state': {'key': 'provisioningState', 'type': 'str'},
'correlation_id': {'key': 'correlationId', 'type': 'str'},
'timestamp': {'key': 'timestamp', 'type': 'iso-8601'},
'outputs': {'key': 'outputs', 'type': 'object'},
'providers': {'key': 'providers', 'type': '[Provider]'},
'dependencies': {'key': 'dependencies', 'type': '[Dependency]'},
'template': {'key': 'template', 'type': 'object'},
'template_link': {'key': 'TemplateLink', 'type': 'TemplateLink'},
'parameters': {'key': 'parameters', 'type': 'object'},
'parameters_link': {'key': 'parametersLink', 'type': 'ParametersLink'},
'mode': {'key': 'mode', 'type': 'DeploymentMode'},
}
def __init__(self, provisioning_state=None, correlation_id=None, timestamp=None, outputs=None, providers=None, dependencies=None, template=None, template_link=None, parameters=None, parameters_link=None, mode=None, **kwargs):
self.provisioning_state = provisioning_state
self.correlation_id = correlation_id
self.timestamp = timestamp
self.outputs = outputs
self.providers = providers
self.dependencies = dependencies
self.template = template
self.template_link = template_link
self.parameters = parameters
self.parameters_link = parameters_link
self.mode = mode

Просмотреть файл

@ -0,0 +1,62 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class DeploymentVNet(Model):
"""
Deployment operation parameters.
:param str uri: URI referencing the template. Default value:
"https://azuretemplatehost.blob.core.windows.net/templatehost/CreateVNet/azuredeploy.json"
.
:param str content_version: If included it must match the ContentVersion
in the template.
:param str deployment_parameter_virtual_network_prefix_value: IP address
prefix for the virtual network.
:param str deployment_parameter_subnet_prefix_value: IP address prefix
for the subnet.
:param str deployment_parameter_virtual_network_name_value: Name of the
virtual network.
:param str deployment_parameter_subnet_name_value: Name of the subnet.
:param str deployment_parameter_location_value: Location of the virtual
network.
:param str mode: Gets or sets the deployment mode. Default value:
"Incremental" .
"""
_validation = {
'uri': {'required': True},
'deployment_parameter_virtual_network_prefix_value': {'pattern': '^[\d\./]+$'},
'deployment_parameter_subnet_prefix_value': {'pattern': '^[\d\./]+$'},
'deployment_parameter_virtual_network_name_value': {'max_length': 80, 'min_length': 2, 'pattern': '^[-\w\._]+$'},
'deployment_parameter_subnet_name_value': {'max_length': 80, 'min_length': 2, 'pattern': '^[-\w\._]+$'},
'mode': {'required': True},
}
_attribute_map = {
'uri': {'key': 'properties.templateLink.uri', 'type': 'str'},
'content_version': {'key': 'properties.templateLink.contentVersion', 'type': 'str'},
'deployment_parameter_virtual_network_prefix_value': {'key': 'properties.parameters.virtualNetworkPrefix.value', 'type': 'str'},
'deployment_parameter_subnet_prefix_value': {'key': 'properties.parameters.subnetPrefix.value', 'type': 'str'},
'deployment_parameter_virtual_network_name_value': {'key': 'properties.parameters.virtualNetworkName.value', 'type': 'str'},
'deployment_parameter_subnet_name_value': {'key': 'properties.parameters.subnetName.value', 'type': 'str'},
'deployment_parameter_location_value': {'key': 'properties.parameters.location.value', 'type': 'str'},
'mode': {'key': 'properties.mode', 'type': 'str'},
}
def __init__(self, content_version=None, deployment_parameter_virtual_network_prefix_value=None, deployment_parameter_subnet_prefix_value=None, deployment_parameter_virtual_network_name_value=None, deployment_parameter_subnet_name_value=None, deployment_parameter_location_value=None, **kwargs):
self.uri = "https://azuretemplatehost.blob.core.windows.net/templatehost/CreateVNet/azuredeploy.json"
self.content_version = content_version
self.deployment_parameter_virtual_network_prefix_value = deployment_parameter_virtual_network_prefix_value
self.deployment_parameter_subnet_prefix_value = deployment_parameter_subnet_prefix_value
self.deployment_parameter_virtual_network_name_value = deployment_parameter_virtual_network_name_value
self.deployment_parameter_subnet_name_value = deployment_parameter_subnet_name_value
self.deployment_parameter_location_value = deployment_parameter_location_value
self.mode = "Incremental"

Просмотреть файл

@ -0,0 +1,32 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class ParametersLink(Model):
"""
Entity representing the reference to the deployment paramaters.
:param str uri: URI referencing the template.
:param str content_version: If included it must match the ContentVersion
in the template.
"""
_validation = {
'uri': {'required': True},
}
_attribute_map = {
'uri': {'key': 'uri', 'type': 'str'},
'content_version': {'key': 'contentVersion', 'type': 'str'},
}
def __init__(self, uri, content_version=None, **kwargs):
self.uri = uri
self.content_version = content_version

Просмотреть файл

@ -0,0 +1,35 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class Provider(Model):
"""
Resource provider information.
:param str id: Gets or sets the provider id.
:param str namespace: Gets or sets the namespace of the provider.
:param str registration_state: Gets or sets the registration state of the
provider.
:param list resource_types: Gets or sets the collection of provider
resource types.
"""
_attribute_map = {
'id': {'key': 'id', 'type': 'str'},
'namespace': {'key': 'namespace', 'type': 'str'},
'registration_state': {'key': 'registrationState', 'type': 'str'},
'resource_types': {'key': 'resourceTypes', 'type': '[ProviderResourceType]'},
}
def __init__(self, id=None, namespace=None, registration_state=None, resource_types=None, **kwargs):
self.id = id
self.namespace = namespace
self.registration_state = registration_state
self.resource_types = resource_types

Просмотреть файл

@ -0,0 +1,34 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class ProviderResourceType(Model):
"""
Resource type managed by the resource provider.
:param str resource_type: Gets or sets the resource type.
:param list locations: Gets or sets the collection of locations where
this resource type can be created in.
:param list api_versions: Gets or sets the api version.
:param dict properties: Gets or sets the properties.
"""
_attribute_map = {
'resource_type': {'key': 'resourceType', 'type': 'str'},
'locations': {'key': 'locations', 'type': '[str]'},
'api_versions': {'key': 'apiVersions', 'type': '[str]'},
'properties': {'key': 'properties', 'type': '{str}'},
}
def __init__(self, resource_type=None, locations=None, api_versions=None, properties=None, **kwargs):
self.resource_type = resource_type
self.locations = locations
self.api_versions = api_versions
self.properties = properties

Просмотреть файл

@ -0,0 +1,15 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from enum import Enum
class DeploymentMode(Enum):
incremental = "Incremental"
complete = "Complete"

Просмотреть файл

@ -0,0 +1,34 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.serialization import Model
class TemplateLink(Model):
"""
Entity representing the reference to the template.
:param str uri: URI referencing the template. Default value:
"https://azuretemplatehost.blob.core.windows.net/templatehost/CreateVNet/azuredeploy.json"
.
:param str content_version: If included it must match the ContentVersion
in the template.
"""
_validation = {
'uri': {'required': True},
}
_attribute_map = {
'uri': {'key': 'uri', 'type': 'str'},
'content_version': {'key': 'contentVersion', 'type': 'str'},
}
def __init__(self, content_version=None, **kwargs):
self.uri = "https://azuretemplatehost.blob.core.windows.net/templatehost/CreateVNet/azuredeploy.json"
self.content_version = content_version

Просмотреть файл

@ -0,0 +1,13 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from .vnet_operations import VNetOperations
__all__ = [
'VNetOperations',
]

Просмотреть файл

@ -0,0 +1,134 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.pipeline import ClientRawResponse
from msrestazure.azure_exceptions import CloudError
from msrestazure.azure_operation import AzureOperationPoller
import uuid
from .. import models
class VNetOperations(object):
"""VNetOperations operations.
:param client: Client for service requests.
:param config: Configuration of service client.
:param serializer: An object model serializer.
:param deserializer: An objec model deserializer.
"""
def __init__(self, client, config, serializer, deserializer):
self._client = client
self._serialize = serializer
self._deserialize = deserializer
self.config = config
def create(
self, resource_group_name, deployment_name, content_version=None, deployment_parameter_virtual_network_prefix_value=None, deployment_parameter_subnet_prefix_value=None, deployment_parameter_virtual_network_name_value=None, deployment_parameter_subnet_name_value=None, deployment_parameter_location_value=None, custom_headers={}, raw=False, **operation_config):
"""
Create a named template deployment using a template.
:param resource_group_name: The name of the resource group. The name
is case insensitive.
:type resource_group_name: str
:param deployment_name: The name of the deployment.
:type deployment_name: str
:param content_version: If included it must match the ContentVersion
in the template.
:type content_version: str
:param deployment_parameter_virtual_network_prefix_value: IP address
prefix for the virtual network.
:type deployment_parameter_virtual_network_prefix_value: str
:param deployment_parameter_subnet_prefix_value: IP address prefix
for the subnet.
:type deployment_parameter_subnet_prefix_value: str
:param deployment_parameter_virtual_network_name_value: Name of the
virtual network.
:type deployment_parameter_virtual_network_name_value: str
:param deployment_parameter_subnet_name_value: Name of the subnet.
:type deployment_parameter_subnet_name_value: str
:param deployment_parameter_location_value: Location of the virtual
network.
:type deployment_parameter_location_value: str
:param dict custom_headers: headers that will be added to the request
:param boolean raw: returns the direct response alongside the
deserialized response
:rtype: DeploymentExtended
:rtype: msrest.pipeline.ClientRawResponse if raw=True
"""
parameters = models.DeploymentVNet(content_version=content_version, deployment_parameter_virtual_network_prefix_value=deployment_parameter_virtual_network_prefix_value, deployment_parameter_subnet_prefix_value=deployment_parameter_subnet_prefix_value, deployment_parameter_virtual_network_name_value=deployment_parameter_virtual_network_name_value, deployment_parameter_subnet_name_value=deployment_parameter_subnet_name_value, deployment_parameter_location_value=deployment_parameter_location_value)
# Construct URL
url = '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}'
path_format_arguments = {
'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=64, min_length=1, pattern='^[-\w\._]+$'),
'deploymentName': self._serialize.url("deployment_name", deployment_name, 'str', max_length=64, min_length=1, pattern='^[-\w\._]+$'),
'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str')
}
url = self._client.format_url(url, **path_format_arguments)
# Construct parameters
query_parameters = {}
query_parameters['api-version'] = self._serialize.query("self.config.api_version", self.config.api_version, 'str')
# Construct headers
header_parameters = {}
header_parameters['Content-Type'] = 'application/json; charset=utf-8'
if self.config.generate_client_request_id:
header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
if custom_headers:
header_parameters.update(custom_headers)
if self.config.accept_language is not None:
header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
# Construct body
body_content = self._serialize.body(parameters, 'DeploymentVNet')
# Construct and send request
def long_running_send():
request = self._client.put(url, query_parameters)
return self._client.send(
request, header_parameters, body_content, **operation_config)
def get_long_running_status(status_link, headers={}):
request = self._client.get(status_link)
request.headers.update(headers)
return self._client.send(
request, header_parameters, **operation_config)
def get_long_running_output(response):
if response.status_code not in [200, 201]:
exp = CloudError(response)
exp.request_id = response.headers.get('x-ms-request-id')
raise exp
deserialized = None
if response.status_code == 200:
deserialized = self._deserialize('DeploymentExtended', response)
if response.status_code == 201:
deserialized = self._deserialize('DeploymentExtended', response)
if raw:
client_raw_response = ClientRawResponse(deserialized, response)
return client_raw_response
return deserialized
long_running_operation_timeout = operation_config.get(
'long_running_operation_timeout',
self.config.long_running_operation_timeout)
return AzureOperationPoller(
long_running_send, get_long_running_output,
get_long_running_status, long_running_operation_timeout)

Просмотреть файл

@ -0,0 +1,87 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrest.service_client import ServiceClient
from msrest import Serializer, Deserializer
from msrestazure import AzureConfiguration
from .version import VERSION
from .operations.vnet_operations import VNetOperations
from . import models
class ResourceManagementClientConfiguration(AzureConfiguration):
"""Configuration for ResourceManagementClient
Note that all parameters used to create this instance are saved as instance
attributes.
:param credentials: Gets Azure subscription credentials.
:type credentials: credentials
:param subscription_id: Gets subscription credentials which uniquely
identify Microsoft Azure subscription. The subscription ID forms part of
the URI for every service call.
:type subscription_id: str
:param api_version: Client Api Version.
:type api_version: str
:param accept_language: Gets or sets the preferred language for the
response.
:type accept_language: str
:param long_running_operation_retry_timeout: Gets or sets the retry
timeout in seconds for Long Running Operations. Default value is 30.
:type long_running_operation_retry_timeout: int
:param generate_client_request_id: When set to true a unique
x-ms-client-request-id value is generated and included in each request.
Default is true.
:type generate_client_request_id: bool
:param str base_url: Service URL
:param str filepath: Existing config
"""
def __init__(
self, credentials, subscription_id, api_version='2015-11-01', accept_language='en-US', long_running_operation_retry_timeout=30, generate_client_request_id=True, base_url=None, filepath=None):
if credentials is None:
raise ValueError('credentials must not be None.')
if subscription_id is None:
raise ValueError('subscription_id must not be None.')
if not base_url:
base_url = 'https://management.azure.com'
super(ResourceManagementClientConfiguration, self).__init__(base_url, filepath)
self.add_user_agent('resourcemanagementclient/{}'.format(VERSION))
self.add_user_agent('Azure-SDK-For-Python')
self.credentials = credentials
self.subscription_id = subscription_id
self.api_version = api_version
self.accept_language = accept_language
self.long_running_operation_retry_timeout = long_running_operation_retry_timeout
self.generate_client_request_id = generate_client_request_id
class ResourceManagementClient(object):
"""ResourceManagementClient
:param config: Configuration for client.
:type config: ResourceManagementClientConfiguration
:ivar vnet: VNet operations
:vartype vnet: .operations.VNetOperations
"""
def __init__(self, config):
self._client = ServiceClient(config.credentials, config)
client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
self._serialize = Serializer()
self._deserialize = Deserializer(client_models)
self.config = config
self.vnet = VNetOperations(
self._client, self.config, self._serialize, self._deserialize)

Просмотреть файл

@ -0,0 +1,10 @@
#pylint: skip-file
# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator 0.15.0.0
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
VERSION = "2015-11-01"

Просмотреть файл

@ -0,0 +1,464 @@
{
"swagger": "2.0",
"info": {
"title": "ResourceManagementClient",
"version": "2015-11-01"
},
"host": "management.azure.com",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"security": [
{
"azure_auth": [
"user_impersonation"
]
}
],
"securityDefinitions": {
"azure_auth": {
"type": "oauth2",
"authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
"flow": "implicit",
"description": "Azure Active Directory OAuth2 Flow",
"scopes": {
"user_impersonation": "impersonate your user account"
}
}
},
"paths": {
"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}": {
"put": {
"tags": [
"VNet"
],
"operationId": "VNet_Create",
"description": "Create a named template deployment using a template.",
"parameters": [
{
"name": "resourceGroupName",
"in": "path",
"required": true,
"type": "string",
"description": "The name of the resource group. The name is case insensitive.",
"pattern": "^[-\\w\\._]+$",
"minLength": 1,
"maxLength": 64
},
{
"name": "deploymentName",
"in": "path",
"required": true,
"type": "string",
"description": "The name of the deployment.",
"pattern": "^[-\\w\\._]+$",
"minLength": 1,
"maxLength": 64
},
{
"name": "parameters",
"x-ms-client-flatten": true,
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/Deployment_VNet"
},
"description": "Additional parameters supplied to the operation."
},
{
"$ref": "#/parameters/ApiVersionParameter"
},
{
"$ref": "#/parameters/SubscriptionIdParameter"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/DeploymentExtended"
}
},
"201": {
"description": "",
"schema": {
"$ref": "#/definitions/DeploymentExtended"
}
}
},
"x-ms-long-running-operation": true
}
}
},
"definitions": {
"Deployment_VNet": {
"properties": {
"properties": {
"$ref": "#/definitions/DeploymentProperties_VNet",
"description": "Gets or sets the deployment properties.",
"x-ms-client-flatten": true
}
},
"required": [
"properties"
],
"description": "Deployment operation parameters."
},
"DeploymentProperties_VNet": {
"properties": {
"templateLink": {
"$ref": "#/definitions/TemplateLink",
"description": "Gets or sets the URI referencing the template. Use only one of Template or TemplateLink.",
"x-ms-client-flatten": true
},
"parameters": {
"$ref": "#/definitions/VNetParameters",
"type": "object",
"description": "Deployment parameters. Use only one of Parameters or ParametersLink.",
"x-ms-client-flatten": true
},
"mode": {
"type": "string",
"description": "Gets or sets the deployment mode.",
"enum": [
"Incremental"
],
"x-ms-enum": {
"name": "DeploymentMode",
"modelAsString": false
}
}
},
"required": [
"templateLink",
"parameters",
"mode"
],
"description": "Deployment properties."
},
"TemplateLink": {
"properties": {
"uri": {
"type": "string",
"description": "URI referencing the template.",
"enum": [
"https://azuretemplatehost.blob.core.windows.net/templatehost/CreateVNet/azuredeploy.json"
]
},
"contentVersion": {
"type": "string",
"description": "If included it must match the ContentVersion in the template."
}
},
"required": [
"uri"
],
"description": "Entity representing the reference to the template."
},
"VNetParameters": {
"properties": {
"virtualNetworkPrefix": {
"type": "object",
"$ref": "#/definitions/DeploymentParameter_virtualNetworkPrefix",
"x-ms-client-flatten": true,
},
"subnetPrefix": {
"type": "object",
"$ref": "#/definitions/DeploymentParameter_subnetPrefix",
"x-ms-client-flatten": true
},
"virtualNetworkName": {
"type": "object",
"$ref": "#/definitions/DeploymentParameter_virtualNetworkName",
"x-ms-client-flatten": true
},
"subnetName": {
"type": "object",
"$ref": "#/definitions/DeploymentParameter_subnetName",
"x-ms-client-flatten": true
},
"location": {
"type": "object",
"$ref": "#/definitions/DeploymentParameter_location",
"x-ms-client-flatten": true
}
},
"required": [
"virtualNetworkName"
]
},
"DeploymentParameter_virtualNetworkPrefix": {
"properties": {
"value": {
"type": "string",
"description": "IP address prefix for the virtual network.",
"pattern": "^[\\d\\./]+$",
"x-ms-client-name": "virtualNetworkPrefix"
}
}
},
"DeploymentParameter_subnetPrefix": {
"properties": {
"value": {
"type": "string",
"description": "IP address prefix for the subnet.",
"pattern": "^[\\d\\./]+$",
"x-ms-client-name": "subnetPrefix"
}
}
},
"DeploymentParameter_virtualNetworkName": {
"properties": {
"value": {
"type": "string",
"description": "Name of the virtual network.",
"pattern": "^[-\\w\\._]+$",
"minLength": 2,
"maxLength": 80,
"x-ms-client-name": "virtualNetworkName"
}
},
"required": [
"value"
]
},
"DeploymentParameter_subnetName": {
"properties": {
"value": {
"type": "string",
"description": "Name of the subnet.",
"pattern": "^[-\\w\\._]+$",
"minLength": 2,
"maxLength": 80,
"x-ms-client-name": "subnetName"
}
}
},
"DeploymentParameter_location": {
"properties": {
"value": {
"type": "string",
"description": "Location of the virtual network.",
"x-ms-client-name": "location"
}
}
},
"ParametersLink": {
"properties": {
"uri": {
"type": "string",
"description": "URI referencing the template."
},
"contentVersion": {
"type": "string",
"description": "If included it must match the ContentVersion in the template."
}
},
"required": [
"uri"
],
"description": "Entity representing the reference to the deployment paramaters."
},
"ProviderResourceType": {
"properties": {
"resourceType": {
"type": "string",
"description": "Gets or sets the resource type."
},
"locations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Gets or sets the collection of locations where this resource type can be created in."
},
"apiVersions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Gets or sets the api version."
},
"properties": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Gets or sets the properties."
}
},
"description": "Resource type managed by the resource provider."
},
"Provider": {
"properties": {
"id": {
"type": "string",
"description": "Gets or sets the provider id."
},
"namespace": {
"type": "string",
"description": "Gets or sets the namespace of the provider."
},
"registrationState": {
"type": "string",
"description": "Gets or sets the registration state of the provider."
},
"resourceTypes": {
"type": "array",
"items": {
"$ref": "#/definitions/ProviderResourceType"
},
"description": "Gets or sets the collection of provider resource types."
}
},
"description": "Resource provider information."
},
"BasicDependency": {
"properties": {
"id": {
"type": "string",
"description": "Gets or sets the ID of the dependency."
},
"resourceType": {
"type": "string",
"description": "Gets or sets the dependency resource type."
},
"resourceName": {
"type": "string",
"description": "Gets or sets the dependency resource name."
}
},
"description": "Deployment dependency information."
},
"Dependency": {
"properties": {
"dependsOn": {
"type": "array",
"items": {
"$ref": "#/definitions/BasicDependency"
},
"description": "Gets the list of dependencies."
},
"id": {
"type": "string",
"description": "Gets or sets the ID of the dependency."
},
"resourceType": {
"type": "string",
"description": "Gets or sets the dependency resource type."
},
"resourceName": {
"type": "string",
"description": "Gets or sets the dependency resource name."
}
},
"description": "Deployment dependency information."
},
"DeploymentPropertiesExtended": {
"properties": {
"provisioningState": {
"type": "string",
"description": "Gets or sets the state of the provisioning."
},
"correlationId": {
"type": "string",
"description": "Gets or sets the correlation ID of the deployment."
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "Gets or sets the timestamp of the template deployment."
},
"outputs": {
"type": "object",
"description": "Gets or sets key/value pairs that represent deploymentoutput."
},
"providers": {
"type": "array",
"items": {
"$ref": "#/definitions/Provider"
},
"description": "Gets the list of resource providers needed for the deployment."
},
"dependencies": {
"type": "array",
"items": {
"$ref": "#/definitions/Dependency"
},
"description": "Gets the list of deployment dependencies."
},
"template": {
"type": "object",
"description": "Gets or sets the template content. Use only one of Template or TemplateLink."
},
"TemplateLink": {
"$ref": "#/definitions/TemplateLink",
"description": "Gets or sets the URI referencing the template. Use only one of Template or TemplateLink."
},
"parameters": {
"type": "object",
"description": "Deployment parameters. Use only one of Parameters or ParametersLink."
},
"parametersLink": {
"$ref": "#/definitions/ParametersLink",
"description": "Gets or sets the URI referencing the parameters. Use only one of Parameters or ParametersLink."
},
"mode": {
"type": "string",
"description": "Gets or sets the deployment mode.",
"enum": [
"Incremental",
"Complete"
],
"x-ms-enum": {
"name": "DeploymentMode",
"modelAsString": false
}
}
},
"description": "Deployment properties with additional details."
},
"DeploymentExtended": {
"properties": {
"id": {
"type": "string",
"description": "Gets or sets the ID of the deployment."
},
"name": {
"type": "string",
"description": "Gets or sets the name of the deployment."
},
"properties": {
"$ref": "#/definitions/DeploymentPropertiesExtended",
"description": "Gets or sets deployment properties."
}
},
"required": [
"name"
],
"description": "Deployment information."
}
},
"parameters": {
"SubscriptionIdParameter": {
"name": "subscriptionId",
"in": "path",
"required": true,
"type": "string",
"description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
},
"ApiVersionParameter": {
"name": "api-version",
"in": "query",
"required": true,
"type": "string",
"description": "Client Api Version."
}
}
}

Просмотреть файл

@ -60,6 +60,10 @@ setup(
],
packages=[
'azure.cli.command_modules.network',
'azure.cli.command_modules.network.mgmt',
'azure.cli.command_modules.network.mgmt.lib',
'azure.cli.command_modules.network.mgmt.lib.models',
'azure.cli.command_modules.network.mgmt.lib.operations',
],
install_requires=DEPENDENCIES,
)