Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -254,3 +254,7 @@ def cf_virtual_router_peering(cli_ctx, _):

def cf_bastion_hosts(cli_ctx, _):
return network_client_factory(cli_ctx).bastion_hosts


def cf_security_partner_providers(cli_ctx, _):
return network_client_factory(cli_ctx).security_partner_providers
30 changes: 30 additions & 0 deletions src/azure-cli/azure/cli/command_modules/network/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -5792,3 +5792,33 @@
type: command
short-summary: Show a Azure bastion host machine.
"""

helps['network security-partner'] = """
type: group
short-summary: Manage Azure security partner provider.
"""

helps['network security-partner create'] = """
type: command
short-summary: Create a Azure security partner provider.
"""

helps['network security-partner update'] = """
type: command
short-summary: Update a Azure security partner provider.
"""

helps['network security-partner delete'] = """
type: command
short-summary: Delete a Azure security partner provider.
"""

helps['network security-partner list'] = """
type: command
short-summary: List all Azure security partner provider.
"""

helps['network security-partner show'] = """
type: command
short-summary: Show a Azure security partner provider.
"""
8 changes: 8 additions & 0 deletions src/azure-cli/azure/cli/command_modules/network/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -1784,3 +1784,11 @@ def load_arguments(self, _):
c.argument('virtual_network_name', options_list=['--vnet-name'], help='Name of the virtual network. It must have a subnet called AzureBastionSubnet.', validator=get_subnet_validator())
c.ignore('subnet')
# endregion

# region security partner provider
with self.argument_context('network security-partner') as c:
SecurityProviderName = self.get_models('SecurityProviderName')
c.argument('security_provider_name', arg_type=get_enum_type(SecurityProviderName), help='The security provider name', options_list=['--provider'])
c.argument('security_partner_provider_name', options_list=['--name', '-n'], help='Name of the Security Partner Provider.')
c.argument('virtual_hub', options_list=['--vhub'], help='Name or ID of the virtual hub to which the Security Partner Provider belongs.', validator=validate_virtual_hub)
# endregion
18 changes: 17 additions & 1 deletion src/azure-cli/azure/cli/command_modules/network/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
cf_express_route_circuit_connections, cf_express_route_gateways, cf_express_route_connections,
cf_express_route_ports, cf_express_route_port_locations, cf_express_route_links, cf_app_gateway_waf_policy,
cf_service_tags, cf_private_link_services, cf_private_endpoint_types, cf_peer_express_route_circuit_connections,
cf_virtual_router, cf_virtual_router_peering, cf_service_aliases, cf_bastion_hosts, cf_flow_logs, cf_private_dns_zone_groups)
cf_virtual_router, cf_virtual_router_peering, cf_service_aliases, cf_bastion_hosts, cf_flow_logs,
cf_private_dns_zone_groups, cf_security_partner_providers)
from azure.cli.command_modules.network._util import (
list_network_resource_property, get_network_resource_property_entry, delete_network_resource_property_entry)
from azure.cli.command_modules.network._format import (
Expand Down Expand Up @@ -358,6 +359,12 @@ def load_command_table(self, _):
min_api='2019-11-01'
)

network_security_partner_provider_sdk = CliCommandType(
operations_tmpl='azure.mgmt.network.operations#SecurityPartnerProvidersOperations.{}',
client_factory=cf_security_partner_providers,
min_api='2020-03-01'
)

network_custom = CliCommandType(operations_tmpl='azure.cli.command_modules.network.custom#{}')

# endregion
Expand Down Expand Up @@ -1172,3 +1179,12 @@ def _make_singular(value):
g.custom_command('list', 'list_bastion_host')
g.command('delete', 'delete')
# endregion

# region Bastion
with self.command_group('network security-partner', network_security_partner_provider_sdk, is_preview=True) as g:
g.custom_command('create', 'create_security_partner_provider')
g.generic_update_command('update', custom_func_name='update_security_partner_provider')
g.show_command('show', 'get')
g.custom_command('list', 'list_security_partner_provider')
g.command('delete', 'delete')
# endregion
31 changes: 31 additions & 0 deletions src/azure-cli/azure/cli/command_modules/network/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -5786,3 +5786,34 @@ def list_bastion_host(cmd, resource_group_name=None):
return client.list_by_resource_group(resource_group_name=resource_group_name)
return client.list()
# endregion


# region security partner provider
def create_security_partner_provider(cmd, resource_group_name, security_partner_provider_name,
security_provider_name, virtual_hub, location=None, tags=None):
client = network_client_factory(cmd.cli_ctx).security_partner_providers
SecurityPartnerProvider, SubResource = cmd.get_models('SecurityPartnerProvider', 'SubResource')

security_partner_provider = SecurityPartnerProvider(security_provider_name=security_provider_name,
virtual_hub=SubResource(id=virtual_hub),
location=location,
tags=tags)
return client.create_or_update(resource_group_name=resource_group_name,
security_partner_provider_name=security_partner_provider_name,
parameters=security_partner_provider)


def update_security_partner_provider(instance, cmd, security_provider_name=None, virtual_hub=None, tags=None):
with cmd.update_context(instance) as c:
c.set_param('security_provider_name', security_provider_name)
c.set_param('virtual_hub', virtual_hub)
c.set_param('tags', tags)
return instance


def list_security_partner_provider(cmd, resource_group_name=None):
client = network_client_factory(cmd.cli_ctx).security_partner_providers
if resource_group_name is not None:
return client.list_by_resource_group(resource_group_name=resource_group_name)
return client.list()
# endregion
Loading