Skip to content
Open
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 @@ -6,4 +6,12 @@
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa
# 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
Expand Up @@ -22,9 +22,9 @@ class Create(AAZCommand):
"""

_aaz_info = {
"version": "2023-04-03",
"version": "2025-10-03",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.monitor/accounts/{}", "2023-04-03"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.monitor/accounts/{}", "2025-10-03"],
]
}

Expand Down Expand Up @@ -56,11 +56,49 @@ def _build_arguments_schema(cls, *args, **kwargs):
required=True,
)

# define Arg Group "AzureMonitorWorkspaceProperties"
# define Arg Group "Identity"

_args_schema = cls._args_schema
_args_schema.mi_system_assigned = AAZStrArg(
options=["--system-assigned", "--mi-system-assigned"],
arg_group="Identity",
help="Set the system managed identity.",
blank="True",
)
_args_schema.mi_user_assigned = AAZListArg(
options=["--user-assigned", "--mi-user-assigned"],
arg_group="Identity",
help="Set the user managed identities.",
blank=[],
)

mi_user_assigned = cls._args_schema.mi_user_assigned
mi_user_assigned.Element = AAZStrArg()

# define Arg Group "Metrics"

_args_schema = cls._args_schema
_args_schema.enable_access_using_resource_permissions = AAZBoolArg(
options=["--enable-access-using-resource-permissions", "--enable-res-perm"],
arg_group="Metrics",
help="Flag that indicates whether to enable access using resource permissions.",
)

# define Arg Group "Properties"

_args_schema = cls._args_schema
_args_schema.public_network_access = AAZStrArg(
options=["--public-network-access"],
arg_group="Properties",
help="Gets or sets allow or disallow public network access to Azure Monitor Workspace",
enum={"Disabled": "Disabled", "Enabled": "Enabled"},
)

# define Arg Group "Resource"

_args_schema = cls._args_schema
_args_schema.location = AAZResourceLocationArg(
arg_group="AzureMonitorWorkspaceProperties",
arg_group="Resource",
help="The geo-location where the resource lives",
required=True,
fmt=AAZResourceLocationArgFormat(
Expand All @@ -69,7 +107,7 @@ def _build_arguments_schema(cls, *args, **kwargs):
)
_args_schema.tags = AAZDictArg(
options=["--tags"],
arg_group="AzureMonitorWorkspaceProperties",
arg_group="Resource",
help="Resource tags.",
)

Expand All @@ -79,7 +117,7 @@ def _build_arguments_schema(cls, *args, **kwargs):

def _execute_operations(self):
self.pre_operations()
self.AzureMonitorWorkspacesCreate(ctx=self.ctx)()
self.AzureMonitorWorkspacesCreateOrUpdate(ctx=self.ctx)()
self.post_operations()

@register_callback
Expand All @@ -94,7 +132,7 @@ def _output(self, *args, **kwargs):
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
return result

class AzureMonitorWorkspacesCreate(AAZHttpOperation):
class AzureMonitorWorkspacesCreateOrUpdate(AAZHttpOperation):
CLIENT_TYPE = "MgmtClient"

def __call__(self, *args, **kwargs):
Expand Down Expand Up @@ -142,7 +180,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-04-03",
"api-version", "2025-10-03",
required=True,
),
}
Expand All @@ -167,9 +205,29 @@ def content(self):
typ=AAZObjectType,
typ_kwargs={"flags": {"required": True, "client_flatten": True}}
)
_builder.set_prop("identity", AAZIdentityObjectType)
_builder.set_prop("location", AAZStrType, ".location", typ_kwargs={"flags": {"required": True}})
_builder.set_prop("properties", AAZObjectType)
_builder.set_prop("tags", AAZDictType, ".tags")

identity = _builder.get(".identity")
if identity is not None:
identity.set_prop("userAssigned", AAZListType, ".mi_user_assigned", typ_kwargs={"flags": {"action": "create"}})
identity.set_prop("systemAssigned", AAZStrType, ".mi_system_assigned", typ_kwargs={"flags": {"action": "create"}})

user_assigned = _builder.get(".identity.userAssigned")
if user_assigned is not None:
user_assigned.set_elements(AAZStrType, ".")

properties = _builder.get(".properties")
if properties is not None:
properties.set_prop("metrics", AAZObjectType)
properties.set_prop("publicNetworkAccess", AAZStrType, ".public_network_access")

metrics = _builder.get(".properties.metrics")
if metrics is not None:
metrics.set_prop("enableAccessUsingResourcePermissions", AAZBoolType, ".enable_access_using_resource_permissions")

tags = _builder.get(".tags")
if tags is not None:
tags.set_elements(AAZStrType, ".")
Expand All @@ -194,12 +252,10 @@ def _build_schema_on_200_201(cls):
cls._schema_on_200_201 = AAZObjectType()

_schema_on_200_201 = cls._schema_on_200_201
_schema_on_200_201.etag = AAZStrType(
flags={"read_only": True},
)
_schema_on_200_201.id = AAZStrType(
flags={"read_only": True},
)
_schema_on_200_201.identity = AAZIdentityObjectType()
_schema_on_200_201.location = AAZStrType(
flags={"required": True},
)
Expand All @@ -219,6 +275,37 @@ def _build_schema_on_200_201(cls):
flags={"read_only": True},
)

identity = cls._schema_on_200_201.identity
identity.principal_id = AAZStrType(
serialized_name="principalId",
flags={"read_only": True},
)
identity.tenant_id = AAZStrType(
serialized_name="tenantId",
flags={"read_only": True},
)
identity.type = AAZStrType(
flags={"required": True},
)
identity.user_assigned_identities = AAZDictType(
serialized_name="userAssignedIdentities",
)

user_assigned_identities = cls._schema_on_200_201.identity.user_assigned_identities
user_assigned_identities.Element = AAZObjectType(
nullable=True,
)

_element = cls._schema_on_200_201.identity.user_assigned_identities.Element
_element.client_id = AAZStrType(
serialized_name="clientId",
flags={"read_only": True},
)
_element.principal_id = AAZStrType(
serialized_name="principalId",
flags={"read_only": True},
)

properties = cls._schema_on_200_201.properties
properties.account_id = AAZStrType(
serialized_name="accountId",
Expand All @@ -228,9 +315,7 @@ def _build_schema_on_200_201(cls):
serialized_name="defaultIngestionSettings",
flags={"read_only": True},
)
properties.metrics = AAZObjectType(
flags={"read_only": True},
)
properties.metrics = AAZObjectType()
properties.private_endpoint_connections = AAZListType(
serialized_name="privateEndpointConnections",
flags={"read_only": True},
Expand All @@ -241,20 +326,35 @@ def _build_schema_on_200_201(cls):
)
properties.public_network_access = AAZStrType(
serialized_name="publicNetworkAccess",
flags={"read_only": True},
)

default_ingestion_settings = cls._schema_on_200_201.properties.default_ingestion_settings
default_ingestion_settings.data_collection_endpoint_resource_id = AAZStrType(
serialized_name="dataCollectionEndpointResourceId",
flags={"read_only": True},
)
default_ingestion_settings.data_collection_rule_immutable_id = AAZStrType(
serialized_name="dataCollectionRuleImmutableId",
flags={"read_only": True},
)
default_ingestion_settings.data_collection_rule_resource_id = AAZStrType(
serialized_name="dataCollectionRuleResourceId",
flags={"read_only": True},
)
default_ingestion_settings.ingestion_endpoints = AAZObjectType(
serialized_name="ingestionEndpoints",
flags={"read_only": True},
)

ingestion_endpoints = cls._schema_on_200_201.properties.default_ingestion_settings.ingestion_endpoints
ingestion_endpoints.metrics = AAZStrType(
flags={"read_only": True},
)

metrics = cls._schema_on_200_201.properties.metrics
metrics.enable_access_using_resource_permissions = AAZBoolType(
serialized_name="enableAccessUsingResourcePermissions",
)
metrics.internal_id = AAZStrType(
serialized_name="internalId",
flags={"read_only": True},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ class Delete(AAZCommand):
"""

_aaz_info = {
"version": "2023-04-03",
"version": "2025-10-03",
"resources": [
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.monitor/accounts/{}", "2023-04-03"],
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.monitor/accounts/{}", "2025-10-03"],
]
}

Expand Down Expand Up @@ -83,7 +83,7 @@ def __call__(self, *args, **kwargs):
return self.client.build_lro_polling(
self.ctx.args.no_wait,
session,
None,
self.on_200_201,
self.on_error,
lro_options={"final-state-via": "location"},
path_format_arguments=self.url_parameters,
Expand All @@ -97,6 +97,15 @@ def __call__(self, *args, **kwargs):
lro_options={"final-state-via": "location"},
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": "location"},
path_format_arguments=self.url_parameters,
)

return self.on_error(session.http_response)

Expand Down Expand Up @@ -137,7 +146,7 @@ def url_parameters(self):
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2023-04-03",
"api-version", "2025-10-03",
required=True,
),
}
Expand All @@ -146,6 +155,9 @@ def query_parameters(self):
def on_204(self, session):
pass

def on_200_201(self, session):
pass


class _DeleteHelper:
"""Helper class for Delete"""
Expand Down
Loading
Loading