Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c266337
tmp
yanzhudd Jun 20, 2025
6232281
support --mode and --default-access for create command
yanzhudd Jun 23, 2025
93f1389
Merge branch 'dev' of https://github.com/Azure/azure-cli into msp-fea…
yanzhudd Jun 23, 2025
08bc4cc
add test
yanzhudd Jun 24, 2025
3d26dbc
fix help messages
yanzhudd Jun 24, 2025
de3502a
Merge branch 'dev' of https://github.com/Azure/azure-cli into msp-fea…
yanzhudd Jun 24, 2025
1e7b175
add subcommands
yanzhudd Jun 26, 2025
d810cc0
fix
yanzhudd Jun 26, 2025
fb84099
Merge branch 'dev' of https://github.com/Azure/azure-cli into msp-fea…
yanzhudd Jun 27, 2025
e67b1bf
rerun tests & fix linter error
yanzhudd Jun 27, 2025
1197569
Merge branch 'dev' of https://github.com/Azure/azure-cli into msp-fea…
yanzhudd Jun 29, 2025
18b91a0
fix linter error
yanzhudd Jun 29, 2025
eeb04a8
Merge branch 'msp-feature' of https://github.com/yanzhudd/azure-cli i…
yanzhudd Jun 29, 2025
4129c28
fix style error
yanzhudd Jun 30, 2025
f400ccd
Merge branch 'dev' of https://github.com/Azure/azure-cli into msp-fea…
yanzhudd Jul 3, 2025
8db2404
Add support for list commands
yanzhudd Jul 3, 2025
5017ea7
add tests
yanzhudd Jul 3, 2025
27e10ff
rerun test
yanzhudd Jul 3, 2025
bd97a5e
add test for list commands
yanzhudd Jul 3, 2025
4bb9c3d
Merge branch 'dev' of https://github.com/Azure/azure-cli into msp-fea…
yanzhudd Jul 4, 2025
8cfade7
remove config command group
yanzhudd Jul 4, 2025
b77181b
Merge branch 'dev' of https://github.com/Azure/azure-cli into msp-fea…
yanzhudd Jul 6, 2025
3499447
Merge branch 'dev' of https://github.com/Azure/azure-cli into msp-fea…
yanzhudd Jul 13, 2025
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
@@ -0,0 +1,23 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

from azure.cli.core.aaz import *


@register_command_group(
"sig in-vm-access-control-profile",
)
class __CMDGroup(AAZCommandGroup):
"""Manage in VM access control profile.
"""
pass


__all__ = ["__CMDGroup"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

from .__cmd_group import *
from ._create import *
from ._delete import *
from ._list import *
from ._show import *
from ._update import *
from ._wait import *
Original file line number Diff line number Diff line change
@@ -0,0 +1,282 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

from azure.cli.core.aaz import *


@register_command(
"sig in-vm-access-control-profile create",
)
class Create(AAZCommand):
"""Create a gallery in VM access control profile.

:example: Create a gallery in VM access control profile.
az sig in-vm-access-control-profile create --resource-group myResourceGroup --gallery-name myGalleryName --name myInVMAccessControlProfileName --location WestUS --os-type Linux --applicable-host-endpoint WireServer
"""

_aaz_info = {
"version": "2024-03-03",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.compute/galleries/{}/invmaccesscontrolprofiles/{}", "2024-03-03"],
]
}

AZ_SUPPORT_NO_WAIT = True

def _handler(self, command_args):
super()._handler(command_args)
return self.build_lro_poller(self._execute_operations, self._output)

_args_schema = None

@classmethod
def _build_arguments_schema(cls, *args, **kwargs):
if cls._args_schema is not None:
return cls._args_schema
cls._args_schema = super()._build_arguments_schema(*args, **kwargs)

# define Arg Group ""

_args_schema = cls._args_schema
_args_schema.gallery_name = AAZStrArg(
options=["--gallery-name"],
help="The name of the Shared Image Gallery in which the in VM access control profile is to be created.",
required=True,
fmt=AAZStrArgFormat(
pattern="^[a-zA-Z0-9]+([_]?[a-zA-Z0-9]+)*$",
),
)
_args_schema.name = AAZStrArg(
options=["-n", "--name"],
help="The name of the gallery in VM access control profile to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.",
required=True,
fmt=AAZStrArgFormat(
pattern="^[a-zA-Z0-9]+([-._]?[a-zA-Z0-9]+)*$",
max_length=80,
),
)
_args_schema.resource_group = AAZResourceGroupNameArg(
required=True,
)

# define Arg Group "GalleryInVMAccessControlProfile"

_args_schema = cls._args_schema
_args_schema.location = AAZResourceLocationArg(
arg_group="GalleryInVMAccessControlProfile",
help="Resource location",
required=True,
fmt=AAZResourceLocationArgFormat(
resource_group_arg="resource_group",
),
)

# define Arg Group "Properties"

_args_schema = cls._args_schema
_args_schema.applicable_host_endpoint = AAZStrArg(
options=["--applicable-host-endpoint"],
arg_group="Properties",
help="This property allows you to specify the Endpoint type for which this profile is defining the access control for. Possible values are: 'WireServer' or 'IMDS'",
enum={"IMDS": "IMDS", "WireServer": "WireServer"},
)
_args_schema.description = AAZStrArg(
options=["--description"],
arg_group="Properties",
help="The description of this gallery in VM access control profile resources. This property is updatable.",
)
_args_schema.os_type = AAZStrArg(
options=["--os-type"],
arg_group="Properties",
help="This property allows you to specify the OS type of the VMs/VMSS for which this profile can be used against. Possible values are: 'Windows' or 'Linux'",
enum={"Linux": "Linux", "Windows": "Windows"},
)
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
yield self.GalleryInVMAccessControlProfilesCreateOrUpdate(ctx=self.ctx)()
self.post_operations()

@register_callback
def pre_operations(self):
pass

@register_callback
def post_operations(self):
pass

def _output(self, *args, **kwargs):
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
return result

class GalleryInVMAccessControlProfilesCreateOrUpdate(AAZHttpOperation):
CLIENT_TYPE = "MgmtClient"

def __call__(self, *args, **kwargs):
request = self.make_request()
session = self.client.send_request(request=request, stream=False, **kwargs)
if session.http_response.status_code in [202]:
return self.client.build_lro_polling(
self.ctx.args.no_wait,
session,
self.on_200_201,
self.on_error,
lro_options={"final-state-via": "azure-async-operation"},
path_format_arguments=self.url_parameters,
)
if session.http_response.status_code in [200, 201]:
return self.client.build_lro_polling(
self.ctx.args.no_wait,
session,
self.on_200_201,
self.on_error,
lro_options={"final-state-via": "azure-async-operation"},
path_format_arguments=self.url_parameters,
)

return self.on_error(session.http_response)

@property
def url(self):
return self.client.format_url(
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{inVMAccessControlProfileName}",
**self.url_parameters
)

@property
def method(self):
return "PUT"

@property
def error_format(self):
return "ODataV4Format"

@property
def url_parameters(self):
parameters = {
**self.serialize_url_param(
"galleryName", self.ctx.args.gallery_name,
required=True,
),
**self.serialize_url_param(
"inVMAccessControlProfileName", self.ctx.args.name,
required=True,
),
**self.serialize_url_param(
"resourceGroupName", self.ctx.args.resource_group,
required=True,
),
**self.serialize_url_param(
"subscriptionId", self.ctx.subscription_id,
required=True,
),
}
return parameters

@property
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2024-03-03",
required=True,
),
}
return parameters

@property
def header_parameters(self):
parameters = {
**self.serialize_header_param(
"Content-Type", "application/json",
),
**self.serialize_header_param(
"Accept", "application/json",
),
}
return parameters

@property
def content(self):
_content_value, _builder = self.new_content_builder(
self.ctx.args,
typ=AAZObjectType,
typ_kwargs={"flags": {"required": True, "client_flatten": True}}
)
_builder.set_prop("location", AAZStrType, ".location", typ_kwargs={"flags": {"required": True}})
_builder.set_prop("properties", AAZObjectType)

properties = _builder.get(".properties")
if properties is not None:
properties.set_prop("applicableHostEndpoint", AAZStrType, ".applicable_host_endpoint", typ_kwargs={"flags": {"required": True}})
properties.set_prop("description", AAZStrType, ".description")
properties.set_prop("osType", AAZStrType, ".os_type", typ_kwargs={"flags": {"required": True}})

return self.serialize_content(_content_value)

def on_200_201(self, session):
data = self.deserialize_http_content(session)
self.ctx.set_var(
"instance",
data,
schema_builder=self._build_schema_on_200_201
)

_schema_on_200_201 = None

@classmethod
def _build_schema_on_200_201(cls):
if cls._schema_on_200_201 is not None:
return cls._schema_on_200_201

cls._schema_on_200_201 = AAZObjectType()

_schema_on_200_201 = cls._schema_on_200_201
_schema_on_200_201.id = AAZStrType(
flags={"read_only": True},
)
_schema_on_200_201.location = AAZStrType(
flags={"required": True},
)
_schema_on_200_201.name = AAZStrType(
flags={"read_only": True},
)
_schema_on_200_201.properties = AAZObjectType()
_schema_on_200_201.tags = AAZDictType()
_schema_on_200_201.type = AAZStrType(
flags={"read_only": True},
)

properties = cls._schema_on_200_201.properties
properties.applicable_host_endpoint = AAZStrType(
serialized_name="applicableHostEndpoint",
flags={"required": True},
)
properties.description = AAZStrType()
properties.os_type = AAZStrType(
serialized_name="osType",
flags={"required": True},
)
properties.provisioning_state = AAZStrType(
serialized_name="provisioningState",
flags={"read_only": True},
)

tags = cls._schema_on_200_201.tags
tags.Element = AAZStrType()

return cls._schema_on_200_201


class _CreateHelper:
"""Helper class for Create"""


__all__ = ["Create"]
Loading
Loading