diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/_configuration.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/_configuration.py index 487fb38b8695..e798f6322b4f 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/_configuration.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/_configuration.py @@ -21,14 +21,18 @@ class PolicyInsightsClientConfiguration(AzureConfiguration): :param credentials: Credentials needed for the client to connect to Azure. :type credentials: :mod:`A msrestazure Credentials object` + :param subscription_id2: The ID of the target subscription. + :type subscription_id2: str :param str base_url: Service URL """ def __init__( - self, credentials, base_url=None): + self, credentials, subscription_id2, base_url=None): if credentials is None: raise ValueError("Parameter 'credentials' must not be None.") + if subscription_id2 is None: + raise ValueError("Parameter 'subscription_id2' must not be None.") if not base_url: base_url = 'https://management.azure.com' @@ -41,3 +45,4 @@ def __init__( self.add_user_agent('Azure-SDK-For-Python') self.credentials = credentials + self.subscription_id2 = subscription_id2 diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/_policy_insights_client.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/_policy_insights_client.py index 7891933e6482..f901d9347e6c 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/_policy_insights_client.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/_policy_insights_client.py @@ -19,6 +19,7 @@ from .operations import PolicyStatesOperations from .operations import Operations from .operations import PolicyMetadataOperations +from .operations import PolicyRestrictionsOperations from . import models @@ -40,17 +41,21 @@ class PolicyInsightsClient(SDKClient): :vartype operations: azure.mgmt.policyinsights.operations.Operations :ivar policy_metadata: PolicyMetadata operations :vartype policy_metadata: azure.mgmt.policyinsights.operations.PolicyMetadataOperations + :ivar policy_restrictions: PolicyRestrictions operations + :vartype policy_restrictions: azure.mgmt.policyinsights.operations.PolicyRestrictionsOperations :param credentials: Credentials needed for the client to connect to Azure. :type credentials: :mod:`A msrestazure Credentials object` + :param subscription_id2: The ID of the target subscription. + :type subscription_id2: str :param str base_url: Service URL """ def __init__( - self, credentials, base_url=None): + self, credentials, subscription_id2, base_url=None): - self.config = PolicyInsightsClientConfiguration(credentials, base_url) + self.config = PolicyInsightsClientConfiguration(credentials, subscription_id2, base_url) super(PolicyInsightsClient, self).__init__(self.config.credentials, self.config) client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} @@ -69,3 +74,5 @@ def __init__( self._client, self.config, self._serialize, self._deserialize) self.policy_metadata = PolicyMetadataOperations( self._client, self.config, self._serialize, self._deserialize) + self.policy_restrictions = PolicyRestrictionsOperations( + self._client, self.config, self._serialize, self._deserialize) diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/__init__.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/__init__.py index 40245a49addb..50938839deea 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/__init__.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/__init__.py @@ -10,24 +10,33 @@ # -------------------------------------------------------------------------- try: + from ._models_py3 import CheckRestrictionsRequest + from ._models_py3 import CheckRestrictionsResourceDetails + from ._models_py3 import CheckRestrictionsResult + from ._models_py3 import CheckRestrictionsResultContentEvaluationResult from ._models_py3 import ComplianceDetail + from ._models_py3 import ComponentEventDetails + from ._models_py3 import ComponentStateDetails from ._models_py3 import ErrorDefinition from ._models_py3 import ErrorResponse, ErrorResponseException from ._models_py3 import ExpressionEvaluationDetails + from ._models_py3 import FieldRestriction + from ._models_py3 import FieldRestrictions from ._models_py3 import IfNotExistsEvaluationDetails from ._models_py3 import Operation from ._models_py3 import OperationDisplay from ._models_py3 import OperationsListResults + from ._models_py3 import PendingField from ._models_py3 import PolicyAssignmentSummary from ._models_py3 import PolicyDefinitionSummary from ._models_py3 import PolicyDetails from ._models_py3 import PolicyEvaluationDetails + from ._models_py3 import PolicyEvaluationResult from ._models_py3 import PolicyEvent - from ._models_py3 import PolicyEventsQueryResults from ._models_py3 import PolicyGroupSummary from ._models_py3 import PolicyMetadata + from ._models_py3 import PolicyReference from ._models_py3 import PolicyState - from ._models_py3 import PolicyStatesQueryResults from ._models_py3 import PolicyTrackedResource from ._models_py3 import QueryFailure, QueryFailureException from ._models_py3 import QueryFailureError @@ -43,24 +52,33 @@ from ._models_py3 import TrackedResourceModificationDetails from ._models_py3 import TypedErrorInfo except (SyntaxError, ImportError): + from ._models import CheckRestrictionsRequest + from ._models import CheckRestrictionsResourceDetails + from ._models import CheckRestrictionsResult + from ._models import CheckRestrictionsResultContentEvaluationResult from ._models import ComplianceDetail + from ._models import ComponentEventDetails + from ._models import ComponentStateDetails from ._models import ErrorDefinition from ._models import ErrorResponse, ErrorResponseException from ._models import ExpressionEvaluationDetails + from ._models import FieldRestriction + from ._models import FieldRestrictions from ._models import IfNotExistsEvaluationDetails from ._models import Operation from ._models import OperationDisplay from ._models import OperationsListResults + from ._models import PendingField from ._models import PolicyAssignmentSummary from ._models import PolicyDefinitionSummary from ._models import PolicyDetails from ._models import PolicyEvaluationDetails + from ._models import PolicyEvaluationResult from ._models import PolicyEvent - from ._models import PolicyEventsQueryResults from ._models import PolicyGroupSummary from ._models import PolicyMetadata + from ._models import PolicyReference from ._models import PolicyState - from ._models import PolicyStatesQueryResults from ._models import PolicyTrackedResource from ._models import QueryFailure, QueryFailureException from ._models import QueryFailureError @@ -75,34 +93,46 @@ from ._models import SummaryResults from ._models import TrackedResourceModificationDetails from ._models import TypedErrorInfo +from ._paged_models import PolicyEventPaged +from ._paged_models import PolicyStatePaged from ._paged_models import PolicyTrackedResourcePaged from ._paged_models import RemediationDeploymentPaged from ._paged_models import RemediationPaged from ._paged_models import SlimPolicyMetadataPaged from ._policy_insights_client_enums import ( ResourceDiscoveryMode, + FieldRestrictionResult, PolicyStatesResource, ) __all__ = [ + 'CheckRestrictionsRequest', + 'CheckRestrictionsResourceDetails', + 'CheckRestrictionsResult', + 'CheckRestrictionsResultContentEvaluationResult', 'ComplianceDetail', + 'ComponentEventDetails', + 'ComponentStateDetails', 'ErrorDefinition', 'ErrorResponse', 'ErrorResponseException', 'ExpressionEvaluationDetails', + 'FieldRestriction', + 'FieldRestrictions', 'IfNotExistsEvaluationDetails', 'Operation', 'OperationDisplay', 'OperationsListResults', + 'PendingField', 'PolicyAssignmentSummary', 'PolicyDefinitionSummary', 'PolicyDetails', 'PolicyEvaluationDetails', + 'PolicyEvaluationResult', 'PolicyEvent', - 'PolicyEventsQueryResults', 'PolicyGroupSummary', 'PolicyMetadata', + 'PolicyReference', 'PolicyState', - 'PolicyStatesQueryResults', 'PolicyTrackedResource', 'QueryFailure', 'QueryFailureException', 'QueryFailureError', @@ -120,7 +150,10 @@ 'PolicyTrackedResourcePaged', 'RemediationDeploymentPaged', 'RemediationPaged', + 'PolicyEventPaged', + 'PolicyStatePaged', 'SlimPolicyMetadataPaged', 'ResourceDiscoveryMode', + 'FieldRestrictionResult', 'PolicyStatesResource', ] diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_models.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_models.py index 5d416b1f7be2..186341399f7a 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_models.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_models.py @@ -13,6 +13,121 @@ from msrest.exceptions import HttpOperationError +class CheckRestrictionsRequest(Model): + """The check policy restrictions parameters describing the resource that is + being evaluated. + + All required parameters must be populated in order to send to Azure. + + :param resource_details: Required. The information about the resource that + will be evaluated. + :type resource_details: + ~azure.mgmt.policyinsights.models.CheckRestrictionsResourceDetails + :param pending_fields: The list of fields and values that should be + evaluated for potential restrictions. + :type pending_fields: list[~azure.mgmt.policyinsights.models.PendingField] + """ + + _validation = { + 'resource_details': {'required': True}, + } + + _attribute_map = { + 'resource_details': {'key': 'resourceDetails', 'type': 'CheckRestrictionsResourceDetails'}, + 'pending_fields': {'key': 'pendingFields', 'type': '[PendingField]'}, + } + + def __init__(self, **kwargs): + super(CheckRestrictionsRequest, self).__init__(**kwargs) + self.resource_details = kwargs.get('resource_details', None) + self.pending_fields = kwargs.get('pending_fields', None) + + +class CheckRestrictionsResourceDetails(Model): + """The information about the resource that will be evaluated. + + All required parameters must be populated in order to send to Azure. + + :param resource_content: Required. The resource content. This should + include whatever properties are already known and can be a partial set of + all resource properties. + :type resource_content: object + :param api_version: The api-version of the resource content. + :type api_version: str + :param scope: The scope where the resource is being created. For example, + if the resource is a child resource this would be the parent resource's + resource ID. + :type scope: str + """ + + _validation = { + 'resource_content': {'required': True}, + } + + _attribute_map = { + 'resource_content': {'key': 'resourceContent', 'type': 'object'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'scope': {'key': 'scope', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(CheckRestrictionsResourceDetails, self).__init__(**kwargs) + self.resource_content = kwargs.get('resource_content', None) + self.api_version = kwargs.get('api_version', None) + self.scope = kwargs.get('scope', None) + + +class CheckRestrictionsResult(Model): + """The result of a check policy restrictions evaluation on a resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar field_restrictions: The restrictions that will be placed on various + fields in the resource by policy. + :vartype field_restrictions: + list[~azure.mgmt.policyinsights.models.FieldRestrictions] + :ivar content_evaluation_result: Evaluation results for the provided + partial resource content. + :vartype content_evaluation_result: + ~azure.mgmt.policyinsights.models.CheckRestrictionsResultContentEvaluationResult + """ + + _validation = { + 'field_restrictions': {'readonly': True}, + 'content_evaluation_result': {'readonly': True}, + } + + _attribute_map = { + 'field_restrictions': {'key': 'fieldRestrictions', 'type': '[FieldRestrictions]'}, + 'content_evaluation_result': {'key': 'contentEvaluationResult', 'type': 'CheckRestrictionsResultContentEvaluationResult'}, + } + + def __init__(self, **kwargs): + super(CheckRestrictionsResult, self).__init__(**kwargs) + self.field_restrictions = None + self.content_evaluation_result = None + + +class CheckRestrictionsResultContentEvaluationResult(Model): + """Evaluation results for the provided partial resource content. + + :param policy_evaluations: Policy evaluation results against the given + resource content. This will indicate if the partial content that was + provided will be denied as-is. + :type policy_evaluations: + list[~azure.mgmt.policyinsights.models.PolicyEvaluationResult] + """ + + _attribute_map = { + 'policy_evaluations': {'key': 'policyEvaluations', 'type': '[PolicyEvaluationResult]'}, + } + + def __init__(self, **kwargs): + super(CheckRestrictionsResultContentEvaluationResult, self).__init__(**kwargs) + self.policy_evaluations = kwargs.get('policy_evaluations', None) + + class CloudError(Model): """CloudError. """ @@ -41,6 +156,89 @@ def __init__(self, **kwargs): self.count = kwargs.get('count', None) +class ComponentEventDetails(Model): + """Component event details. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, object] + :param id: Component Id. + :type id: str + :param type: Component type. + :type type: str + :param name: Component name. + :type name: str + :param timestamp: Timestamp for component policy event record. + :type timestamp: datetime + :param tenant_id: Tenant ID for the policy event record. + :type tenant_id: str + :param principal_oid: Principal object ID for the user who initiated the + resource component operation that triggered the policy event. + :type principal_oid: str + :param policy_definition_action: Policy definition action, i.e. effect. + :type policy_definition_action: str + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'id': {'key': 'id', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'principal_oid': {'key': 'principalOid', 'type': 'str'}, + 'policy_definition_action': {'key': 'policyDefinitionAction', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ComponentEventDetails, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.id = kwargs.get('id', None) + self.type = kwargs.get('type', None) + self.name = kwargs.get('name', None) + self.timestamp = kwargs.get('timestamp', None) + self.tenant_id = kwargs.get('tenant_id', None) + self.principal_oid = kwargs.get('principal_oid', None) + self.policy_definition_action = kwargs.get('policy_definition_action', None) + + +class ComponentStateDetails(Model): + """Component state details. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, object] + :param id: Component Id. + :type id: str + :param type: Component type. + :type type: str + :param name: Component name. + :type name: str + :param timestamp: Component compliance evaluation timestamp. + :type timestamp: datetime + :param compliance_state: Component compliance state. + :type compliance_state: str + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'id': {'key': 'id', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'compliance_state': {'key': 'complianceState', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ComponentStateDetails, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.id = kwargs.get('id', None) + self.type = kwargs.get('type', None) + self.name = kwargs.get('name', None) + self.timestamp = kwargs.get('timestamp', None) + self.compliance_state = kwargs.get('compliance_state', None) + + class ErrorDefinition(Model): """Error definition. @@ -117,10 +315,15 @@ def __init__(self, deserialize, response, *args): class ExpressionEvaluationDetails(Model): """Evaluation details of policy language expressions. + Variables are only populated by the server, and will be ignored when + sending a request. + :param result: Evaluation result. :type result: str :param expression: Expression evaluated. :type expression: str + :ivar expression_kind: The kind of expression that was evaluated. + :vartype expression_kind: str :param path: Property path if the expression is a field or an alias. :type path: str :param expression_value: Value of the expression. @@ -133,9 +336,14 @@ class ExpressionEvaluationDetails(Model): :type operator: str """ + _validation = { + 'expression_kind': {'readonly': True}, + } + _attribute_map = { 'result': {'key': 'result', 'type': 'str'}, 'expression': {'key': 'expression', 'type': 'str'}, + 'expression_kind': {'key': 'expressionKind', 'type': 'str'}, 'path': {'key': 'path', 'type': 'str'}, 'expression_value': {'key': 'expressionValue', 'type': 'object'}, 'target_value': {'key': 'targetValue', 'type': 'object'}, @@ -146,12 +354,85 @@ def __init__(self, **kwargs): super(ExpressionEvaluationDetails, self).__init__(**kwargs) self.result = kwargs.get('result', None) self.expression = kwargs.get('expression', None) + self.expression_kind = None self.path = kwargs.get('path', None) self.expression_value = kwargs.get('expression_value', None) self.target_value = kwargs.get('target_value', None) self.operator = kwargs.get('operator', None) +class FieldRestriction(Model): + """The restrictions on a field imposed by a specific policy. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar result: The type of restriction that is imposed on the field. + Possible values include: 'Required', 'Removed', 'Deny' + :vartype result: str or + ~azure.mgmt.policyinsights.models.FieldRestrictionResult + :ivar default_value: The value that policy will set for the field if the + user does not provide a value. + :vartype default_value: str + :ivar values: The values that policy either requires or denies for the + field. + :vartype values: list[str] + :ivar policy: The details of the policy that is causing the field + restriction. + :vartype policy: ~azure.mgmt.policyinsights.models.PolicyReference + """ + + _validation = { + 'result': {'readonly': True}, + 'default_value': {'readonly': True}, + 'values': {'readonly': True}, + 'policy': {'readonly': True}, + } + + _attribute_map = { + 'result': {'key': 'result', 'type': 'str'}, + 'default_value': {'key': 'defaultValue', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[str]'}, + 'policy': {'key': 'policy', 'type': 'PolicyReference'}, + } + + def __init__(self, **kwargs): + super(FieldRestriction, self).__init__(**kwargs) + self.result = None + self.default_value = None + self.values = None + self.policy = None + + +class FieldRestrictions(Model): + """The restrictions that will be placed on a field in the resource by policy. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar field: The name of the field. This can be a top-level property like + 'name' or 'type' or an Azure Policy field alias. + :vartype field: str + :param restrictions: The restrictions placed on that field by policy. + :type restrictions: + list[~azure.mgmt.policyinsights.models.FieldRestriction] + """ + + _validation = { + 'field': {'readonly': True}, + } + + _attribute_map = { + 'field': {'key': 'field', 'type': 'str'}, + 'restrictions': {'key': 'restrictions', 'type': '[FieldRestriction]'}, + } + + def __init__(self, **kwargs): + super(FieldRestrictions, self).__init__(**kwargs) + self.field = None + self.restrictions = kwargs.get('restrictions', None) + + class IfNotExistsEvaluationDetails(Model): """Evaluation details of IfNotExists effect. @@ -247,6 +528,35 @@ def __init__(self, **kwargs): self.value = kwargs.get('value', None) +class PendingField(Model): + """A field that should be evaluated against Azure Policy to determine + restrictions. + + All required parameters must be populated in order to send to Azure. + + :param field: Required. The name of the field. This can be a top-level + property like 'name' or 'type' or an Azure Policy field alias. + :type field: str + :param values: The list of potential values for the field that should be + evaluated against Azure Policy. + :type values: list[str] + """ + + _validation = { + 'field': {'required': True}, + } + + _attribute_map = { + 'field': {'key': 'field', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(PendingField, self).__init__(**kwargs) + self.field = kwargs.get('field', None) + self.values = kwargs.get('values', None) + + class PolicyAssignmentSummary(Model): """Policy assignment summary. @@ -386,6 +696,44 @@ def __init__(self, **kwargs): self.if_not_exists_details = kwargs.get('if_not_exists_details', None) +class PolicyEvaluationResult(Model): + """The result of a non-compliant policy evaluation against the given resource + content. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar policy_info: The details of the policy that was evaluated. + :vartype policy_info: ~azure.mgmt.policyinsights.models.PolicyReference + :ivar evaluation_result: The result of the policy evaluation against the + resource. This will typically be 'NonCompliant' but may contain other + values if errors were encountered. + :vartype evaluation_result: str + :ivar evaluation_details: The detailed results of the policy expressions + and values that were evaluated. + :vartype evaluation_details: + ~azure.mgmt.policyinsights.models.PolicyEvaluationDetails + """ + + _validation = { + 'policy_info': {'readonly': True}, + 'evaluation_result': {'readonly': True}, + 'evaluation_details': {'readonly': True}, + } + + _attribute_map = { + 'policy_info': {'key': 'policyInfo', 'type': 'PolicyReference'}, + 'evaluation_result': {'key': 'evaluationResult', 'type': 'str'}, + 'evaluation_details': {'key': 'evaluationDetails', 'type': 'PolicyEvaluationDetails'}, + } + + def __init__(self, **kwargs): + super(PolicyEvaluationResult, self).__init__(**kwargs) + self.policy_info = None + self.evaluation_result = None + self.evaluation_details = None + + class PolicyEvent(Model): """Policy event record. @@ -459,11 +807,17 @@ class PolicyEvent(Model): definition inside the policy set, if the policy assignment is for a policy set. :type policy_definition_reference_id: str + :param compliance_state: Compliance state of the resource. + :type compliance_state: str :param tenant_id: Tenant ID for the policy event record. :type tenant_id: str :param principal_oid: Principal object ID for the user who initiated the resource operation that triggered the policy event. :type principal_oid: str + :param components: Components events records populated only when URL + contains $expand=components clause. + :type components: + list[~azure.mgmt.policyinsights.models.ComponentEventDetails] """ _attribute_map = { @@ -495,8 +849,10 @@ class PolicyEvent(Model): 'policy_set_definition_parameters': {'key': 'policySetDefinitionParameters', 'type': 'str'}, 'management_group_ids': {'key': 'managementGroupIds', 'type': 'str'}, 'policy_definition_reference_id': {'key': 'policyDefinitionReferenceId', 'type': 'str'}, + 'compliance_state': {'key': 'complianceState', 'type': 'str'}, 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 'principal_oid': {'key': 'principalOid', 'type': 'str'}, + 'components': {'key': 'components', 'type': '[ComponentEventDetails]'}, } def __init__(self, **kwargs): @@ -529,38 +885,10 @@ def __init__(self, **kwargs): self.policy_set_definition_parameters = kwargs.get('policy_set_definition_parameters', None) self.management_group_ids = kwargs.get('management_group_ids', None) self.policy_definition_reference_id = kwargs.get('policy_definition_reference_id', None) + self.compliance_state = kwargs.get('compliance_state', None) self.tenant_id = kwargs.get('tenant_id', None) self.principal_oid = kwargs.get('principal_oid', None) - - -class PolicyEventsQueryResults(Model): - """Query results. - - :param odatacontext: OData context string; used by OData clients to - resolve type information based on metadata. - :type odatacontext: str - :param odatacount: OData entity count; represents the number of policy - event records returned. - :type odatacount: int - :param value: Query results. - :type value: list[~azure.mgmt.policyinsights.models.PolicyEvent] - """ - - _validation = { - 'odatacount': {'minimum': 0}, - } - - _attribute_map = { - 'odatacontext': {'key': '@odata\\.context', 'type': 'str'}, - 'odatacount': {'key': '@odata\\.count', 'type': 'int'}, - 'value': {'key': 'value', 'type': '[PolicyEvent]'}, - } - - def __init__(self, **kwargs): - super(PolicyEventsQueryResults, self).__init__(**kwargs) - self.odatacontext = kwargs.get('odatacontext', None) - self.odatacount = kwargs.get('odatacount', None) - self.value = kwargs.get('value', None) + self.components = kwargs.get('components', None) class PolicyGroupSummary(Model): @@ -657,6 +985,48 @@ def __init__(self, **kwargs): self.name = None +class PolicyReference(Model): + """Resource identifiers for a policy. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar policy_definition_id: The resource identifier of the policy + definition. + :vartype policy_definition_id: str + :ivar policy_set_definition_id: The resource identifier of the policy set + definition. + :vartype policy_set_definition_id: str + :ivar policy_definition_reference_id: The reference identifier of a + specific policy definition within a policy set definition. + :vartype policy_definition_reference_id: str + :ivar policy_assignment_id: The resource identifier of the policy + assignment. + :vartype policy_assignment_id: str + """ + + _validation = { + 'policy_definition_id': {'readonly': True}, + 'policy_set_definition_id': {'readonly': True}, + 'policy_definition_reference_id': {'readonly': True}, + 'policy_assignment_id': {'readonly': True}, + } + + _attribute_map = { + 'policy_definition_id': {'key': 'policyDefinitionId', 'type': 'str'}, + 'policy_set_definition_id': {'key': 'policySetDefinitionId', 'type': 'str'}, + 'policy_definition_reference_id': {'key': 'policyDefinitionReferenceId', 'type': 'str'}, + 'policy_assignment_id': {'key': 'policyAssignmentId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PolicyReference, self).__init__(**kwargs) + self.policy_definition_id = None + self.policy_set_definition_id = None + self.policy_definition_reference_id = None + self.policy_assignment_id = None + + class PolicyState(Model): """Policy state record. @@ -741,6 +1111,10 @@ class PolicyState(Model): ~azure.mgmt.policyinsights.models.PolicyEvaluationDetails :param policy_definition_group_names: Policy definition group names. :type policy_definition_group_names: list[str] + :param components: Components state compliance records populated only when + URL contains $expand=components clause. + :type components: + list[~azure.mgmt.policyinsights.models.ComponentStateDetails] :ivar policy_definition_version: Evaluated policy definition version. :vartype policy_definition_version: str :ivar policy_set_definition_version: Evaluated policy set definition @@ -788,6 +1162,7 @@ class PolicyState(Model): 'compliance_state': {'key': 'complianceState', 'type': 'str'}, 'policy_evaluation_details': {'key': 'policyEvaluationDetails', 'type': 'PolicyEvaluationDetails'}, 'policy_definition_group_names': {'key': 'policyDefinitionGroupNames', 'type': '[str]'}, + 'components': {'key': 'components', 'type': '[ComponentStateDetails]'}, 'policy_definition_version': {'key': 'policyDefinitionVersion', 'type': 'str'}, 'policy_set_definition_version': {'key': 'policySetDefinitionVersion', 'type': 'str'}, 'policy_assignment_version': {'key': 'policyAssignmentVersion', 'type': 'str'}, @@ -826,41 +1201,12 @@ def __init__(self, **kwargs): self.compliance_state = kwargs.get('compliance_state', None) self.policy_evaluation_details = kwargs.get('policy_evaluation_details', None) self.policy_definition_group_names = kwargs.get('policy_definition_group_names', None) + self.components = kwargs.get('components', None) self.policy_definition_version = None self.policy_set_definition_version = None self.policy_assignment_version = None -class PolicyStatesQueryResults(Model): - """Query results. - - :param odatacontext: OData context string; used by OData clients to - resolve type information based on metadata. - :type odatacontext: str - :param odatacount: OData entity count; represents the number of policy - state records returned. - :type odatacount: int - :param value: Query results. - :type value: list[~azure.mgmt.policyinsights.models.PolicyState] - """ - - _validation = { - 'odatacount': {'minimum': 0}, - } - - _attribute_map = { - 'odatacontext': {'key': '@odata\\.context', 'type': 'str'}, - 'odatacount': {'key': '@odata\\.count', 'type': 'int'}, - 'value': {'key': 'value', 'type': '[PolicyState]'}, - } - - def __init__(self, **kwargs): - super(PolicyStatesQueryResults, self).__init__(**kwargs) - self.odatacontext = kwargs.get('odatacontext', None) - self.odatacount = kwargs.get('odatacount', None) - self.value = kwargs.get('value', None) - - class PolicyTrackedResource(Model): """Policy tracked resource record. @@ -991,8 +1337,11 @@ class QueryOptions(Model): :type to: datetime :param apply: OData apply expression for aggregations. :type apply: str + :param skip_token: Skiptoken is only provided if a previous response + returned a partial result as a part of nextLink element. + :type skip_token: str :param expand: The $expand query parameter. For example, to expand - policyEvaluationDetails, use $expand=policyEvaluationDetails + components use $expand=components :type expand: str """ @@ -1004,6 +1353,7 @@ class QueryOptions(Model): 'from_property': {'key': '', 'type': 'iso-8601'}, 'to': {'key': '', 'type': 'iso-8601'}, 'apply': {'key': '', 'type': 'str'}, + 'skip_token': {'key': '', 'type': 'str'}, 'expand': {'key': '', 'type': 'str'}, } @@ -1016,6 +1366,7 @@ def __init__(self, **kwargs): self.from_property = kwargs.get('from_property', None) self.to = kwargs.get('to', None) self.apply = kwargs.get('apply', None) + self.skip_token = kwargs.get('skip_token', None) self.expand = kwargs.get('expand', None) diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_models_py3.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_models_py3.py index dccb0f38b622..a91eafa87618 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_models_py3.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_models_py3.py @@ -13,6 +13,121 @@ from msrest.exceptions import HttpOperationError +class CheckRestrictionsRequest(Model): + """The check policy restrictions parameters describing the resource that is + being evaluated. + + All required parameters must be populated in order to send to Azure. + + :param resource_details: Required. The information about the resource that + will be evaluated. + :type resource_details: + ~azure.mgmt.policyinsights.models.CheckRestrictionsResourceDetails + :param pending_fields: The list of fields and values that should be + evaluated for potential restrictions. + :type pending_fields: list[~azure.mgmt.policyinsights.models.PendingField] + """ + + _validation = { + 'resource_details': {'required': True}, + } + + _attribute_map = { + 'resource_details': {'key': 'resourceDetails', 'type': 'CheckRestrictionsResourceDetails'}, + 'pending_fields': {'key': 'pendingFields', 'type': '[PendingField]'}, + } + + def __init__(self, *, resource_details, pending_fields=None, **kwargs) -> None: + super(CheckRestrictionsRequest, self).__init__(**kwargs) + self.resource_details = resource_details + self.pending_fields = pending_fields + + +class CheckRestrictionsResourceDetails(Model): + """The information about the resource that will be evaluated. + + All required parameters must be populated in order to send to Azure. + + :param resource_content: Required. The resource content. This should + include whatever properties are already known and can be a partial set of + all resource properties. + :type resource_content: object + :param api_version: The api-version of the resource content. + :type api_version: str + :param scope: The scope where the resource is being created. For example, + if the resource is a child resource this would be the parent resource's + resource ID. + :type scope: str + """ + + _validation = { + 'resource_content': {'required': True}, + } + + _attribute_map = { + 'resource_content': {'key': 'resourceContent', 'type': 'object'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'scope': {'key': 'scope', 'type': 'str'}, + } + + def __init__(self, *, resource_content, api_version: str=None, scope: str=None, **kwargs) -> None: + super(CheckRestrictionsResourceDetails, self).__init__(**kwargs) + self.resource_content = resource_content + self.api_version = api_version + self.scope = scope + + +class CheckRestrictionsResult(Model): + """The result of a check policy restrictions evaluation on a resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar field_restrictions: The restrictions that will be placed on various + fields in the resource by policy. + :vartype field_restrictions: + list[~azure.mgmt.policyinsights.models.FieldRestrictions] + :ivar content_evaluation_result: Evaluation results for the provided + partial resource content. + :vartype content_evaluation_result: + ~azure.mgmt.policyinsights.models.CheckRestrictionsResultContentEvaluationResult + """ + + _validation = { + 'field_restrictions': {'readonly': True}, + 'content_evaluation_result': {'readonly': True}, + } + + _attribute_map = { + 'field_restrictions': {'key': 'fieldRestrictions', 'type': '[FieldRestrictions]'}, + 'content_evaluation_result': {'key': 'contentEvaluationResult', 'type': 'CheckRestrictionsResultContentEvaluationResult'}, + } + + def __init__(self, **kwargs) -> None: + super(CheckRestrictionsResult, self).__init__(**kwargs) + self.field_restrictions = None + self.content_evaluation_result = None + + +class CheckRestrictionsResultContentEvaluationResult(Model): + """Evaluation results for the provided partial resource content. + + :param policy_evaluations: Policy evaluation results against the given + resource content. This will indicate if the partial content that was + provided will be denied as-is. + :type policy_evaluations: + list[~azure.mgmt.policyinsights.models.PolicyEvaluationResult] + """ + + _attribute_map = { + 'policy_evaluations': {'key': 'policyEvaluations', 'type': '[PolicyEvaluationResult]'}, + } + + def __init__(self, *, policy_evaluations=None, **kwargs) -> None: + super(CheckRestrictionsResultContentEvaluationResult, self).__init__(**kwargs) + self.policy_evaluations = policy_evaluations + + class CloudError(Model): """CloudError. """ @@ -41,6 +156,89 @@ def __init__(self, *, compliance_state: str=None, count: int=None, **kwargs) -> self.count = count +class ComponentEventDetails(Model): + """Component event details. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, object] + :param id: Component Id. + :type id: str + :param type: Component type. + :type type: str + :param name: Component name. + :type name: str + :param timestamp: Timestamp for component policy event record. + :type timestamp: datetime + :param tenant_id: Tenant ID for the policy event record. + :type tenant_id: str + :param principal_oid: Principal object ID for the user who initiated the + resource component operation that triggered the policy event. + :type principal_oid: str + :param policy_definition_action: Policy definition action, i.e. effect. + :type policy_definition_action: str + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'id': {'key': 'id', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'principal_oid': {'key': 'principalOid', 'type': 'str'}, + 'policy_definition_action': {'key': 'policyDefinitionAction', 'type': 'str'}, + } + + def __init__(self, *, additional_properties=None, id: str=None, type: str=None, name: str=None, timestamp=None, tenant_id: str=None, principal_oid: str=None, policy_definition_action: str=None, **kwargs) -> None: + super(ComponentEventDetails, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.id = id + self.type = type + self.name = name + self.timestamp = timestamp + self.tenant_id = tenant_id + self.principal_oid = principal_oid + self.policy_definition_action = policy_definition_action + + +class ComponentStateDetails(Model): + """Component state details. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, object] + :param id: Component Id. + :type id: str + :param type: Component type. + :type type: str + :param name: Component name. + :type name: str + :param timestamp: Component compliance evaluation timestamp. + :type timestamp: datetime + :param compliance_state: Component compliance state. + :type compliance_state: str + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'id': {'key': 'id', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'compliance_state': {'key': 'complianceState', 'type': 'str'}, + } + + def __init__(self, *, additional_properties=None, id: str=None, type: str=None, name: str=None, timestamp=None, compliance_state: str=None, **kwargs) -> None: + super(ComponentStateDetails, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.id = id + self.type = type + self.name = name + self.timestamp = timestamp + self.compliance_state = compliance_state + + class ErrorDefinition(Model): """Error definition. @@ -117,10 +315,15 @@ def __init__(self, deserialize, response, *args): class ExpressionEvaluationDetails(Model): """Evaluation details of policy language expressions. + Variables are only populated by the server, and will be ignored when + sending a request. + :param result: Evaluation result. :type result: str :param expression: Expression evaluated. :type expression: str + :ivar expression_kind: The kind of expression that was evaluated. + :vartype expression_kind: str :param path: Property path if the expression is a field or an alias. :type path: str :param expression_value: Value of the expression. @@ -133,9 +336,14 @@ class ExpressionEvaluationDetails(Model): :type operator: str """ + _validation = { + 'expression_kind': {'readonly': True}, + } + _attribute_map = { 'result': {'key': 'result', 'type': 'str'}, 'expression': {'key': 'expression', 'type': 'str'}, + 'expression_kind': {'key': 'expressionKind', 'type': 'str'}, 'path': {'key': 'path', 'type': 'str'}, 'expression_value': {'key': 'expressionValue', 'type': 'object'}, 'target_value': {'key': 'targetValue', 'type': 'object'}, @@ -146,12 +354,85 @@ def __init__(self, *, result: str=None, expression: str=None, path: str=None, ex super(ExpressionEvaluationDetails, self).__init__(**kwargs) self.result = result self.expression = expression + self.expression_kind = None self.path = path self.expression_value = expression_value self.target_value = target_value self.operator = operator +class FieldRestriction(Model): + """The restrictions on a field imposed by a specific policy. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar result: The type of restriction that is imposed on the field. + Possible values include: 'Required', 'Removed', 'Deny' + :vartype result: str or + ~azure.mgmt.policyinsights.models.FieldRestrictionResult + :ivar default_value: The value that policy will set for the field if the + user does not provide a value. + :vartype default_value: str + :ivar values: The values that policy either requires or denies for the + field. + :vartype values: list[str] + :ivar policy: The details of the policy that is causing the field + restriction. + :vartype policy: ~azure.mgmt.policyinsights.models.PolicyReference + """ + + _validation = { + 'result': {'readonly': True}, + 'default_value': {'readonly': True}, + 'values': {'readonly': True}, + 'policy': {'readonly': True}, + } + + _attribute_map = { + 'result': {'key': 'result', 'type': 'str'}, + 'default_value': {'key': 'defaultValue', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[str]'}, + 'policy': {'key': 'policy', 'type': 'PolicyReference'}, + } + + def __init__(self, **kwargs) -> None: + super(FieldRestriction, self).__init__(**kwargs) + self.result = None + self.default_value = None + self.values = None + self.policy = None + + +class FieldRestrictions(Model): + """The restrictions that will be placed on a field in the resource by policy. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar field: The name of the field. This can be a top-level property like + 'name' or 'type' or an Azure Policy field alias. + :vartype field: str + :param restrictions: The restrictions placed on that field by policy. + :type restrictions: + list[~azure.mgmt.policyinsights.models.FieldRestriction] + """ + + _validation = { + 'field': {'readonly': True}, + } + + _attribute_map = { + 'field': {'key': 'field', 'type': 'str'}, + 'restrictions': {'key': 'restrictions', 'type': '[FieldRestriction]'}, + } + + def __init__(self, *, restrictions=None, **kwargs) -> None: + super(FieldRestrictions, self).__init__(**kwargs) + self.field = None + self.restrictions = restrictions + + class IfNotExistsEvaluationDetails(Model): """Evaluation details of IfNotExists effect. @@ -247,6 +528,35 @@ def __init__(self, *, odatacount: int=None, value=None, **kwargs) -> None: self.value = value +class PendingField(Model): + """A field that should be evaluated against Azure Policy to determine + restrictions. + + All required parameters must be populated in order to send to Azure. + + :param field: Required. The name of the field. This can be a top-level + property like 'name' or 'type' or an Azure Policy field alias. + :type field: str + :param values: The list of potential values for the field that should be + evaluated against Azure Policy. + :type values: list[str] + """ + + _validation = { + 'field': {'required': True}, + } + + _attribute_map = { + 'field': {'key': 'field', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[str]'}, + } + + def __init__(self, *, field: str, values=None, **kwargs) -> None: + super(PendingField, self).__init__(**kwargs) + self.field = field + self.values = values + + class PolicyAssignmentSummary(Model): """Policy assignment summary. @@ -386,6 +696,44 @@ def __init__(self, *, evaluated_expressions=None, if_not_exists_details=None, ** self.if_not_exists_details = if_not_exists_details +class PolicyEvaluationResult(Model): + """The result of a non-compliant policy evaluation against the given resource + content. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar policy_info: The details of the policy that was evaluated. + :vartype policy_info: ~azure.mgmt.policyinsights.models.PolicyReference + :ivar evaluation_result: The result of the policy evaluation against the + resource. This will typically be 'NonCompliant' but may contain other + values if errors were encountered. + :vartype evaluation_result: str + :ivar evaluation_details: The detailed results of the policy expressions + and values that were evaluated. + :vartype evaluation_details: + ~azure.mgmt.policyinsights.models.PolicyEvaluationDetails + """ + + _validation = { + 'policy_info': {'readonly': True}, + 'evaluation_result': {'readonly': True}, + 'evaluation_details': {'readonly': True}, + } + + _attribute_map = { + 'policy_info': {'key': 'policyInfo', 'type': 'PolicyReference'}, + 'evaluation_result': {'key': 'evaluationResult', 'type': 'str'}, + 'evaluation_details': {'key': 'evaluationDetails', 'type': 'PolicyEvaluationDetails'}, + } + + def __init__(self, **kwargs) -> None: + super(PolicyEvaluationResult, self).__init__(**kwargs) + self.policy_info = None + self.evaluation_result = None + self.evaluation_details = None + + class PolicyEvent(Model): """Policy event record. @@ -459,11 +807,17 @@ class PolicyEvent(Model): definition inside the policy set, if the policy assignment is for a policy set. :type policy_definition_reference_id: str + :param compliance_state: Compliance state of the resource. + :type compliance_state: str :param tenant_id: Tenant ID for the policy event record. :type tenant_id: str :param principal_oid: Principal object ID for the user who initiated the resource operation that triggered the policy event. :type principal_oid: str + :param components: Components events records populated only when URL + contains $expand=components clause. + :type components: + list[~azure.mgmt.policyinsights.models.ComponentEventDetails] """ _attribute_map = { @@ -495,11 +849,13 @@ class PolicyEvent(Model): 'policy_set_definition_parameters': {'key': 'policySetDefinitionParameters', 'type': 'str'}, 'management_group_ids': {'key': 'managementGroupIds', 'type': 'str'}, 'policy_definition_reference_id': {'key': 'policyDefinitionReferenceId', 'type': 'str'}, + 'compliance_state': {'key': 'complianceState', 'type': 'str'}, 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 'principal_oid': {'key': 'principalOid', 'type': 'str'}, + 'components': {'key': 'components', 'type': '[ComponentEventDetails]'}, } - def __init__(self, *, additional_properties=None, odataid: str=None, odatacontext: str=None, timestamp=None, resource_id: str=None, policy_assignment_id: str=None, policy_definition_id: str=None, effective_parameters: str=None, is_compliant: bool=None, subscription_id: str=None, resource_type: str=None, resource_location: str=None, resource_group: str=None, resource_tags: str=None, policy_assignment_name: str=None, policy_assignment_owner: str=None, policy_assignment_parameters: str=None, policy_assignment_scope: str=None, policy_definition_name: str=None, policy_definition_action: str=None, policy_definition_category: str=None, policy_set_definition_id: str=None, policy_set_definition_name: str=None, policy_set_definition_owner: str=None, policy_set_definition_category: str=None, policy_set_definition_parameters: str=None, management_group_ids: str=None, policy_definition_reference_id: str=None, tenant_id: str=None, principal_oid: str=None, **kwargs) -> None: + def __init__(self, *, additional_properties=None, odataid: str=None, odatacontext: str=None, timestamp=None, resource_id: str=None, policy_assignment_id: str=None, policy_definition_id: str=None, effective_parameters: str=None, is_compliant: bool=None, subscription_id: str=None, resource_type: str=None, resource_location: str=None, resource_group: str=None, resource_tags: str=None, policy_assignment_name: str=None, policy_assignment_owner: str=None, policy_assignment_parameters: str=None, policy_assignment_scope: str=None, policy_definition_name: str=None, policy_definition_action: str=None, policy_definition_category: str=None, policy_set_definition_id: str=None, policy_set_definition_name: str=None, policy_set_definition_owner: str=None, policy_set_definition_category: str=None, policy_set_definition_parameters: str=None, management_group_ids: str=None, policy_definition_reference_id: str=None, compliance_state: str=None, tenant_id: str=None, principal_oid: str=None, components=None, **kwargs) -> None: super(PolicyEvent, self).__init__(**kwargs) self.additional_properties = additional_properties self.odataid = odataid @@ -529,38 +885,10 @@ def __init__(self, *, additional_properties=None, odataid: str=None, odatacontex self.policy_set_definition_parameters = policy_set_definition_parameters self.management_group_ids = management_group_ids self.policy_definition_reference_id = policy_definition_reference_id + self.compliance_state = compliance_state self.tenant_id = tenant_id self.principal_oid = principal_oid - - -class PolicyEventsQueryResults(Model): - """Query results. - - :param odatacontext: OData context string; used by OData clients to - resolve type information based on metadata. - :type odatacontext: str - :param odatacount: OData entity count; represents the number of policy - event records returned. - :type odatacount: int - :param value: Query results. - :type value: list[~azure.mgmt.policyinsights.models.PolicyEvent] - """ - - _validation = { - 'odatacount': {'minimum': 0}, - } - - _attribute_map = { - 'odatacontext': {'key': '@odata\\.context', 'type': 'str'}, - 'odatacount': {'key': '@odata\\.count', 'type': 'int'}, - 'value': {'key': 'value', 'type': '[PolicyEvent]'}, - } - - def __init__(self, *, odatacontext: str=None, odatacount: int=None, value=None, **kwargs) -> None: - super(PolicyEventsQueryResults, self).__init__(**kwargs) - self.odatacontext = odatacontext - self.odatacount = odatacount - self.value = value + self.components = components class PolicyGroupSummary(Model): @@ -657,6 +985,48 @@ def __init__(self, **kwargs) -> None: self.name = None +class PolicyReference(Model): + """Resource identifiers for a policy. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar policy_definition_id: The resource identifier of the policy + definition. + :vartype policy_definition_id: str + :ivar policy_set_definition_id: The resource identifier of the policy set + definition. + :vartype policy_set_definition_id: str + :ivar policy_definition_reference_id: The reference identifier of a + specific policy definition within a policy set definition. + :vartype policy_definition_reference_id: str + :ivar policy_assignment_id: The resource identifier of the policy + assignment. + :vartype policy_assignment_id: str + """ + + _validation = { + 'policy_definition_id': {'readonly': True}, + 'policy_set_definition_id': {'readonly': True}, + 'policy_definition_reference_id': {'readonly': True}, + 'policy_assignment_id': {'readonly': True}, + } + + _attribute_map = { + 'policy_definition_id': {'key': 'policyDefinitionId', 'type': 'str'}, + 'policy_set_definition_id': {'key': 'policySetDefinitionId', 'type': 'str'}, + 'policy_definition_reference_id': {'key': 'policyDefinitionReferenceId', 'type': 'str'}, + 'policy_assignment_id': {'key': 'policyAssignmentId', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(PolicyReference, self).__init__(**kwargs) + self.policy_definition_id = None + self.policy_set_definition_id = None + self.policy_definition_reference_id = None + self.policy_assignment_id = None + + class PolicyState(Model): """Policy state record. @@ -741,6 +1111,10 @@ class PolicyState(Model): ~azure.mgmt.policyinsights.models.PolicyEvaluationDetails :param policy_definition_group_names: Policy definition group names. :type policy_definition_group_names: list[str] + :param components: Components state compliance records populated only when + URL contains $expand=components clause. + :type components: + list[~azure.mgmt.policyinsights.models.ComponentStateDetails] :ivar policy_definition_version: Evaluated policy definition version. :vartype policy_definition_version: str :ivar policy_set_definition_version: Evaluated policy set definition @@ -788,12 +1162,13 @@ class PolicyState(Model): 'compliance_state': {'key': 'complianceState', 'type': 'str'}, 'policy_evaluation_details': {'key': 'policyEvaluationDetails', 'type': 'PolicyEvaluationDetails'}, 'policy_definition_group_names': {'key': 'policyDefinitionGroupNames', 'type': '[str]'}, + 'components': {'key': 'components', 'type': '[ComponentStateDetails]'}, 'policy_definition_version': {'key': 'policyDefinitionVersion', 'type': 'str'}, 'policy_set_definition_version': {'key': 'policySetDefinitionVersion', 'type': 'str'}, 'policy_assignment_version': {'key': 'policyAssignmentVersion', 'type': 'str'}, } - def __init__(self, *, additional_properties=None, odataid: str=None, odatacontext: str=None, timestamp=None, resource_id: str=None, policy_assignment_id: str=None, policy_definition_id: str=None, effective_parameters: str=None, is_compliant: bool=None, subscription_id: str=None, resource_type: str=None, resource_location: str=None, resource_group: str=None, resource_tags: str=None, policy_assignment_name: str=None, policy_assignment_owner: str=None, policy_assignment_parameters: str=None, policy_assignment_scope: str=None, policy_definition_name: str=None, policy_definition_action: str=None, policy_definition_category: str=None, policy_set_definition_id: str=None, policy_set_definition_name: str=None, policy_set_definition_owner: str=None, policy_set_definition_category: str=None, policy_set_definition_parameters: str=None, management_group_ids: str=None, policy_definition_reference_id: str=None, compliance_state: str=None, policy_evaluation_details=None, policy_definition_group_names=None, **kwargs) -> None: + def __init__(self, *, additional_properties=None, odataid: str=None, odatacontext: str=None, timestamp=None, resource_id: str=None, policy_assignment_id: str=None, policy_definition_id: str=None, effective_parameters: str=None, is_compliant: bool=None, subscription_id: str=None, resource_type: str=None, resource_location: str=None, resource_group: str=None, resource_tags: str=None, policy_assignment_name: str=None, policy_assignment_owner: str=None, policy_assignment_parameters: str=None, policy_assignment_scope: str=None, policy_definition_name: str=None, policy_definition_action: str=None, policy_definition_category: str=None, policy_set_definition_id: str=None, policy_set_definition_name: str=None, policy_set_definition_owner: str=None, policy_set_definition_category: str=None, policy_set_definition_parameters: str=None, management_group_ids: str=None, policy_definition_reference_id: str=None, compliance_state: str=None, policy_evaluation_details=None, policy_definition_group_names=None, components=None, **kwargs) -> None: super(PolicyState, self).__init__(**kwargs) self.additional_properties = additional_properties self.odataid = odataid @@ -826,41 +1201,12 @@ def __init__(self, *, additional_properties=None, odataid: str=None, odatacontex self.compliance_state = compliance_state self.policy_evaluation_details = policy_evaluation_details self.policy_definition_group_names = policy_definition_group_names + self.components = components self.policy_definition_version = None self.policy_set_definition_version = None self.policy_assignment_version = None -class PolicyStatesQueryResults(Model): - """Query results. - - :param odatacontext: OData context string; used by OData clients to - resolve type information based on metadata. - :type odatacontext: str - :param odatacount: OData entity count; represents the number of policy - state records returned. - :type odatacount: int - :param value: Query results. - :type value: list[~azure.mgmt.policyinsights.models.PolicyState] - """ - - _validation = { - 'odatacount': {'minimum': 0}, - } - - _attribute_map = { - 'odatacontext': {'key': '@odata\\.context', 'type': 'str'}, - 'odatacount': {'key': '@odata\\.count', 'type': 'int'}, - 'value': {'key': 'value', 'type': '[PolicyState]'}, - } - - def __init__(self, *, odatacontext: str=None, odatacount: int=None, value=None, **kwargs) -> None: - super(PolicyStatesQueryResults, self).__init__(**kwargs) - self.odatacontext = odatacontext - self.odatacount = odatacount - self.value = value - - class PolicyTrackedResource(Model): """Policy tracked resource record. @@ -991,8 +1337,11 @@ class QueryOptions(Model): :type to: datetime :param apply: OData apply expression for aggregations. :type apply: str + :param skip_token: Skiptoken is only provided if a previous response + returned a partial result as a part of nextLink element. + :type skip_token: str :param expand: The $expand query parameter. For example, to expand - policyEvaluationDetails, use $expand=policyEvaluationDetails + components use $expand=components :type expand: str """ @@ -1004,10 +1353,11 @@ class QueryOptions(Model): 'from_property': {'key': '', 'type': 'iso-8601'}, 'to': {'key': '', 'type': 'iso-8601'}, 'apply': {'key': '', 'type': 'str'}, + 'skip_token': {'key': '', 'type': 'str'}, 'expand': {'key': '', 'type': 'str'}, } - def __init__(self, *, top: int=None, filter: str=None, order_by: str=None, select: str=None, from_property=None, to=None, apply: str=None, expand: 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, skip_token: str=None, expand: str=None, **kwargs) -> None: super(QueryOptions, self).__init__(**kwargs) self.top = top self.filter = filter @@ -1016,6 +1366,7 @@ def __init__(self, *, top: int=None, filter: str=None, order_by: str=None, selec self.from_property = from_property self.to = to self.apply = apply + self.skip_token = skip_token self.expand = expand diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_paged_models.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_paged_models.py index d944feb8b98c..71bbbaba4e81 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_paged_models.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_paged_models.py @@ -51,6 +51,32 @@ class RemediationPaged(Paged): def __init__(self, *args, **kwargs): super(RemediationPaged, self).__init__(*args, **kwargs) +class PolicyEventPaged(Paged): + """ + A paging container for iterating over a list of :class:`PolicyEvent ` object + """ + + _attribute_map = { + 'next_link': {'key': '@odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[PolicyEvent]'} + } + + def __init__(self, *args, **kwargs): + + super(PolicyEventPaged, self).__init__(*args, **kwargs) +class PolicyStatePaged(Paged): + """ + A paging container for iterating over a list of :class:`PolicyState ` object + """ + + _attribute_map = { + 'next_link': {'key': '@odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[PolicyState]'} + } + + def __init__(self, *args, **kwargs): + + super(PolicyStatePaged, self).__init__(*args, **kwargs) class SlimPolicyMetadataPaged(Paged): """ A paging container for iterating over a list of :class:`SlimPolicyMetadata ` object diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_policy_insights_client_enums.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_policy_insights_client_enums.py index 887a3cd293b8..163b1827381d 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_policy_insights_client_enums.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/models/_policy_insights_client_enums.py @@ -18,6 +18,13 @@ class ResourceDiscoveryMode(str, Enum): re_evaluate_compliance = "ReEvaluateCompliance" #: Re-evaluate the compliance state of resources and then remediate the resources found to be non-compliant. +class FieldRestrictionResult(str, Enum): + + required = "Required" #: The field and/or values are required by policy. + removed = "Removed" #: The field will be removed by policy. + deny = "Deny" #: The field and/or values will be denied by policy. + + class PolicyStatesResource(str, Enum): default = "default" diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/__init__.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/__init__.py index 65d536557fe1..06de99f5766e 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/__init__.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/__init__.py @@ -15,6 +15,7 @@ from ._policy_states_operations import PolicyStatesOperations from ._operations import Operations from ._policy_metadata_operations import PolicyMetadataOperations +from ._policy_restrictions_operations import PolicyRestrictionsOperations __all__ = [ 'PolicyTrackedResourcesOperations', @@ -23,4 +24,5 @@ 'PolicyStatesOperations', 'Operations', 'PolicyMetadataOperations', + 'PolicyRestrictionsOperations', ] diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_events_operations.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_events_operations.py index 38ff6aef394b..454b0a2bf9a3 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_events_operations.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_events_operations.py @@ -26,7 +26,7 @@ class PolicyEventsOperations(object): :param deserializer: An object model deserializer. :ivar policy_events_resource: The name of the virtual resource under PolicyEvents resource type; only "default" is allowed. Constant value: "default". :ivar management_groups_namespace: The namespace for Microsoft Management RP; only "Microsoft.Management" is allowed. Constant value: "Microsoft.Management". - :ivar api_version: API version to use with the client requests. Constant value: "2018-04-04". + :ivar api_version: Client Api Version. Constant value: "2019-10-01". :ivar authorization_namespace: The namespace for Microsoft Authorization resource provider; only "Microsoft.Authorization" is allowed. Constant value: "Microsoft.Authorization". """ @@ -39,7 +39,7 @@ def __init__(self, client, config, serializer, deserializer): self._deserialize = deserializer self.policy_events_resource = "default" self.management_groups_namespace = "Microsoft.Management" - self.api_version = "2018-04-04" + self.api_version = "2019-10-01" self.authorization_namespace = "Microsoft.Authorization" self.config = config @@ -57,9 +57,9 @@ def list_query_results_for_management_group( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyEventsQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyEventsQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyEvent + :rtype: + ~azure.mgmt.policyinsights.models.PolicyEventPaged[~azure.mgmt.policyinsights.models.PolicyEvent] :raises: :class:`QueryFailureException` """ @@ -84,58 +84,74 @@ def list_query_results_for_management_group( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_management_group.metadata['url'] - path_format_arguments = { - 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), - 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), - 'managementGroupName': self._serialize.url("management_group_name", management_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyEventsQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_management_group.metadata['url'] + path_format_arguments = { + 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupName': self._serialize.url("management_group_name", management_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyEventPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupName}/providers/Microsoft.PolicyInsights/policyEvents/{policyEventsResource}/queryResults'} @@ -153,9 +169,9 @@ def list_query_results_for_subscription( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyEventsQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyEventsQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyEvent + :rtype: + ~azure.mgmt.policyinsights.models.PolicyEventPaged[~azure.mgmt.policyinsights.models.PolicyEvent] :raises: :class:`QueryFailureException` """ @@ -180,57 +196,73 @@ def list_query_results_for_subscription( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_subscription.metadata['url'] - path_format_arguments = { - 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyEventsQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_subscription.metadata['url'] + path_format_arguments = { + 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyEventPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/{policyEventsResource}/queryResults'} @@ -250,9 +282,9 @@ def list_query_results_for_resource_group( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyEventsQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyEventsQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyEvent + :rtype: + ~azure.mgmt.policyinsights.models.PolicyEventPaged[~azure.mgmt.policyinsights.models.PolicyEvent] :raises: :class:`QueryFailureException` """ @@ -277,58 +309,74 @@ def list_query_results_for_resource_group( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_resource_group.metadata['url'] - path_format_arguments = { - 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), - '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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyEventsQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_resource_group.metadata['url'] + path_format_arguments = { + 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), + '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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyEventPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyEvents/{policyEventsResource}/queryResults'} @@ -346,9 +394,9 @@ def list_query_results_for_resource( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyEventsQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyEventsQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyEvent + :rtype: + ~azure.mgmt.policyinsights.models.PolicyEventPaged[~azure.mgmt.policyinsights.models.PolicyEvent] :raises: :class:`QueryFailureException` """ @@ -373,57 +421,78 @@ def list_query_results_for_resource( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_resource.metadata['url'] - path_format_arguments = { - 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), - '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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyEventsQueryResults', response) - + expand = None + if query_options is not None: + expand = query_options.expand + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_resource.metadata['url'] + path_format_arguments = { + 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), + '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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyEventPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/policyEvents/{policyEventsResource}/queryResults'} @@ -443,9 +512,9 @@ def list_query_results_for_policy_set_definition( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyEventsQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyEventsQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyEvent + :rtype: + ~azure.mgmt.policyinsights.models.PolicyEventPaged[~azure.mgmt.policyinsights.models.PolicyEvent] :raises: :class:`QueryFailureException` """ @@ -470,59 +539,75 @@ def list_query_results_for_policy_set_definition( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_policy_set_definition.metadata['url'] - path_format_arguments = { - 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), - 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), - 'policySetDefinitionName': self._serialize.url("policy_set_definition_name", policy_set_definition_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyEventsQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_policy_set_definition.metadata['url'] + path_format_arguments = { + 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), + 'policySetDefinitionName': self._serialize.url("policy_set_definition_name", policy_set_definition_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyEventPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_policy_set_definition.metadata = {'url': '/subscriptions/{subscriptionId}/providers/{authorizationNamespace}/policySetDefinitions/{policySetDefinitionName}/providers/Microsoft.PolicyInsights/policyEvents/{policyEventsResource}/queryResults'} @@ -542,9 +627,9 @@ def list_query_results_for_policy_definition( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyEventsQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyEventsQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyEvent + :rtype: + ~azure.mgmt.policyinsights.models.PolicyEventPaged[~azure.mgmt.policyinsights.models.PolicyEvent] :raises: :class:`QueryFailureException` """ @@ -569,59 +654,75 @@ def list_query_results_for_policy_definition( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_policy_definition.metadata['url'] - path_format_arguments = { - 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), - 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), - 'policyDefinitionName': self._serialize.url("policy_definition_name", policy_definition_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyEventsQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_policy_definition.metadata['url'] + path_format_arguments = { + 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), + 'policyDefinitionName': self._serialize.url("policy_definition_name", policy_definition_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyEventPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_policy_definition.metadata = {'url': '/subscriptions/{subscriptionId}/providers/{authorizationNamespace}/policyDefinitions/{policyDefinitionName}/providers/Microsoft.PolicyInsights/policyEvents/{policyEventsResource}/queryResults'} @@ -641,9 +742,9 @@ def list_query_results_for_subscription_level_policy_assignment( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyEventsQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyEventsQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyEvent + :rtype: + ~azure.mgmt.policyinsights.models.PolicyEventPaged[~azure.mgmt.policyinsights.models.PolicyEvent] :raises: :class:`QueryFailureException` """ @@ -668,59 +769,75 @@ def list_query_results_for_subscription_level_policy_assignment( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_subscription_level_policy_assignment.metadata['url'] - path_format_arguments = { - 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), - 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), - 'policyAssignmentName': self._serialize.url("policy_assignment_name", policy_assignment_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyEventsQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_subscription_level_policy_assignment.metadata['url'] + path_format_arguments = { + 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), + 'policyAssignmentName': self._serialize.url("policy_assignment_name", policy_assignment_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyEventPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_subscription_level_policy_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/providers/{authorizationNamespace}/policyAssignments/{policyAssignmentName}/providers/Microsoft.PolicyInsights/policyEvents/{policyEventsResource}/queryResults'} @@ -742,9 +859,9 @@ def list_query_results_for_resource_group_level_policy_assignment( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyEventsQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyEventsQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyEvent + :rtype: + ~azure.mgmt.policyinsights.models.PolicyEventPaged[~azure.mgmt.policyinsights.models.PolicyEvent] :raises: :class:`QueryFailureException` """ @@ -769,117 +886,76 @@ def list_query_results_for_resource_group_level_policy_assignment( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_resource_group_level_policy_assignment.metadata['url'] - path_format_arguments = { - 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), - 'policyAssignmentName': self._serialize.url("policy_assignment_name", policy_assignment_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyEventsQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_resource_group_level_policy_assignment.metadata['url'] + path_format_arguments = { + 'policyEventsResource': self._serialize.url("self.policy_events_resource", self.policy_events_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), + 'policyAssignmentName': self._serialize.url("policy_assignment_name", policy_assignment_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyEventPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_resource_group_level_policy_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{authorizationNamespace}/policyAssignments/{policyAssignmentName}/providers/Microsoft.PolicyInsights/policyEvents/{policyEventsResource}/queryResults'} - - def get_metadata( - self, scope, custom_headers=None, raw=False, **operation_config): - """Gets OData metadata XML document. - - :param scope: A valid scope, i.e. management group, subscription, - resource group, or resource ID. Scope used has no effect on metadata - returned. - :type scope: 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: str or ClientRawResponse if raw=true - :rtype: str or ~msrest.pipeline.ClientRawResponse - :raises: - :class:`QueryFailureException` - """ - # Construct URL - url = self.get_metadata.metadata['url'] - path_format_arguments = { - 'scope': self._serialize.url("scope", scope, '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') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/xml' - 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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('str', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - get_metadata.metadata = {'url': '/{scope}/providers/Microsoft.PolicyInsights/policyEvents/$metadata'} diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_restrictions_operations.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_restrictions_operations.py new file mode 100644 index 000000000000..f089f2afc872 --- /dev/null +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_restrictions_operations.py @@ -0,0 +1,186 @@ +# 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 PolicyRestrictionsOperations(object): + """PolicyRestrictionsOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :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 api_version: The API version to use for this operation. Constant value: "2020-07-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2020-07-01" + + self.config = config + + def check_at_subscription_scope( + self, subscription_id, resource_details, pending_fields=None, custom_headers=None, raw=False, **operation_config): + """Checks what restrictions Azure Policy will place on a resource within a + subscription. + + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :param resource_details: The information about the resource that will + be evaluated. + :type resource_details: + ~azure.mgmt.policyinsights.models.CheckRestrictionsResourceDetails + :param pending_fields: The list of fields and values that should be + evaluated for potential restrictions. + :type pending_fields: + list[~azure.mgmt.policyinsights.models.PendingField] + :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: CheckRestrictionsResult or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.CheckRestrictionsResult or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + parameters = models.CheckRestrictionsRequest(resource_details=resource_details, pending_fields=pending_fields) + + # Construct URL + url = self.check_at_subscription_scope.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str', min_length=1) + } + 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', min_length=1) + + # 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, 'CheckRestrictionsRequest') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + 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('CheckRestrictionsResult', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + check_at_subscription_scope.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/checkPolicyRestrictions'} + + def check_at_resource_group_scope( + self, subscription_id, resource_group_name, resource_details, pending_fields=None, custom_headers=None, raw=False, **operation_config): + """Checks what restrictions Azure Policy will place on a resource within a + resource group. Use this when the resource group the resource will be + created in is already known. + + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :param resource_group_name: The name of the resource group. The name + is case insensitive. + :type resource_group_name: str + :param resource_details: The information about the resource that will + be evaluated. + :type resource_details: + ~azure.mgmt.policyinsights.models.CheckRestrictionsResourceDetails + :param pending_fields: The list of fields and values that should be + evaluated for potential restrictions. + :type pending_fields: + list[~azure.mgmt.policyinsights.models.PendingField] + :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: CheckRestrictionsResult or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.policyinsights.models.CheckRestrictionsResult or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + parameters = models.CheckRestrictionsRequest(resource_details=resource_details, pending_fields=pending_fields) + + # Construct URL + url = self.check_at_resource_group_scope.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$') + } + 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', min_length=1) + + # 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, 'CheckRestrictionsRequest') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + 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('CheckRestrictionsResult', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + check_at_resource_group_scope.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/checkPolicyRestrictions'} diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_states_operations.py b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_states_operations.py index e39c40bae51a..2afc48ce835e 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_states_operations.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/azure/mgmt/policyinsights/operations/_policy_states_operations.py @@ -65,9 +65,9 @@ def list_query_results_for_management_group( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyStatesQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyStatesQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyState + :rtype: + ~azure.mgmt.policyinsights.models.PolicyStatePaged[~azure.mgmt.policyinsights.models.PolicyState] :raises: :class:`QueryFailureException` """ @@ -92,58 +92,74 @@ def list_query_results_for_management_group( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_management_group.metadata['url'] - path_format_arguments = { - 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), - 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), - 'managementGroupName': self._serialize.url("management_group_name", management_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyStatesQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_management_group.metadata['url'] + path_format_arguments = { + 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), + 'managementGroupsNamespace': self._serialize.url("self.management_groups_namespace", self.management_groups_namespace, 'str'), + 'managementGroupName': self._serialize.url("management_group_name", management_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyStatePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_management_group.metadata = {'url': '/providers/{managementGroupsNamespace}/managementGroups/{managementGroupName}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults'} @@ -248,9 +264,9 @@ def list_query_results_for_subscription( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyStatesQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyStatesQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyState + :rtype: + ~azure.mgmt.policyinsights.models.PolicyStatePaged[~azure.mgmt.policyinsights.models.PolicyState] :raises: :class:`QueryFailureException` """ @@ -275,57 +291,73 @@ def list_query_results_for_subscription( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_subscription.metadata['url'] - path_format_arguments = { - 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyStatesQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_subscription.metadata['url'] + path_format_arguments = { + 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyStatePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults'} @@ -431,9 +463,9 @@ def list_query_results_for_resource_group( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyStatesQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyStatesQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyState + :rtype: + ~azure.mgmt.policyinsights.models.PolicyStatePaged[~azure.mgmt.policyinsights.models.PolicyState] :raises: :class:`QueryFailureException` """ @@ -458,58 +490,74 @@ def list_query_results_for_resource_group( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_resource_group.metadata['url'] - path_format_arguments = { - 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), - '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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyStatesQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_resource_group.metadata['url'] + path_format_arguments = { + 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), + '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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyStatePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults'} @@ -616,9 +664,9 @@ def list_query_results_for_resource( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyStatesQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyStatesQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyState + :rtype: + ~azure.mgmt.policyinsights.models.PolicyStatePaged[~azure.mgmt.policyinsights.models.PolicyState] :raises: :class:`QueryFailureException` """ @@ -646,59 +694,75 @@ def list_query_results_for_resource( expand = None if query_options is not None: expand = query_options.expand - - # Construct URL - url = self.list_query_results_for_resource.metadata['url'] - path_format_arguments = { - 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), - '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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') - if expand is not None: - query_parameters['$expand'] = self._serialize.query("expand", expand, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyStatesQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_resource.metadata['url'] + path_format_arguments = { + 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), + '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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyStatePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_resource.metadata = {'url': '/{resourceId}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults'} @@ -956,9 +1020,9 @@ def list_query_results_for_policy_set_definition( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyStatesQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyStatesQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyState + :rtype: + ~azure.mgmt.policyinsights.models.PolicyStatePaged[~azure.mgmt.policyinsights.models.PolicyState] :raises: :class:`QueryFailureException` """ @@ -983,59 +1047,75 @@ def list_query_results_for_policy_set_definition( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_policy_set_definition.metadata['url'] - path_format_arguments = { - 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), - 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), - 'policySetDefinitionName': self._serialize.url("policy_set_definition_name", policy_set_definition_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyStatesQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_policy_set_definition.metadata['url'] + path_format_arguments = { + 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), + 'policySetDefinitionName': self._serialize.url("policy_set_definition_name", policy_set_definition_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyStatePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_policy_set_definition.metadata = {'url': '/subscriptions/{subscriptionId}/providers/{authorizationNamespace}/policySetDefinitions/{policySetDefinitionName}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults'} @@ -1146,9 +1226,9 @@ def list_query_results_for_policy_definition( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyStatesQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyStatesQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyState + :rtype: + ~azure.mgmt.policyinsights.models.PolicyStatePaged[~azure.mgmt.policyinsights.models.PolicyState] :raises: :class:`QueryFailureException` """ @@ -1173,59 +1253,75 @@ def list_query_results_for_policy_definition( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_policy_definition.metadata['url'] - path_format_arguments = { - 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), - 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), - 'policyDefinitionName': self._serialize.url("policy_definition_name", policy_definition_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyStatesQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_policy_definition.metadata['url'] + path_format_arguments = { + 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), + 'policyDefinitionName': self._serialize.url("policy_definition_name", policy_definition_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyStatePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_policy_definition.metadata = {'url': '/subscriptions/{subscriptionId}/providers/{authorizationNamespace}/policyDefinitions/{policyDefinitionName}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults'} @@ -1335,9 +1431,9 @@ def list_query_results_for_subscription_level_policy_assignment( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyStatesQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyStatesQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyState + :rtype: + ~azure.mgmt.policyinsights.models.PolicyStatePaged[~azure.mgmt.policyinsights.models.PolicyState] :raises: :class:`QueryFailureException` """ @@ -1362,59 +1458,75 @@ def list_query_results_for_subscription_level_policy_assignment( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_subscription_level_policy_assignment.metadata['url'] - path_format_arguments = { - 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), - 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), - 'policyAssignmentName': self._serialize.url("policy_assignment_name", policy_assignment_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyStatesQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_subscription_level_policy_assignment.metadata['url'] + path_format_arguments = { + 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), + 'policyAssignmentName': self._serialize.url("policy_assignment_name", policy_assignment_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyStatePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_subscription_level_policy_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/providers/{authorizationNamespace}/policyAssignments/{policyAssignmentName}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults'} @@ -1526,9 +1638,9 @@ def list_query_results_for_resource_group_level_policy_assignment( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: PolicyStatesQueryResults or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.policyinsights.models.PolicyStatesQueryResults or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of PolicyState + :rtype: + ~azure.mgmt.policyinsights.models.PolicyStatePaged[~azure.mgmt.policyinsights.models.PolicyState] :raises: :class:`QueryFailureException` """ @@ -1553,60 +1665,76 @@ def list_query_results_for_resource_group_level_policy_assignment( apply = None if query_options is not None: apply = query_options.apply - - # Construct URL - url = self.list_query_results_for_resource_group_level_policy_assignment.metadata['url'] - path_format_arguments = { - 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), - 'policyAssignmentName': self._serialize.url("policy_assignment_name", policy_assignment_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 order_by is not None: - query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') - if select is not None: - query_parameters['$select'] = self._serialize.query("select", select, 'str') - if from_parameter is not None: - query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') - if to is not None: - query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') - if apply is not None: - query_parameters['$apply'] = self._serialize.query("apply", apply, '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.QueryFailureException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('PolicyStatesQueryResults', response) - + skip_token = None + if query_options is not None: + skip_token = query_options.skip_token + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_query_results_for_resource_group_level_policy_assignment.metadata['url'] + path_format_arguments = { + 'policyStatesResource': self._serialize.url("policy_states_resource", policy_states_resource, 'str'), + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'authorizationNamespace': self._serialize.url("self.authorization_namespace", self.authorization_namespace, 'str'), + 'policyAssignmentName': self._serialize.url("policy_assignment_name", policy_assignment_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 order_by is not None: + query_parameters['$orderby'] = self._serialize.query("order_by", order_by, 'str') + if select is not None: + query_parameters['$select'] = self._serialize.query("select", select, 'str') + if from_parameter is not None: + query_parameters['$from'] = self._serialize.query("from_parameter", from_parameter, 'iso-8601') + if to is not None: + query_parameters['$to'] = self._serialize.query("to", to, 'iso-8601') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + if apply is not None: + query_parameters['$apply'] = self._serialize.query("apply", apply, 'str') + if skip_token is not None: + query_parameters['$skiptoken'] = self._serialize.query("skip_token", skip_token, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + 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 + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.PolicyStatePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list_query_results_for_resource_group_level_policy_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{authorizationNamespace}/policyAssignments/{policyAssignmentName}/providers/Microsoft.PolicyInsights/policyStates/{policyStatesResource}/queryResults'} diff --git a/sdk/policyinsights/azure-mgmt-policyinsights/setup.py b/sdk/policyinsights/azure-mgmt-policyinsights/setup.py index df5f109ce806..11d02ac515c1 100644 --- a/sdk/policyinsights/azure-mgmt-policyinsights/setup.py +++ b/sdk/policyinsights/azure-mgmt-policyinsights/setup.py @@ -36,7 +36,9 @@ pass # Version extraction inspired from 'requests' -with open(os.path.join(package_folder_path, 'version.py'), 'r') as fd: +with open(os.path.join(package_folder_path, 'version.py') + if os.path.exists(os.path.join(package_folder_path, 'version.py')) + else os.path.join(package_folder_path, '_version.py'), 'r') as fd: version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1)