diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/__init__.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/__init__.py index acf6eca04eb0..e0ffd97a80d7 100644 --- a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/__init__.py +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/__init__.py @@ -10,10 +10,20 @@ # -------------------------------------------------------------------------- try: - from .policy_event_py3 import PolicyEvent - from .policy_events_query_results_py3 import PolicyEventsQueryResults + from .policy_details_py3 import PolicyDetails + from .tracked_resource_modification_details_py3 import TrackedResourceModificationDetails + from .policy_tracked_resource_py3 import PolicyTrackedResource from .query_failure_error_py3 import QueryFailureError from .query_failure_py3 import QueryFailure, QueryFailureException + from .remediation_filters_py3 import RemediationFilters + from .remediation_deployment_summary_py3 import RemediationDeploymentSummary + from .remediation_py3 import Remediation + from .typed_error_info_py3 import TypedErrorInfo + from .error_definition_py3 import ErrorDefinition + from .remediation_deployment_py3 import RemediationDeployment + from .error_response_py3 import ErrorResponse, ErrorResponseException + from .policy_event_py3 import PolicyEvent + from .policy_events_query_results_py3 import PolicyEventsQueryResults from .policy_state_py3 import PolicyState from .policy_states_query_results_py3 import PolicyStatesQueryResults from .summary_results_py3 import SummaryResults @@ -26,10 +36,20 @@ from .operations_list_results_py3 import OperationsListResults from .query_options_py3 import QueryOptions except (SyntaxError, ImportError): - from .policy_event import PolicyEvent - from .policy_events_query_results import PolicyEventsQueryResults + from .policy_details import PolicyDetails + from .tracked_resource_modification_details import TrackedResourceModificationDetails + from .policy_tracked_resource import PolicyTrackedResource from .query_failure_error import QueryFailureError from .query_failure import QueryFailure, QueryFailureException + from .remediation_filters import RemediationFilters + from .remediation_deployment_summary import RemediationDeploymentSummary + from .remediation import Remediation + from .typed_error_info import TypedErrorInfo + from .error_definition import ErrorDefinition + from .remediation_deployment import RemediationDeployment + from .error_response import ErrorResponse, ErrorResponseException + from .policy_event import PolicyEvent + from .policy_events_query_results import PolicyEventsQueryResults from .policy_state import PolicyState from .policy_states_query_results import PolicyStatesQueryResults from .summary_results import SummaryResults @@ -41,15 +61,28 @@ from .operation import Operation from .operations_list_results import OperationsListResults from .query_options import QueryOptions +from .policy_tracked_resource_paged import PolicyTrackedResourcePaged +from .remediation_deployment_paged import RemediationDeploymentPaged +from .remediation_paged import RemediationPaged from .policy_insights_client_enums import ( PolicyStatesResource, ) __all__ = [ - 'PolicyEvent', - 'PolicyEventsQueryResults', + 'PolicyDetails', + 'TrackedResourceModificationDetails', + 'PolicyTrackedResource', 'QueryFailureError', 'QueryFailure', 'QueryFailureException', + 'RemediationFilters', + 'RemediationDeploymentSummary', + 'Remediation', + 'TypedErrorInfo', + 'ErrorDefinition', + 'RemediationDeployment', + 'ErrorResponse', 'ErrorResponseException', + 'PolicyEvent', + 'PolicyEventsQueryResults', 'PolicyState', 'PolicyStatesQueryResults', 'SummaryResults', @@ -61,5 +94,8 @@ 'Operation', 'OperationsListResults', 'QueryOptions', + 'PolicyTrackedResourcePaged', + 'RemediationDeploymentPaged', + 'RemediationPaged', 'PolicyStatesResource', ] diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_definition.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_definition.py new file mode 100644 index 000000000000..5db16d77dfd0 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_definition.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ErrorDefinition(Model): + """Error definition. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar code: Service specific error code which serves as the substatus for + the HTTP error code. + :vartype code: str + :ivar message: Description of the error. + :vartype message: str + :ivar target: The target of the error. + :vartype target: str + :ivar details: Internal error details. + :vartype details: list[~azure.mgmt.policyinsights.models.ErrorDefinition] + :ivar additional_info: Additional scenario specific error details. + :vartype additional_info: + list[~azure.mgmt.policyinsights.models.TypedErrorInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorDefinition]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[TypedErrorInfo]'}, + } + + def __init__(self, **kwargs): + super(ErrorDefinition, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_definition_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_definition_py3.py new file mode 100644 index 000000000000..1f738968b1b5 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_definition_py3.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ErrorDefinition(Model): + """Error definition. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar code: Service specific error code which serves as the substatus for + the HTTP error code. + :vartype code: str + :ivar message: Description of the error. + :vartype message: str + :ivar target: The target of the error. + :vartype target: str + :ivar details: Internal error details. + :vartype details: list[~azure.mgmt.policyinsights.models.ErrorDefinition] + :ivar additional_info: Additional scenario specific error details. + :vartype additional_info: + list[~azure.mgmt.policyinsights.models.TypedErrorInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorDefinition]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[TypedErrorInfo]'}, + } + + def __init__(self, **kwargs) -> None: + super(ErrorDefinition, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_response.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_response.py new file mode 100644 index 000000000000..452e5656cf24 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_response.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class ErrorResponse(Model): + """Error response. + + :param error: The error details. + :type error: ~azure.mgmt.policyinsights.models.ErrorDefinition + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorDefinition'}, + } + + def __init__(self, **kwargs): + super(ErrorResponse, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class ErrorResponseException(HttpOperationError): + """Server responsed with exception of type: 'ErrorResponse'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_response_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_response_py3.py new file mode 100644 index 000000000000..01f79dd5417f --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/error_response_py3.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class ErrorResponse(Model): + """Error response. + + :param error: The error details. + :type error: ~azure.mgmt.policyinsights.models.ErrorDefinition + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorDefinition'}, + } + + def __init__(self, *, error=None, **kwargs) -> None: + super(ErrorResponse, self).__init__(**kwargs) + self.error = error + + +class ErrorResponseException(HttpOperationError): + """Server responsed with exception of type: 'ErrorResponse'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_details.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_details.py new file mode 100644 index 000000000000..d9c9e495a002 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_details.py @@ -0,0 +1,62 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PolicyDetails(Model): + """The policy details. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar policy_definition_id: The ID of the policy definition. + :vartype policy_definition_id: str + :ivar policy_assignment_id: The ID of the policy assignment. + :vartype policy_assignment_id: str + :ivar policy_assignment_display_name: The display name of the policy + assignment. + :vartype policy_assignment_display_name: str + :ivar policy_assignment_scope: The scope of the policy assignment. + :vartype policy_assignment_scope: str + :ivar policy_set_definition_id: The ID of the policy set definition. + :vartype policy_set_definition_id: str + :ivar policy_definition_reference_id: The policy definition reference ID + within the policy set definition. + :vartype policy_definition_reference_id: str + """ + + _validation = { + 'policy_definition_id': {'readonly': True}, + 'policy_assignment_id': {'readonly': True}, + 'policy_assignment_display_name': {'readonly': True}, + 'policy_assignment_scope': {'readonly': True}, + 'policy_set_definition_id': {'readonly': True}, + 'policy_definition_reference_id': {'readonly': True}, + } + + _attribute_map = { + 'policy_definition_id': {'key': 'policyDefinitionId', 'type': 'str'}, + 'policy_assignment_id': {'key': 'policyAssignmentId', 'type': 'str'}, + 'policy_assignment_display_name': {'key': 'policyAssignmentDisplayName', 'type': 'str'}, + 'policy_assignment_scope': {'key': 'policyAssignmentScope', 'type': 'str'}, + 'policy_set_definition_id': {'key': 'policySetDefinitionId', 'type': 'str'}, + 'policy_definition_reference_id': {'key': 'policyDefinitionReferenceId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PolicyDetails, self).__init__(**kwargs) + self.policy_definition_id = None + self.policy_assignment_id = None + self.policy_assignment_display_name = None + self.policy_assignment_scope = None + self.policy_set_definition_id = None + self.policy_definition_reference_id = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_details_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_details_py3.py new file mode 100644 index 000000000000..887d3739dc8c --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_details_py3.py @@ -0,0 +1,62 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PolicyDetails(Model): + """The policy details. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar policy_definition_id: The ID of the policy definition. + :vartype policy_definition_id: str + :ivar policy_assignment_id: The ID of the policy assignment. + :vartype policy_assignment_id: str + :ivar policy_assignment_display_name: The display name of the policy + assignment. + :vartype policy_assignment_display_name: str + :ivar policy_assignment_scope: The scope of the policy assignment. + :vartype policy_assignment_scope: str + :ivar policy_set_definition_id: The ID of the policy set definition. + :vartype policy_set_definition_id: str + :ivar policy_definition_reference_id: The policy definition reference ID + within the policy set definition. + :vartype policy_definition_reference_id: str + """ + + _validation = { + 'policy_definition_id': {'readonly': True}, + 'policy_assignment_id': {'readonly': True}, + 'policy_assignment_display_name': {'readonly': True}, + 'policy_assignment_scope': {'readonly': True}, + 'policy_set_definition_id': {'readonly': True}, + 'policy_definition_reference_id': {'readonly': True}, + } + + _attribute_map = { + 'policy_definition_id': {'key': 'policyDefinitionId', 'type': 'str'}, + 'policy_assignment_id': {'key': 'policyAssignmentId', 'type': 'str'}, + 'policy_assignment_display_name': {'key': 'policyAssignmentDisplayName', 'type': 'str'}, + 'policy_assignment_scope': {'key': 'policyAssignmentScope', 'type': 'str'}, + 'policy_set_definition_id': {'key': 'policySetDefinitionId', 'type': 'str'}, + 'policy_definition_reference_id': {'key': 'policyDefinitionReferenceId', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(PolicyDetails, self).__init__(**kwargs) + self.policy_definition_id = None + self.policy_assignment_id = None + self.policy_assignment_display_name = None + self.policy_assignment_scope = None + self.policy_set_definition_id = None + self.policy_definition_reference_id = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource.py new file mode 100644 index 000000000000..f8d0c7793960 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PolicyTrackedResource(Model): + """Policy tracked resource record. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar tracked_resource_id: The ID of the policy tracked resource. + :vartype tracked_resource_id: str + :ivar policy_details: The details of the policy that require the tracked + resource. + :vartype policy_details: ~azure.mgmt.policyinsights.models.PolicyDetails + :ivar created_by: The details of the policy triggered deployment that + created the tracked resource. + :vartype created_by: + ~azure.mgmt.policyinsights.models.TrackedResourceModificationDetails + :ivar last_modified_by: The details of the policy triggered deployment + that modified the tracked resource. + :vartype last_modified_by: + ~azure.mgmt.policyinsights.models.TrackedResourceModificationDetails + :ivar last_update_utc: Timestamp of the last update to the tracked + resource. + :vartype last_update_utc: datetime + """ + + _validation = { + 'tracked_resource_id': {'readonly': True}, + 'policy_details': {'readonly': True}, + 'created_by': {'readonly': True}, + 'last_modified_by': {'readonly': True}, + 'last_update_utc': {'readonly': True}, + } + + _attribute_map = { + 'tracked_resource_id': {'key': 'trackedResourceId', 'type': 'str'}, + 'policy_details': {'key': 'policyDetails', 'type': 'PolicyDetails'}, + 'created_by': {'key': 'createdBy', 'type': 'TrackedResourceModificationDetails'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'TrackedResourceModificationDetails'}, + 'last_update_utc': {'key': 'lastUpdateUtc', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(PolicyTrackedResource, self).__init__(**kwargs) + self.tracked_resource_id = None + self.policy_details = None + self.created_by = None + self.last_modified_by = None + self.last_update_utc = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource_paged.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource_paged.py new file mode 100644 index 000000000000..f249fd9fbaec --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class PolicyTrackedResourcePaged(Paged): + """ + A paging container for iterating over a list of :class:`PolicyTrackedResource ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[PolicyTrackedResource]'} + } + + def __init__(self, *args, **kwargs): + + super(PolicyTrackedResourcePaged, self).__init__(*args, **kwargs) diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource_py3.py new file mode 100644 index 000000000000..b1f79def491a --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/policy_tracked_resource_py3.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PolicyTrackedResource(Model): + """Policy tracked resource record. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar tracked_resource_id: The ID of the policy tracked resource. + :vartype tracked_resource_id: str + :ivar policy_details: The details of the policy that require the tracked + resource. + :vartype policy_details: ~azure.mgmt.policyinsights.models.PolicyDetails + :ivar created_by: The details of the policy triggered deployment that + created the tracked resource. + :vartype created_by: + ~azure.mgmt.policyinsights.models.TrackedResourceModificationDetails + :ivar last_modified_by: The details of the policy triggered deployment + that modified the tracked resource. + :vartype last_modified_by: + ~azure.mgmt.policyinsights.models.TrackedResourceModificationDetails + :ivar last_update_utc: Timestamp of the last update to the tracked + resource. + :vartype last_update_utc: datetime + """ + + _validation = { + 'tracked_resource_id': {'readonly': True}, + 'policy_details': {'readonly': True}, + 'created_by': {'readonly': True}, + 'last_modified_by': {'readonly': True}, + 'last_update_utc': {'readonly': True}, + } + + _attribute_map = { + 'tracked_resource_id': {'key': 'trackedResourceId', 'type': 'str'}, + 'policy_details': {'key': 'policyDetails', 'type': 'PolicyDetails'}, + 'created_by': {'key': 'createdBy', 'type': 'TrackedResourceModificationDetails'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'TrackedResourceModificationDetails'}, + 'last_update_utc': {'key': 'lastUpdateUtc', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs) -> None: + super(PolicyTrackedResource, self).__init__(**kwargs) + self.tracked_resource_id = None + self.policy_details = None + self.created_by = None + self.last_modified_by = None + self.last_update_utc = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_failure_error.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_failure_error.py index 6fea350785bf..7d01c5d2831f 100644 --- a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_failure_error.py +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_failure_error.py @@ -15,13 +15,21 @@ class QueryFailureError(Model): """Error definition. - :param code: Service specific error code which serves as the substatus for + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar code: Service specific error code which serves as the substatus for the HTTP error code. - :type code: str - :param message: Description of the error. - :type message: str + :vartype code: str + :ivar message: Description of the error. + :vartype message: str """ + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + } + _attribute_map = { 'code': {'key': 'code', 'type': 'str'}, 'message': {'key': 'message', 'type': 'str'}, @@ -29,5 +37,5 @@ class QueryFailureError(Model): def __init__(self, **kwargs): super(QueryFailureError, self).__init__(**kwargs) - self.code = kwargs.get('code', None) - self.message = kwargs.get('message', None) + self.code = None + self.message = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_failure_error_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_failure_error_py3.py index 40d0b77dc4c9..e06ddaf31356 100644 --- a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_failure_error_py3.py +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_failure_error_py3.py @@ -15,19 +15,27 @@ class QueryFailureError(Model): """Error definition. - :param code: Service specific error code which serves as the substatus for + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar code: Service specific error code which serves as the substatus for the HTTP error code. - :type code: str - :param message: Description of the error. - :type message: str + :vartype code: str + :ivar message: Description of the error. + :vartype message: str """ + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + } + _attribute_map = { 'code': {'key': 'code', 'type': 'str'}, 'message': {'key': 'message', 'type': 'str'}, } - def __init__(self, *, code: str=None, message: str=None, **kwargs) -> None: + def __init__(self, **kwargs) -> None: super(QueryFailureError, self).__init__(**kwargs) - self.code = code - self.message = message + self.code = None + self.message = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_options.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_options.py index 6e245f40e72b..c40d8684b069 100644 --- a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_options.py +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_options.py @@ -17,6 +17,8 @@ class QueryOptions(Model): :param top: Maximum number of records to return. :type top: int + :param filter: OData filter expression. + :type filter: str :param order_by: Ordering expression using OData notation. One or more comma-separated column names with an optional "desc" (the default) or "asc", e.g. "$orderby=PolicyAssignmentId, ResourceId asc". @@ -32,28 +34,26 @@ class QueryOptions(Model): :param to: ISO 8601 formatted timestamp specifying the end time of the interval to query. When not specified, the service uses request time. :type to: datetime - :param filter: OData filter expression. - :type filter: str :param apply: OData apply expression for aggregations. :type apply: str """ _attribute_map = { 'top': {'key': '', 'type': 'int'}, + 'filter': {'key': '', 'type': 'str'}, 'order_by': {'key': '', 'type': 'str'}, 'select': {'key': '', 'type': 'str'}, 'from_property': {'key': '', 'type': 'iso-8601'}, 'to': {'key': '', 'type': 'iso-8601'}, - 'filter': {'key': '', 'type': 'str'}, 'apply': {'key': '', 'type': 'str'}, } def __init__(self, **kwargs): super(QueryOptions, self).__init__(**kwargs) self.top = kwargs.get('top', None) + self.filter = kwargs.get('filter', None) self.order_by = kwargs.get('order_by', None) self.select = kwargs.get('select', None) self.from_property = kwargs.get('from_property', None) self.to = kwargs.get('to', None) - self.filter = kwargs.get('filter', None) self.apply = kwargs.get('apply', None) diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_options_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_options_py3.py index fde9a44d983e..8629761f5dba 100644 --- a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_options_py3.py +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/query_options_py3.py @@ -17,6 +17,8 @@ class QueryOptions(Model): :param top: Maximum number of records to return. :type top: int + :param filter: OData filter expression. + :type filter: str :param order_by: Ordering expression using OData notation. One or more comma-separated column names with an optional "desc" (the default) or "asc", e.g. "$orderby=PolicyAssignmentId, ResourceId asc". @@ -32,28 +34,26 @@ class QueryOptions(Model): :param to: ISO 8601 formatted timestamp specifying the end time of the interval to query. When not specified, the service uses request time. :type to: datetime - :param filter: OData filter expression. - :type filter: str :param apply: OData apply expression for aggregations. :type apply: str """ _attribute_map = { 'top': {'key': '', 'type': 'int'}, + 'filter': {'key': '', 'type': 'str'}, 'order_by': {'key': '', 'type': 'str'}, 'select': {'key': '', 'type': 'str'}, 'from_property': {'key': '', 'type': 'iso-8601'}, 'to': {'key': '', 'type': 'iso-8601'}, - 'filter': {'key': '', 'type': 'str'}, 'apply': {'key': '', 'type': 'str'}, } - def __init__(self, *, top: int=None, order_by: str=None, select: str=None, from_property=None, to=None, filter: str=None, apply: str=None, **kwargs) -> None: + def __init__(self, *, top: int=None, filter: str=None, order_by: str=None, select: str=None, from_property=None, to=None, apply: str=None, **kwargs) -> None: super(QueryOptions, self).__init__(**kwargs) self.top = top + self.filter = filter self.order_by = order_by self.select = select self.from_property = from_property self.to = to - self.filter = filter self.apply = apply diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation.py new file mode 100644 index 000000000000..920663960ec0 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation.py @@ -0,0 +1,82 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class Remediation(Model): + """The remediation definition. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param policy_assignment_id: The resource ID of the policy assignment that + should be remediated. + :type policy_assignment_id: str + :param policy_definition_reference_id: The policy definition reference ID + of the individual definition that should be remediated. Required when the + policy assignment being remediated assigns a policy set definition. + :type policy_definition_reference_id: str + :ivar provisioning_state: The status of the remediation. + :vartype provisioning_state: str + :ivar created_on: The time at which the remediation was created. + :vartype created_on: datetime + :ivar last_updated_on: The time at which the remediation was last updated. + :vartype last_updated_on: datetime + :param filters: The filters that will be applied to determine which + resources to remediate. + :type filters: ~azure.mgmt.policyinsights.models.RemediationFilters + :param deployment_status: The deployment status summary for all + deplyoments created by the remediation. + :type deployment_status: + ~azure.mgmt.policyinsights.models.RemediationDeploymentSummary + :ivar id: The ID of the remediation. + :vartype id: str + :ivar type: The type of the remediation. + :vartype type: str + :ivar name: The name of the remediation. + :vartype name: str + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + 'created_on': {'readonly': True}, + 'last_updated_on': {'readonly': True}, + 'id': {'readonly': True}, + 'type': {'readonly': True}, + 'name': {'readonly': True}, + } + + _attribute_map = { + 'policy_assignment_id': {'key': 'properties.policyAssignmentId', 'type': 'str'}, + 'policy_definition_reference_id': {'key': 'properties.policyDefinitionReferenceId', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + 'last_updated_on': {'key': 'properties.lastUpdatedOn', 'type': 'iso-8601'}, + 'filters': {'key': 'properties.filters', 'type': 'RemediationFilters'}, + 'deployment_status': {'key': 'properties.deploymentStatus', 'type': 'RemediationDeploymentSummary'}, + 'id': {'key': 'id', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(Remediation, self).__init__(**kwargs) + self.policy_assignment_id = kwargs.get('policy_assignment_id', None) + self.policy_definition_reference_id = kwargs.get('policy_definition_reference_id', None) + self.provisioning_state = None + self.created_on = None + self.last_updated_on = None + self.filters = kwargs.get('filters', None) + self.deployment_status = kwargs.get('deployment_status', None) + self.id = None + self.type = None + self.name = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment.py new file mode 100644 index 000000000000..d005e810831f --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment.py @@ -0,0 +1,69 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RemediationDeployment(Model): + """Details of a single deployment created by the remediation. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar remediated_resource_id: Resource ID of the resource that is being + remediated by the deployment. + :vartype remediated_resource_id: str + :ivar deployment_id: Resource ID of the template deployment that will + remediate the resource. + :vartype deployment_id: str + :ivar status: Status of the remediation deployment. + :vartype status: str + :ivar resource_location: Location of the resource that is being + remediated. + :vartype resource_location: str + :ivar error: Error encountered while remediated the resource. + :vartype error: ~azure.mgmt.policyinsights.models.ErrorDefinition + :ivar created_on: The time at which the remediation was created. + :vartype created_on: datetime + :ivar last_updated_on: The time at which the remediation deployment was + last updated. + :vartype last_updated_on: datetime + """ + + _validation = { + 'remediated_resource_id': {'readonly': True}, + 'deployment_id': {'readonly': True}, + 'status': {'readonly': True}, + 'resource_location': {'readonly': True}, + 'error': {'readonly': True}, + 'created_on': {'readonly': True}, + 'last_updated_on': {'readonly': True}, + } + + _attribute_map = { + 'remediated_resource_id': {'key': 'remediatedResourceId', 'type': 'str'}, + 'deployment_id': {'key': 'deploymentId', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'resource_location': {'key': 'resourceLocation', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'ErrorDefinition'}, + 'created_on': {'key': 'createdOn', 'type': 'iso-8601'}, + 'last_updated_on': {'key': 'lastUpdatedOn', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(RemediationDeployment, self).__init__(**kwargs) + self.remediated_resource_id = None + self.deployment_id = None + self.status = None + self.resource_location = None + self.error = None + self.created_on = None + self.last_updated_on = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_paged.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_paged.py new file mode 100644 index 000000000000..835f41f847f0 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class RemediationDeploymentPaged(Paged): + """ + A paging container for iterating over a list of :class:`RemediationDeployment ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[RemediationDeployment]'} + } + + def __init__(self, *args, **kwargs): + + super(RemediationDeploymentPaged, self).__init__(*args, **kwargs) diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_py3.py new file mode 100644 index 000000000000..0f12eb73f89e --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_py3.py @@ -0,0 +1,69 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RemediationDeployment(Model): + """Details of a single deployment created by the remediation. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar remediated_resource_id: Resource ID of the resource that is being + remediated by the deployment. + :vartype remediated_resource_id: str + :ivar deployment_id: Resource ID of the template deployment that will + remediate the resource. + :vartype deployment_id: str + :ivar status: Status of the remediation deployment. + :vartype status: str + :ivar resource_location: Location of the resource that is being + remediated. + :vartype resource_location: str + :ivar error: Error encountered while remediated the resource. + :vartype error: ~azure.mgmt.policyinsights.models.ErrorDefinition + :ivar created_on: The time at which the remediation was created. + :vartype created_on: datetime + :ivar last_updated_on: The time at which the remediation deployment was + last updated. + :vartype last_updated_on: datetime + """ + + _validation = { + 'remediated_resource_id': {'readonly': True}, + 'deployment_id': {'readonly': True}, + 'status': {'readonly': True}, + 'resource_location': {'readonly': True}, + 'error': {'readonly': True}, + 'created_on': {'readonly': True}, + 'last_updated_on': {'readonly': True}, + } + + _attribute_map = { + 'remediated_resource_id': {'key': 'remediatedResourceId', 'type': 'str'}, + 'deployment_id': {'key': 'deploymentId', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'resource_location': {'key': 'resourceLocation', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'ErrorDefinition'}, + 'created_on': {'key': 'createdOn', 'type': 'iso-8601'}, + 'last_updated_on': {'key': 'lastUpdatedOn', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs) -> None: + super(RemediationDeployment, self).__init__(**kwargs) + self.remediated_resource_id = None + self.deployment_id = None + self.status = None + self.resource_location = None + self.error = None + self.created_on = None + self.last_updated_on = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_summary.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_summary.py new file mode 100644 index 000000000000..6ecee60d75d7 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_summary.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RemediationDeploymentSummary(Model): + """The deployment status summary for all deplyoments created by the + remediation. + + :param total_deployments: The number of deployments required by the + remediation. + :type total_deployments: int + :param successful_deployments: The number of deployments required by the + remediation that have succeeded. + :type successful_deployments: int + :param failed_deployments: The number of deployments required by the + remediation that have failed. + :type failed_deployments: int + """ + + _attribute_map = { + 'total_deployments': {'key': 'totalDeployments', 'type': 'int'}, + 'successful_deployments': {'key': 'successfulDeployments', 'type': 'int'}, + 'failed_deployments': {'key': 'failedDeployments', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(RemediationDeploymentSummary, self).__init__(**kwargs) + self.total_deployments = kwargs.get('total_deployments', None) + self.successful_deployments = kwargs.get('successful_deployments', None) + self.failed_deployments = kwargs.get('failed_deployments', None) diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_summary_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_summary_py3.py new file mode 100644 index 000000000000..c1ea1a83a443 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_deployment_summary_py3.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RemediationDeploymentSummary(Model): + """The deployment status summary for all deplyoments created by the + remediation. + + :param total_deployments: The number of deployments required by the + remediation. + :type total_deployments: int + :param successful_deployments: The number of deployments required by the + remediation that have succeeded. + :type successful_deployments: int + :param failed_deployments: The number of deployments required by the + remediation that have failed. + :type failed_deployments: int + """ + + _attribute_map = { + 'total_deployments': {'key': 'totalDeployments', 'type': 'int'}, + 'successful_deployments': {'key': 'successfulDeployments', 'type': 'int'}, + 'failed_deployments': {'key': 'failedDeployments', 'type': 'int'}, + } + + def __init__(self, *, total_deployments: int=None, successful_deployments: int=None, failed_deployments: int=None, **kwargs) -> None: + super(RemediationDeploymentSummary, self).__init__(**kwargs) + self.total_deployments = total_deployments + self.successful_deployments = successful_deployments + self.failed_deployments = failed_deployments diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_filters.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_filters.py new file mode 100644 index 000000000000..3dec242259bf --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_filters.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RemediationFilters(Model): + """The filters that will be applied to determine which resources to remediate. + + :param locations: The resource locations that will be remediated. + :type locations: list[str] + """ + + _attribute_map = { + 'locations': {'key': 'locations', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(RemediationFilters, self).__init__(**kwargs) + self.locations = kwargs.get('locations', None) diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_filters_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_filters_py3.py new file mode 100644 index 000000000000..ac0ee67e69c0 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_filters_py3.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RemediationFilters(Model): + """The filters that will be applied to determine which resources to remediate. + + :param locations: The resource locations that will be remediated. + :type locations: list[str] + """ + + _attribute_map = { + 'locations': {'key': 'locations', 'type': '[str]'}, + } + + def __init__(self, *, locations=None, **kwargs) -> None: + super(RemediationFilters, self).__init__(**kwargs) + self.locations = locations diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_paged.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_paged.py new file mode 100644 index 000000000000..5eb6c80b3961 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class RemediationPaged(Paged): + """ + A paging container for iterating over a list of :class:`Remediation ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[Remediation]'} + } + + def __init__(self, *args, **kwargs): + + super(RemediationPaged, self).__init__(*args, **kwargs) diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_py3.py new file mode 100644 index 000000000000..61aa6461ba6b --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/remediation_py3.py @@ -0,0 +1,82 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class Remediation(Model): + """The remediation definition. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param policy_assignment_id: The resource ID of the policy assignment that + should be remediated. + :type policy_assignment_id: str + :param policy_definition_reference_id: The policy definition reference ID + of the individual definition that should be remediated. Required when the + policy assignment being remediated assigns a policy set definition. + :type policy_definition_reference_id: str + :ivar provisioning_state: The status of the remediation. + :vartype provisioning_state: str + :ivar created_on: The time at which the remediation was created. + :vartype created_on: datetime + :ivar last_updated_on: The time at which the remediation was last updated. + :vartype last_updated_on: datetime + :param filters: The filters that will be applied to determine which + resources to remediate. + :type filters: ~azure.mgmt.policyinsights.models.RemediationFilters + :param deployment_status: The deployment status summary for all + deplyoments created by the remediation. + :type deployment_status: + ~azure.mgmt.policyinsights.models.RemediationDeploymentSummary + :ivar id: The ID of the remediation. + :vartype id: str + :ivar type: The type of the remediation. + :vartype type: str + :ivar name: The name of the remediation. + :vartype name: str + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + 'created_on': {'readonly': True}, + 'last_updated_on': {'readonly': True}, + 'id': {'readonly': True}, + 'type': {'readonly': True}, + 'name': {'readonly': True}, + } + + _attribute_map = { + 'policy_assignment_id': {'key': 'properties.policyAssignmentId', 'type': 'str'}, + 'policy_definition_reference_id': {'key': 'properties.policyDefinitionReferenceId', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + 'last_updated_on': {'key': 'properties.lastUpdatedOn', 'type': 'iso-8601'}, + 'filters': {'key': 'properties.filters', 'type': 'RemediationFilters'}, + 'deployment_status': {'key': 'properties.deploymentStatus', 'type': 'RemediationDeploymentSummary'}, + 'id': {'key': 'id', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__(self, *, policy_assignment_id: str=None, policy_definition_reference_id: str=None, filters=None, deployment_status=None, **kwargs) -> None: + super(Remediation, self).__init__(**kwargs) + self.policy_assignment_id = policy_assignment_id + self.policy_definition_reference_id = policy_definition_reference_id + self.provisioning_state = None + self.created_on = None + self.last_updated_on = None + self.filters = filters + self.deployment_status = deployment_status + self.id = None + self.type = None + self.name = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/tracked_resource_modification_details.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/tracked_resource_modification_details.py new file mode 100644 index 000000000000..471f19393d20 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/tracked_resource_modification_details.py @@ -0,0 +1,49 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TrackedResourceModificationDetails(Model): + """The details of the policy triggered deployment that created or modified the + tracked resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar policy_details: The details of the policy that created or modified + the tracked resource. + :vartype policy_details: ~azure.mgmt.policyinsights.models.PolicyDetails + :ivar deployment_id: The ID of the deployment that created or modified the + tracked resource. + :vartype deployment_id: str + :ivar deployment_time: Timestamp of the deployment that created or + modified the tracked resource. + :vartype deployment_time: datetime + """ + + _validation = { + 'policy_details': {'readonly': True}, + 'deployment_id': {'readonly': True}, + 'deployment_time': {'readonly': True}, + } + + _attribute_map = { + 'policy_details': {'key': 'policyDetails', 'type': 'PolicyDetails'}, + 'deployment_id': {'key': 'deploymentId', 'type': 'str'}, + 'deployment_time': {'key': 'deploymentTime', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(TrackedResourceModificationDetails, self).__init__(**kwargs) + self.policy_details = None + self.deployment_id = None + self.deployment_time = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/tracked_resource_modification_details_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/tracked_resource_modification_details_py3.py new file mode 100644 index 000000000000..afdbf4b87bac --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/tracked_resource_modification_details_py3.py @@ -0,0 +1,49 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TrackedResourceModificationDetails(Model): + """The details of the policy triggered deployment that created or modified the + tracked resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar policy_details: The details of the policy that created or modified + the tracked resource. + :vartype policy_details: ~azure.mgmt.policyinsights.models.PolicyDetails + :ivar deployment_id: The ID of the deployment that created or modified the + tracked resource. + :vartype deployment_id: str + :ivar deployment_time: Timestamp of the deployment that created or + modified the tracked resource. + :vartype deployment_time: datetime + """ + + _validation = { + 'policy_details': {'readonly': True}, + 'deployment_id': {'readonly': True}, + 'deployment_time': {'readonly': True}, + } + + _attribute_map = { + 'policy_details': {'key': 'policyDetails', 'type': 'PolicyDetails'}, + 'deployment_id': {'key': 'deploymentId', 'type': 'str'}, + 'deployment_time': {'key': 'deploymentTime', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs) -> None: + super(TrackedResourceModificationDetails, self).__init__(**kwargs) + self.policy_details = None + self.deployment_id = None + self.deployment_time = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/typed_error_info.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/typed_error_info.py new file mode 100644 index 000000000000..a6f6075fb316 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/typed_error_info.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TypedErrorInfo(Model): + """Scenario specific error details. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar type: The type of included error details. + :vartype type: str + :ivar info: The scenario specific error details. + :vartype info: object + """ + + _validation = { + 'type': {'readonly': True}, + 'info': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'info': {'key': 'info', 'type': 'object'}, + } + + def __init__(self, **kwargs): + super(TypedErrorInfo, self).__init__(**kwargs) + self.type = None + self.info = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/typed_error_info_py3.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/typed_error_info_py3.py new file mode 100644 index 000000000000..ed236615c925 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/typed_error_info_py3.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TypedErrorInfo(Model): + """Scenario specific error details. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar type: The type of included error details. + :vartype type: str + :ivar info: The scenario specific error details. + :vartype info: object + """ + + _validation = { + 'type': {'readonly': True}, + 'info': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'info': {'key': 'info', 'type': 'object'}, + } + + def __init__(self, **kwargs) -> None: + super(TypedErrorInfo, self).__init__(**kwargs) + self.type = None + self.info = None diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/__init__.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/__init__.py index 12605ac45d0f..09d836a14869 100644 --- a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/__init__.py +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/__init__.py @@ -9,11 +9,15 @@ # regenerated. # -------------------------------------------------------------------------- +from .policy_tracked_resources_operations import PolicyTrackedResourcesOperations +from .remediations_operations import RemediationsOperations from .policy_events_operations import PolicyEventsOperations from .policy_states_operations import PolicyStatesOperations from .operations import Operations __all__ = [ + 'PolicyTrackedResourcesOperations', + 'RemediationsOperations', 'PolicyEventsOperations', 'PolicyStatesOperations', 'Operations', diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/policy_tracked_resources_operations.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/policy_tracked_resources_operations.py new file mode 100644 index 000000000000..12f49296ac67 --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/policy_tracked_resources_operations.py @@ -0,0 +1,361 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse + +from .. import models + + +class PolicyTrackedResourcesOperations(object): + """PolicyTrackedResourcesOperations operations. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar management_groups_namespace: The namespace for Microsoft Management RP; only "Microsoft.Management" is allowed. Constant value: "Microsoft.Management". + :ivar policy_tracked_resources_resource: The name of the virtual resource under PolicyTrackedResources resource type; only "default" is allowed. Constant value: "default". + :ivar api_version: Client Api Version. Constant value: "2018-07-01-preview". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.management_groups_namespace = "Microsoft.Management" + self.policy_tracked_resources_resource = "default" + self.api_version = "2018-07-01-preview" + + self.config = config + + def list_query_results_for_management_group( + self, management_group_name, query_options=None, custom_headers=None, raw=False, **operation_config): + """Queries policy tracked resources under the management group. + + :param management_group_name: Management group name. + :type management_group_name: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of PolicyTrackedResource + :rtype: + ~azure.mgmt.policyinsights.models.PolicyTrackedResourcePaged[~azure.mgmt.policyinsights.models.PolicyTrackedResource] + :raises: + :class:`QueryFailureException` + """ + top = None + if query_options is not None: + top = query_options.top + filter = None + if query_options is not None: + filter = query_options.filter + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_query_results_for_management_group.metadata['url'] + path_format_arguments = { + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupName': self._serialize.url("management_group_name", management_group_name, 'str'), + 'policyTrackedResourcesResource': self._serialize.url("self.policy_tracked_resources_resource", self.policy_tracked_resources_resource, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.QueryFailureException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.PolicyTrackedResourcePaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.PolicyTrackedResourcePaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_query_results_for_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupName}/providers/Microsoft.PolicyInsights/policyTrackedResources/{policyTrackedResourcesResource}/queryResults'} + + def list_query_results_for_subscription( + self, subscription_id, query_options=None, custom_headers=None, raw=False, **operation_config): + """Queries policy tracked resources under the subscription. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of PolicyTrackedResource + :rtype: + ~azure.mgmt.policyinsights.models.PolicyTrackedResourcePaged[~azure.mgmt.policyinsights.models.PolicyTrackedResource] + :raises: + :class:`QueryFailureException` + """ + top = None + if query_options is not None: + top = query_options.top + filter = None + if query_options is not None: + filter = query_options.filter + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_query_results_for_subscription.metadata['url'] + path_format_arguments = { + 'policyTrackedResourcesResource': self._serialize.url("self.policy_tracked_resources_resource", self.policy_tracked_resources_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.QueryFailureException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.PolicyTrackedResourcePaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.PolicyTrackedResourcePaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_query_results_for_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyTrackedResources/{policyTrackedResourcesResource}/queryResults'} + + def list_query_results_for_resource_group( + self, resource_group_name, subscription_id, query_options=None, custom_headers=None, raw=False, **operation_config): + """Queries policy tracked resources under the resource group. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of PolicyTrackedResource + :rtype: + ~azure.mgmt.policyinsights.models.PolicyTrackedResourcePaged[~azure.mgmt.policyinsights.models.PolicyTrackedResource] + :raises: + :class:`QueryFailureException` + """ + top = None + if query_options is not None: + top = query_options.top + filter = None + if query_options is not None: + filter = query_options.filter + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_query_results_for_resource_group.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'policyTrackedResourcesResource': self._serialize.url("self.policy_tracked_resources_resource", self.policy_tracked_resources_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.QueryFailureException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.PolicyTrackedResourcePaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.PolicyTrackedResourcePaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_query_results_for_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyTrackedResources/{policyTrackedResourcesResource}/queryResults'} + + def list_query_results_for_resource( + self, resource_id, query_options=None, custom_headers=None, raw=False, **operation_config): + """Queries policy tracked resources under the resource. + + :param resource_id: Resource ID. + :type resource_id: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of PolicyTrackedResource + :rtype: + ~azure.mgmt.policyinsights.models.PolicyTrackedResourcePaged[~azure.mgmt.policyinsights.models.PolicyTrackedResource] + :raises: + :class:`QueryFailureException` + """ + top = None + if query_options is not None: + top = query_options.top + filter = None + if query_options is not None: + filter = query_options.filter + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_query_results_for_resource.metadata['url'] + path_format_arguments = { + 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), + 'policyTrackedResourcesResource': self._serialize.url("self.policy_tracked_resources_resource", self.policy_tracked_resources_resource, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.QueryFailureException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.PolicyTrackedResourcePaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.PolicyTrackedResourcePaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_query_results_for_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/policyTrackedResources/{policyTrackedResourcesResource}/queryResults'} diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/remediations_operations.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/remediations_operations.py new file mode 100644 index 000000000000..10aa6e1ccf2f --- /dev/null +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/remediations_operations.py @@ -0,0 +1,1671 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse + +from .. import models + + +class RemediationsOperations(object): + """RemediationsOperations operations. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar management_groups_namespace: The namespace for Microsoft Management RP; only "Microsoft.Management" is allowed. Constant value: "Microsoft.Management". + :ivar api_version: Client Api Version. Constant value: "2018-07-01-preview". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.management_groups_namespace = "Microsoft.Management" + self.api_version = "2018-07-01-preview" + + self.config = config + + def list_deployments_at_management_group( + self, management_group_id, remediation_name, query_options=None, custom_headers=None, raw=False, **operation_config): + """Gets all deployments for a remediation at management group scope. + + :param management_group_id: Management group ID. + :type management_group_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of RemediationDeployment + :rtype: + ~azure.mgmt.policyinsights.models.RemediationDeploymentPaged[~azure.mgmt.policyinsights.models.RemediationDeployment] + :raises: + :class:`ErrorResponseException` + """ + top = None + if query_options is not None: + top = query_options.top + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_deployments_at_management_group.metadata['url'] + path_format_arguments = { + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupId': self._serialize.url("management_group_id", management_group_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.RemediationDeploymentPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RemediationDeploymentPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_deployments_at_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}/listDeployments'} + + def cancel_at_management_group( + self, management_group_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Cancels a remediation at management group scope. + + :param management_group_id: Management group ID. + :type management_group_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.cancel_at_management_group.metadata['url'] + path_format_arguments = { + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupId': self._serialize.url("management_group_id", management_group_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + cancel_at_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}/cancel'} + + def list_for_management_group( + self, management_group_id, query_options=None, custom_headers=None, raw=False, **operation_config): + """Gets all remediations for the management group. + + :param management_group_id: Management group ID. + :type management_group_id: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of Remediation + :rtype: + ~azure.mgmt.policyinsights.models.RemediationPaged[~azure.mgmt.policyinsights.models.Remediation] + :raises: + :class:`ErrorResponseException` + """ + top = None + if query_options is not None: + top = query_options.top + filter = None + if query_options is not None: + filter = query_options.filter + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_for_management_group.metadata['url'] + path_format_arguments = { + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupId': self._serialize.url("management_group_id", management_group_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.RemediationPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RemediationPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_for_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupId}/providers/Microsoft.PolicyInsights/remediations'} + + def create_or_update_at_management_group( + self, management_group_id, remediation_name, parameters, custom_headers=None, raw=False, **operation_config): + """Creates or updates a remediation at management group scope. + + :param management_group_id: Management group ID. + :type management_group_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param parameters: The remediation parameters. + :type parameters: ~azure.mgmt.policyinsights.models.Remediation + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.create_or_update_at_management_group.metadata['url'] + path_format_arguments = { + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupId': self._serialize.url("management_group_id", management_group_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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, 'Remediation') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + if response.status_code == 201: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + create_or_update_at_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def get_at_management_group( + self, management_group_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Gets an existing remediation at management group scope. + + :param management_group_id: Management group ID. + :type management_group_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.get_at_management_group.metadata['url'] + path_format_arguments = { + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupId': self._serialize.url("management_group_id", management_group_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_at_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def delete_at_management_group( + self, management_group_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Deletes an existing remediation at management group scope. + + :param management_group_id: Management group ID. + :type management_group_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.delete_at_management_group.metadata['url'] + path_format_arguments = { + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupId': self._serialize.url("management_group_id", management_group_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + delete_at_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def list_deployments_at_subscription( + self, subscription_id, remediation_name, query_options=None, custom_headers=None, raw=False, **operation_config): + """Gets all deployments for a remediation at subscription scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of RemediationDeployment + :rtype: + ~azure.mgmt.policyinsights.models.RemediationDeploymentPaged[~azure.mgmt.policyinsights.models.RemediationDeployment] + :raises: + :class:`ErrorResponseException` + """ + top = None + if query_options is not None: + top = query_options.top + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_deployments_at_subscription.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.RemediationDeploymentPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RemediationDeploymentPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_deployments_at_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}/listDeployments'} + + def cancel_at_subscription( + self, subscription_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Cancels a remediation at subscription scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.cancel_at_subscription.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + cancel_at_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}/cancel'} + + def list_for_subscription( + self, subscription_id, query_options=None, custom_headers=None, raw=False, **operation_config): + """Gets all remediations for the subscription. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of Remediation + :rtype: + ~azure.mgmt.policyinsights.models.RemediationPaged[~azure.mgmt.policyinsights.models.Remediation] + :raises: + :class:`ErrorResponseException` + """ + top = None + if query_options is not None: + top = query_options.top + filter = None + if query_options is not None: + filter = query_options.filter + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_for_subscription.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.RemediationPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RemediationPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_for_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/remediations'} + + def create_or_update_at_subscription( + self, subscription_id, remediation_name, parameters, custom_headers=None, raw=False, **operation_config): + """Creates or updates a remediation at subscription scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param parameters: The remediation parameters. + :type parameters: ~azure.mgmt.policyinsights.models.Remediation + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.create_or_update_at_subscription.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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, 'Remediation') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + if response.status_code == 201: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + create_or_update_at_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def get_at_subscription( + self, subscription_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Gets an existing remediation at subscription scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.get_at_subscription.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_at_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def delete_at_subscription( + self, subscription_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Deletes an existing remediation at subscription scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.delete_at_subscription.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + delete_at_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def list_deployments_at_resource_group( + self, subscription_id, resource_group_name, remediation_name, query_options=None, custom_headers=None, raw=False, **operation_config): + """Gets all deployments for a remediation at resource group scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of RemediationDeployment + :rtype: + ~azure.mgmt.policyinsights.models.RemediationDeploymentPaged[~azure.mgmt.policyinsights.models.RemediationDeployment] + :raises: + :class:`ErrorResponseException` + """ + top = None + if query_options is not None: + top = query_options.top + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_deployments_at_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.RemediationDeploymentPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RemediationDeploymentPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_deployments_at_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/remediations/{remediationName}/listDeployments'} + + def cancel_at_resource_group( + self, subscription_id, resource_group_name, remediation_name, custom_headers=None, raw=False, **operation_config): + """Cancels a remediation at resource group scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.cancel_at_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + cancel_at_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/remediations/{remediationName}/cancel'} + + def list_for_resource_group( + self, subscription_id, resource_group_name, query_options=None, custom_headers=None, raw=False, **operation_config): + """Gets all remediations for the subscription. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of Remediation + :rtype: + ~azure.mgmt.policyinsights.models.RemediationPaged[~azure.mgmt.policyinsights.models.Remediation] + :raises: + :class:`ErrorResponseException` + """ + top = None + if query_options is not None: + top = query_options.top + filter = None + if query_options is not None: + filter = query_options.filter + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_for_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.RemediationPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RemediationPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_for_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/remediations'} + + def create_or_update_at_resource_group( + self, subscription_id, resource_group_name, remediation_name, parameters, custom_headers=None, raw=False, **operation_config): + """Creates or updates a remediation at resource group scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param parameters: The remediation parameters. + :type parameters: ~azure.mgmt.policyinsights.models.Remediation + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.create_or_update_at_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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, 'Remediation') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + if response.status_code == 201: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + create_or_update_at_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def get_at_resource_group( + self, subscription_id, resource_group_name, remediation_name, custom_headers=None, raw=False, **operation_config): + """Gets an existing remediation at resource group scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.get_at_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_at_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def delete_at_resource_group( + self, subscription_id, resource_group_name, remediation_name, custom_headers=None, raw=False, **operation_config): + """Deletes an existing remediation at resource group scope. + + :param subscription_id: Microsoft Azure subscription ID. + :type subscription_id: str + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.delete_at_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + delete_at_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def list_deployments_at_resource( + self, resource_id, remediation_name, query_options=None, custom_headers=None, raw=False, **operation_config): + """Gets all deployments for a remediation at resource scope. + + :param resource_id: Resource ID. + :type resource_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of RemediationDeployment + :rtype: + ~azure.mgmt.policyinsights.models.RemediationDeploymentPaged[~azure.mgmt.policyinsights.models.RemediationDeployment] + :raises: + :class:`ErrorResponseException` + """ + top = None + if query_options is not None: + top = query_options.top + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_deployments_at_resource.metadata['url'] + path_format_arguments = { + 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.RemediationDeploymentPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RemediationDeploymentPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_deployments_at_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}/listDeployments'} + + def cancel_at_resource( + self, resource_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Cancel a remediation at resource scope. + + :param resource_id: Resource ID. + :type resource_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.cancel_at_resource.metadata['url'] + path_format_arguments = { + 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + cancel_at_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}/cancel'} + + def list_for_resource( + self, resource_id, query_options=None, custom_headers=None, raw=False, **operation_config): + """Gets all remediations for a resource. + + :param resource_id: Resource ID. + :type resource_id: str + :param query_options: Additional parameters for the operation + :type query_options: ~azure.mgmt.policyinsights.models.QueryOptions + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of Remediation + :rtype: + ~azure.mgmt.policyinsights.models.RemediationPaged[~azure.mgmt.policyinsights.models.Remediation] + :raises: + :class:`ErrorResponseException` + """ + top = None + if query_options is not None: + top = query_options.top + filter = None + if query_options is not None: + filter = query_options.filter + + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_for_resource.metadata['url'] + path_format_arguments = { + 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int', minimum=0) + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + deserialized = models.RemediationPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RemediationPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_for_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/remediations'} + + def create_or_update_at_resource( + self, resource_id, remediation_name, parameters, custom_headers=None, raw=False, **operation_config): + """Creates or updates a remediation at resource scope. + + :param resource_id: Resource ID. + :type resource_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param parameters: The remediation parameters. + :type parameters: ~azure.mgmt.policyinsights.models.Remediation + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.create_or_update_at_resource.metadata['url'] + path_format_arguments = { + 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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, 'Remediation') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + if response.status_code == 201: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + create_or_update_at_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def get_at_resource( + self, resource_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Gets an existing remediation at resource scope. + + :param resource_id: Resource ID. + :type resource_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.get_at_resource.metadata['url'] + path_format_arguments = { + 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_at_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} + + def delete_at_resource( + self, resource_id, remediation_name, custom_headers=None, raw=False, **operation_config): + """Deletes an existing remediation at individual resource scope. + + :param resource_id: Resource ID. + :type resource_id: str + :param remediation_name: The name of the remediation. + :type remediation_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: Remediation or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.Remediation or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.delete_at_resource.metadata['url'] + path_format_arguments = { + 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True), + 'remediationName': self._serialize.url("remediation_name", remediation_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + 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 and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('Remediation', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + delete_at_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/remediations/{remediationName}'} diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/policy_insights_client.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/policy_insights_client.py index 4a8ec57b07a8..ba9234ef5f6f 100644 --- a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/policy_insights_client.py +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/policy_insights_client.py @@ -13,6 +13,8 @@ from msrest import Serializer, Deserializer from msrestazure import AzureConfiguration from .version import VERSION +from .operations.policy_tracked_resources_operations import PolicyTrackedResourcesOperations +from .operations.remediations_operations import RemediationsOperations from .operations.policy_events_operations import PolicyEventsOperations from .operations.policy_states_operations import PolicyStatesOperations from .operations.operations import Operations @@ -52,6 +54,10 @@ class PolicyInsightsClient(SDKClient): :ivar config: Configuration for client. :vartype config: PolicyInsightsClientConfiguration + :ivar policy_tracked_resources: PolicyTrackedResources operations + :vartype policy_tracked_resources: azure.mgmt.policyinsights.operations.PolicyTrackedResourcesOperations + :ivar remediations: Remediations operations + :vartype remediations: azure.mgmt.policyinsights.operations.RemediationsOperations :ivar policy_events: PolicyEvents operations :vartype policy_events: azure.mgmt.policyinsights.operations.PolicyEventsOperations :ivar policy_states: PolicyStates operations @@ -72,10 +78,13 @@ def __init__( super(PolicyInsightsClient, self).__init__(self.config.credentials, self.config) client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self.api_version = '2018-04-04' self._serialize = Serializer(client_models) self._deserialize = Deserializer(client_models) + self.policy_tracked_resources = PolicyTrackedResourcesOperations( + self._client, self.config, self._serialize, self._deserialize) + self.remediations = RemediationsOperations( + self._client, self.config, self._serialize, self._deserialize) self.policy_events = PolicyEventsOperations( self._client, self.config, self._serialize, self._deserialize) self.policy_states = PolicyStatesOperations( diff --git a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/version.py b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/version.py index 6496f1ad3e41..53a203f32aaf 100644 --- a/azure-mgmt-policyinsights/azure/mgmt/policyinsights/version.py +++ b/azure-mgmt-policyinsights/azure/mgmt/policyinsights/version.py @@ -9,5 +9,5 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "2018-04-04" +VERSION = ""