Skip to content

Commit

Permalink
refactor command group: acat report
Browse files Browse the repository at this point in the history
  • Loading branch information
HuiquanJiang-ms committed Jul 4, 2024
1 parent ba15890 commit b45e108
Show file tree
Hide file tree
Showing 13 changed files with 2,177 additions and 2,366 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"app-compliance-automation",
)
class __CMDGroup(AAZCommandGroup):
"""ACAT command group
""" Manage App Compliance Automation Tool reports.
"""
pass

Expand Down
368 changes: 184 additions & 184 deletions src/acat/azext_acat/aaz/latest/app_compliance_automation/_onboard.py
Original file line number Diff line number Diff line change
@@ -1,184 +1,184 @@
# --------------------------------------------------------------------------------------------
# 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(
"app-compliance-automation onboard",
)
class Onboard(AAZCommand):
"""Onboard given subscriptions to Microsoft.AppComplianceAutomation provider.
"""

_aaz_info = {
"version": "2024-06-27",
"resources": [
["mgmt-plane", "/providers/microsoft.appcomplianceautomation/onboard", "2024-06-27"],
]
}

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 "Parameters"

_args_schema = cls._args_schema
_args_schema.subscription_ids = AAZListArg(
options=["--subscription-ids"],
arg_group="Parameters",
help="List of subscription ids to be onboarded",
required=True,
)

subscription_ids = cls._args_schema.subscription_ids
subscription_ids.Element = AAZStrArg()
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
yield self.ProviderActionsOnboard(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 ProviderActionsOnboard(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,
self.on_error,
lro_options={"final-state-via": "location"},
path_format_arguments=self.url_parameters,
)
if session.http_response.status_code in [200]:
return self.client.build_lro_polling(
self.ctx.args.no_wait,
session,
self.on_200,
self.on_error,
lro_options={"final-state-via": "location"},
path_format_arguments=self.url_parameters,
)

return self.on_error(session.http_response)

@property
def url(self):
return self.client.format_url(
"/providers/Microsoft.AppComplianceAutomation/onboard",
**self.url_parameters
)

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

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

@property
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2024-06-27",
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("subscriptionIds", AAZListType, ".subscription_ids", typ_kwargs={"flags": {"required": True}})

subscription_ids = _builder.get(".subscriptionIds")
if subscription_ids is not None:
subscription_ids.set_elements(AAZStrType, ".")

return self.serialize_content(_content_value)

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

_schema_on_200 = None

@classmethod
def _build_schema_on_200(cls):
if cls._schema_on_200 is not None:
return cls._schema_on_200

cls._schema_on_200 = AAZObjectType()

_schema_on_200 = cls._schema_on_200
_schema_on_200.subscription_ids = AAZListType(
serialized_name="subscriptionIds",
)

subscription_ids = cls._schema_on_200.subscription_ids
subscription_ids.Element = AAZStrType()

return cls._schema_on_200


class _OnboardHelper:
"""Helper class for Onboard"""


__all__ = ["Onboard"]
# --------------------------------------------------------------------------------------------
# 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(
"app-compliance-automation onboard",
)
class Onboard(AAZCommand):
"""Onboard given subscriptions to Microsoft.AppComplianceAutomation provider.
"""

_aaz_info = {
"version": "2024-06-27",
"resources": [
["mgmt-plane", "/providers/microsoft.appcomplianceautomation/onboard", "2024-06-27"],
]
}

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 "Parameters"

_args_schema = cls._args_schema
_args_schema.subscription_ids = AAZListArg(
options=["--subscription-ids"],
arg_group="Parameters",
help="List of subscription ids to be onboarded",
required=True,
)

subscription_ids = cls._args_schema.subscription_ids
subscription_ids.Element = AAZStrArg()
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
yield self.ProviderActionsOnboard(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 ProviderActionsOnboard(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,
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]:
return self.client.build_lro_polling(
self.ctx.args.no_wait,
session,
self.on_200,
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(
"/providers/Microsoft.AppComplianceAutomation/onboard",
**self.url_parameters
)

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

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

@property
def query_parameters(self):
parameters = {
**self.serialize_query_param(
"api-version", "2024-06-27",
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("subscriptionIds", AAZListType, ".subscription_ids", typ_kwargs={"flags": {"required": True}})

subscription_ids = _builder.get(".subscriptionIds")
if subscription_ids is not None:
subscription_ids.set_elements(AAZStrType, ".")

return self.serialize_content(_content_value)

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

_schema_on_200 = None

@classmethod
def _build_schema_on_200(cls):
if cls._schema_on_200 is not None:
return cls._schema_on_200

cls._schema_on_200 = AAZObjectType()

_schema_on_200 = cls._schema_on_200
_schema_on_200.subscription_ids = AAZListType(
serialized_name="subscriptionIds",
)

subscription_ids = cls._schema_on_200.subscription_ids
subscription_ids.Element = AAZStrType()

return cls._schema_on_200


class _OnboardHelper:
"""Helper class for Onboard"""


__all__ = ["Onboard"]
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"app-compliance-automation report",
)
class __CMDGroup(AAZCommandGroup):
"""manage ACAT reports
""" Manage App Compliance Automation Tool reports.
"""
pass

Expand Down
Loading

0 comments on commit b45e108

Please sign in to comment.