diff --git a/1.sh b/1.sh index ebc8d42..db66cd8 100644 --- a/1.sh +++ b/1.sh @@ -5,3 +5,5 @@ do echo "$item" autorest --ansible --use=./ "$item"/resource-manager/readme.md --log --ansible-output-folder=../tmp done +echo "This is test programe" + diff --git a/2.log b/2.log new file mode 100644 index 0000000..8668347 --- /dev/null +++ b/2.log @@ -0,0 +1,106 @@ + d5a354f4430ae820adbc3daf281f86f0e743cf62 +ApplicationGateways + ApplicationGatewayPrivateLinkResources + ApplicationGatewayPrivateEndpointConnections + ApplicationSecurityGroups + AvailableDelegations + AvailableResourceGroupDelegations + AvailableServiceAliases + AzureFirewalls + AzureFirewallFqdnTags + WebCategories + BastionHosts + CustomIPPrefixes + DdosCustomPolicies + DdosProtectionPlans + DscpConfiguration + AvailableEndpointServices + ExpressRouteCircuitAuthorizations + ExpressRouteCircuitPeerings + ExpressRouteCircuitConnections + PeerExpressRouteCircuitConnections + ExpressRouteCircuits + ExpressRouteServiceProviders + ExpressRouteCrossConnections + ExpressRouteCrossConnectionPeerings + ExpressRoutePortsLocations + ExpressRoutePorts + ExpressRouteLinks + FirewallPolicies + FirewallPolicyRuleCollectionGroups + IpAllocations + IpGroups + LoadBalancers + LoadBalancerBackendAddressPools + LoadBalancerFrontendIPConfigurations + InboundNatRules + LoadBalancerLoadBalancingRules + LoadBalancerOutboundRules + LoadBalancerNetworkInterfaces + LoadBalancerProbes + NatGateways + NetworkInterfaces + NetworkInterfaceIPConfigurations + NetworkInterfaceLoadBalancers + NetworkInterfaceTapConfigurations + NetworkProfiles + NetworkSecurityGroups + SecurityRules + DefaultSecurityRules + NetworkVirtualAppliances + VirtualApplianceSites + VirtualApplianceSkus + InboundSecurityRule + NetworkWatchers + PacketCaptures + ConnectionMonitors + FlowLogs + Operations + PrivateEndpoints + AvailablePrivateEndpointTypes + PrivateDnsZoneGroups + PrivateLinkServices + PublicIPAddresses + PublicIPPrefixes + RouteFilters + RouteFilterRules + RouteTables + Routes + SecurityPartnerProviders + BgpServiceCommunities + ServiceEndpointPolicies + ServiceEndpointPolicyDefinitions + ServiceTags + Usages + VirtualNetworks + Subnets + ResourceNavigationLinks + ServiceAssociationLinks + VirtualNetworkPeerings + VirtualNetworkGateways + VirtualNetworkGatewayConnections + LocalNetworkGateways + VirtualNetworkTaps + VirtualRouters + VirtualRouterPeerings + VirtualWans + VpnSites + VpnSiteLinks + VpnSitesConfiguration + VpnServerConfigurations + VirtualHubs + HubVirtualNetworkConnections + VpnGateways + VpnConnections + VpnSiteLinkConnections + VpnLinkConnections + P2sVpnGateways + VpnServerConfigurationsAssociatedWithVirtualWan + VirtualHubRouteTableV2s + ExpressRouteGateways + ExpressRouteConnections + VirtualHubBgpConnection + VirtualHubBgpConnections + VirtualHubIpConfiguration + HubRouteTables + WebApplicationFirewallPolicies diff --git a/2.sh b/2.sh new file mode 100644 index 0000000..ce6f684 --- /dev/null +++ b/2.sh @@ -0,0 +1,4 @@ +while read line +do + echo $line +done < 2.log diff --git a/add.sh b/add.sh index 9b881be..33ca2b2 100755 --- a/add.sh +++ b/add.sh @@ -2,3 +2,4 @@ echo "test" echo "pass" echo $1 echo "Hello World" +echo "Hello World" diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7c6c778..b900a02 100755 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -6,6 +6,19 @@ parameters: - name: PYTHON_VER displayName: 'Python Version' type: string +<<<<<<< HEAD + default: "2.7" + values: + - "2.7" + - "3.6" +- name: ANSIBLE_VER + displayName: 'Ansible Version' + type: string + default: "2.9.0" + values: + - "2.9.0" + - "2.10.0" +======= default: python2 values: - python3 @@ -18,6 +31,7 @@ parameters: values: - 9 - 10 +>>>>>>> 6b54757fc54cbf179545d1488a54034ba6e6ab91 trigger: - master @@ -31,6 +45,12 @@ steps: - script: echo ${{ parameters.PYTHON_VER }} and ${{ parameters.ANSIBLE_VER }} displayName: 'Get predefine parameter' +<<<<<<< HEAD +- script: echo Python${{ parameters.PYTHON_VER }} and ${{ parameters.ANSIBLE_VER }} + displayName: 'Get predefine parameter' + +======= +>>>>>>> 6b54757fc54cbf179545d1488a54034ba6e6ab91 - script: | echo Add other tasks to build, test, and deploy your project. echo See https://aka.ms/yaml diff --git a/azure_rm_registrationassignment.py b/azure_rm_registrationassignment.py new file mode 100644 index 0000000..d9c0466 --- /dev/null +++ b/azure_rm_registrationassignment.py @@ -0,0 +1,388 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationassignment +version_added: '2.9' +short_description: Manage Azure RegistrationAssignment instance. +description: + - 'Create, update and delete instance of Azure RegistrationAssignment.' +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_assignment_id: + description: + - Guid of the registration assignment. + required: true + type: str + expand_registration_definition: + description: + - >- + Tells whether to return registration definition details also along with + registration assignment details. + type: bool + properties: + description: + - Properties of a registration assignment. + type: dict + required: true + suboptions: + registration_definition_id: + description: + - Fully qualified path of the registration definition. + required: true + type: str + registration_definition: + description: + - Registration definition inside registration assignment. + type: dict + suboptions: + properties: + description: + - >- + Properties of registration definition inside registration + assignment. + type: dict + plan: + description: + - Plan details for the managed services. + type: dict + suboptions: + name: + description: + - The plan name. + required: true + type: str + publisher: + description: + - The publisher ID. + required: true + type: str + product: + description: + - The product code. + required: true + type: str + version: + description: + - The plan's version. + required: true + type: str + state: + description: + - Assert the state of the RegistrationAssignment. + - >- + Use C(present) to create or update an RegistrationAssignment and + C(absent) to delete it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Delete Registration Assignment + azure_rm_registrationassignment: + registration_assignment_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + + - name: Put Registration Assignment + azure_rm_registrationassignment: + registration_assignment_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + +''' + +RETURN = ''' +properties: + description: + - Properties of a registration assignment. + returned: always + type: dict + sample: null + contains: + registration_definition_id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null + registration_definition: + description: + - Registration definition inside registration assignment. + returned: always + type: dict + sample: null + contains: + properties: + description: + - >- + Properties of registration definition inside registration + assignment. + returned: always + type: dict + sample: null + plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null +id: + description: + - The fully qualified path of the registration assignment. + returned: always + type: str + sample: null +type: + description: + - Type of the resource. + returned: always + type: str + sample: null +name: + description: + - Name of the registration assignment. + returned: always + type: str + sample: null + +''' +import uuid +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMRegistrationAssignment(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_assignment_id=dict( + type='str', + ), + expand_registration_definition=dict( + type='bool' + ), + properties=dict( + type='dict', + disposition='/properties', + options=dict( + registration_definition_id=dict( + type='str', + disposition='registration_definition_id', + required=True + ), + registration_definition=dict( + type='dict', + updatable=False, + disposition='registration_definition', + options=dict( + properties=dict( + type='dict', + disposition='properties' + ), + plan=dict( + type='dict', + disposition='plan', + options=dict( + name=dict( + type='str', + disposition='name', + required=True + ), + publisher=dict( + type='str', + disposition='publisher', + required=True + ), + product=dict( + type='str', + disposition='product', + required=True + ), + version=dict( + type='str', + disposition='version', + required=True + ) + ) + ) + ) + ) + ) + ), + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.scope = None + self.registration_assignment_id = None + #self.expand_registration_definition = None + self.body = {} + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMRegistrationAssignment, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + if self.registration_assignment_id is None: + self.registration_assignment_id = str(uuid.uuid4()) + + self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-02-01-preview') + + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + self.results['state'] = response + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + self.results['state'] = response + + return self.results + + def create_update_resource(self): + try: + response = self.mgmt_client.registration_assignments.create_or_update(scope=self.scope, + registration_assignment_id=self.registration_assignment_id, + properties=self.body.get('properties', None), + request_body=self.body) + if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + response = self.get_poller_result(response) + except CloudError as exc: + self.log('Error attempting to create the RegistrationAssignment instance.') + self.fail('Error creating the RegistrationAssignment instance: {0}'.format(str(exc))) + return response.as_dict() + + def delete_resource(self): + try: + response = self.mgmt_client.registration_assignments.delete(scope=self.scope, + registration_assignment_id=self.registration_assignment_id) + except CloudError as e: + self.log('Error attempting to delete the RegistrationAssignment instance.') + self.fail('Error deleting the RegistrationAssignment instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + try: + response = self.mgmt_client.registration_assignments.get(scope=self.scope, + registration_assignment_id=self.registration_assignment_id, + expand_registration_definition=self.body.get('expand_registration_definition', True)) + except Exception as e: + #except CloudError as e: + return False + return response.as_dict() + + +def main(): + AzureRMRegistrationAssignment() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_registrationassignment_info.py b/azure_rm_registrationassignment_info.py new file mode 100644 index 0000000..23afced --- /dev/null +++ b/azure_rm_registrationassignment_info.py @@ -0,0 +1,316 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationassignment_info +version_added: '2.9' +short_description: Get RegistrationAssignment info. +description: + - Get info of RegistrationAssignment. +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_assignment_id: + description: + - Guid of the registration assignment. + type: str + expand_registration_definition: + description: + - >- + Tells whether to return registration definition details also along with + registration assignment details. + required: true + type: bool +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Get Registration Assignment + azure_rm_registrationassignment_info: + registration_assignment_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + + - name: Get Registration Assignments + azure_rm_registrationassignment_info: + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + +''' + +RETURN = ''' +registration_assignments: + description: >- + A list of dict results where the key is the name of the + RegistrationAssignment and the values are the facts for that + RegistrationAssignment. + returned: always + type: complex + contains: + properties: + description: + - Properties of a registration assignment. + returned: always + type: dict + sample: null + contains: + registration_definition_id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null + registration_definition: + description: + - Registration definition inside registration assignment. + returned: always + type: dict + sample: null + contains: + properties: + description: + - >- + Properties of registration definition inside registration + assignment. + returned: always + type: dict + sample: null + plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null + id: + description: + - The fully qualified path of the registration assignment. + returned: always + type: str + sample: null + type: + description: + - Type of the resource. + returned: always + type: str + sample: null + name: + description: + - Name of the registration assignment. + returned: always + type: str + sample: null + value: + description: + - List of registration assignments. + returned: always + type: list + sample: null + contains: + properties: + description: + - Properties of a registration assignment. + returned: always + type: dict + sample: null + contains: + registration_definition_id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null + registration_definition: + description: + - Registration definition inside registration assignment. + returned: always + type: dict + sample: null + contains: + properties: + description: + - >- + Properties of registration definition inside registration + assignment. + returned: always + type: dict + sample: null + plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null + next_link: + description: + - Link to next page of registration assignments. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class AzureRMRegistrationAssignmentInfo(AzureRMModuleBase): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_assignment_id=dict( + type='str' + ), + expand_registration_definition=dict( + type='bool', + required=True + ) + ) + + self.scope = None + self.registration_assignment_id = None + self.expand_registration_definition = None + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.url = None + self.status_code = [200] + + self.mgmt_client = None + super(AzureRMRegistrationAssignmentInfo, self).__init__(self.module_arg_spec, supports_tags=True) + + def exec_module(self, **kwargs): + + for key in self.module_arg_spec: + setattr(self, key, kwargs[key]) + + self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-02-01-preview') + + if (self.scope is not None and self.registration_assignment_id is not None): + self.results['registration_assignments'] = self.format_item(self.get()) + elif (self.scope is not None): + self.results['registration_assignments'] = self.format_item(self.list()) + return self.results + + def get(self): + response = None + + try: + response = self.mgmt_client.registration_assignments.get(scope=self.scope, + registration_assignment_id=self.registration_assignment_id, + expand_registration_definition=self.expand_registration_definition) + except Exception as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def list(self): + response = None + + try: + response = self.mgmt_client.registration_assignments.list(scope=self.scope, + expand_registration_definition=self.expand_registration_definition) + except Exception as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def format_item(self, item): + if hasattr(item, 'as_dict'): + return [item.as_dict()] + else: + result = [] + items = list(item) + for tmp in items: + result.append(tmp.as_dict()) + return result + + +def main(): + AzureRMRegistrationAssignmentInfo() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_registrationdefinition.py b/azure_rm_registrationdefinition.py new file mode 100644 index 0000000..df5232b --- /dev/null +++ b/azure_rm_registrationdefinition.py @@ -0,0 +1,628 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationdefinition +version_added: '2.9' +short_description: Manage Azure RegistrationDefinition instance. +description: + - 'Create, update and delete instance of Azure RegistrationDefinition.' +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_definition_id: + description: + - Guid of the registration definition. + required: true + type: str + properties: + description: + - Properties of a registration definition. + type: dict + suboptions: + description: + description: + - Description of the registration definition. + type: str + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security + group or service principal and id of the build-in role. + required: true + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. + It is the list of role definition ids which define all the + permissions that the user in the authorization can assign to + other security groups/service principals/users. + type: list + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, + and just-in-time access policy setting + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + suboptions: + multi_factor_auth_provider: + description: + - MFA provider. + required: true + type: str + choices: + - Azure + - None + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default + value is "PT8H". + type: duration + registration_definition_name: + description: + - Name of the registration definition. + type: str + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + required: true + type: str + plan: + description: + - Plan details for the managed services. + type: dict + suboptions: + name: + description: + - The plan name. + required: true + type: str + publisher: + description: + - The publisher ID. + required: true + type: str + product: + description: + - The product code. + required: true + type: str + version: + description: + - The plan's version. + required: true + type: str + state: + description: + - Assert the state of the RegistrationDefinition. + - >- + Use C(present) to create or update an RegistrationDefinition and + C(absent) to delete it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Delete Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + + - name: Put Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + +''' + +RETURN = ''' +properties: + description: + - Properties of a registration definition. + returned: always + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + returned: always + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security group + or service principal and id of the build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. It + is the list of role definition ids which define all the + permissions that the user in the authorization can assign to other + security groups/service principals/users. + returned: always + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, and + just-in-time access policy setting + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + returned: always + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default value + is "PT8H". + returned: always + type: duration + sample: null + registration_definition_name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null +plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null +id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null +type: + description: + - Type of the resource. + returned: always + type: str + sample: null +name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +import logging +logging.basicConfig(filename='log.log', level=logging.INFO) +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMRegistrationDefinition(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_definition_id=dict( + type='str', + required=True + ), + properties=dict( + type='dict', + disposition='/properties', + options=dict( + description=dict( + type='str', + disposition='description' + ), + authorizations=dict( + type='list', + disposition='authorizations', + required=True, + elements='dict', + options=dict( + principal_id=dict( + type='str', + disposition='principal_id', + required=True + ), + principal_id_display_name=dict( + type='str', + disposition='principal_id_display_name' + ), + role_definition_id=dict( + type='str', + disposition='role_definition_id', + required=True + ), +# delegated_role_definition_ids=dict( +# type='list', +# disposition='delegated_role_definition_ids', +# elements='uuid' +# ) + ) + ), +# eligible_authorizations=dict( +# type='list', +# disposition='eligible_authorizations', +# elements='dict', +# options=dict( +# principal_id=dict( +# type='str', +# disposition='principal_id', +# required=True +# ), +# principal_id_display_name=dict( +# type='str', +# disposition='principal_id_display_name' +# ), +# role_definition_id=dict( +# type='str', +# disposition='role_definition_id', +# required=True +# ), +# just_in_time_access_policy=dict( +# type='dict', +# disposition='just_in_time_access_policy', +# options=dict( +# multi_factor_auth_provider=dict( +# type='str', +# disposition='multi_factor_auth_provider', +# choices=['Azure', +# 'None'], +# required=True +# ), +# maximum_activation_duration=dict( +# type='duration', +# disposition='maximum_activation_duration' +# ) +# ) +# ) +# ) +# ), + registration_definition_name=dict( + type='str', + disposition='registration_definition_name' + ), + managed_by_tenant_id=dict( + type='str', + disposition='managed_by_tenant_id', + required=True + ) + ) + ), + plan=dict( + type='dict', + disposition='/plan', + options=dict( + name=dict( + type='str', + disposition='name', + required=True + ), + publisher=dict( + type='str', + disposition='publisher', + required=True + ), + product=dict( + type='str', + disposition='product', + required=True + ), + version=dict( + type='str', + disposition='version', + required=True + ) + ) + ), + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.scope = None + self.registration_definition_id = None + self.body = {} + self.url = None + self.query_parameters = {} + self.header_parameters = {} + + self.query_parameters['api-version'] = '2019-06-01' + self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMRegistrationDefinition, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + + #self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-02-01-preview') + + self.url = ('{{ scope }}' + + '/providers' + + '/Microsoft.ManagedServices' + + '/registrationDefinitions' + + '/{{ registration_definition_id }}') + self.url = self.url.replace('{{ scope }}', self.scope) + self.url = self.url.replace('{{ registration_definition_id }}', self.registration_definition_id) + + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + + return self.results + + def create_update_resource(self): + try: + response = self.mgmt_client.registration_definitions.create_or_update(registration_definition_id=self.registration_definition_id, + scope=self.scope, + request_body=self.body) + if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + response = self.get_poller_result(response) + except CloudError as exc: + self.log('Error attempting to create the RegistrationDefinition instance.') + self.fail('Error creating the RegistrationDefinition instance: {0}'.format(str(exc))) + return response.as_dict() + + def delete_resource(self): + try: + response = self.mgmt_client.registration_definitions.delete(registration_definition_id=self.registration_definition_id, + scope=self.scope) + except CloudError as e: + self.log('Error attempting to delete the RegistrationDefinition instance.') + self.fail('Error deleting the RegistrationDefinition instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + try: + response = self.mgmt_client.registration_definitions.get(scope=self.scope, + registration_definition_id=self.registration_definition_id) + except CloudError as e: + return False + return response.as_dict() + + +def main(): + AzureRMRegistrationDefinition() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_registrationdefinition.py_1 b/azure_rm_registrationdefinition.py_1 new file mode 100644 index 0000000..2fc6260 --- /dev/null +++ b/azure_rm_registrationdefinition.py_1 @@ -0,0 +1,620 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationdefinition +version_added: '2.9' +short_description: Manage Azure RegistrationDefinition instance. +description: + - 'Create, update and delete instance of Azure RegistrationDefinition.' +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_definition_id: + description: + - Guid of the registration definition. + required: true + type: str + properties: + description: + - Properties of a registration definition. + type: dict + suboptions: + description: + description: + - Description of the registration definition. + type: str + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security + group or service principal and id of the build-in role. + required: true + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. + It is the list of role definition ids which define all the + permissions that the user in the authorization can assign to + other security groups/service principals/users. + type: list + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, + and just-in-time access policy setting + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + suboptions: + multi_factor_auth_provider: + description: + - MFA provider. + required: true + type: str + choices: + - Azure + - None + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default + value is "PT8H". + type: duration + registration_definition_name: + description: + - Name of the registration definition. + type: str + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + required: true + type: str + plan: + description: + - Plan details for the managed services. + type: dict + suboptions: + name: + description: + - The plan name. + required: true + type: str + publisher: + description: + - The publisher ID. + required: true + type: str + product: + description: + - The product code. + required: true + type: str + version: + description: + - The plan's version. + required: true + type: str + state: + description: + - Assert the state of the RegistrationDefinition. + - >- + Use C(present) to create or update an RegistrationDefinition and + C(absent) to delete it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Delete Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + + - name: Put Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + +''' + +RETURN = ''' +properties: + description: + - Properties of a registration definition. + returned: always + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + returned: always + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security group + or service principal and id of the build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. It + is the list of role definition ids which define all the + permissions that the user in the authorization can assign to other + security groups/service principals/users. + returned: always + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, and + just-in-time access policy setting + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + returned: always + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default value + is "PT8H". + returned: always + type: duration + sample: null + registration_definition_name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null +plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null +id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null +type: + description: + - Type of the resource. + returned: always + type: str + sample: null +name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +import logging +logging.basicConfig(filename='log.log', level=logging.INFO) +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMRegistrationDefinition(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_definition_id=dict( + type='str', + required=True + ), + properties=dict( + type='dict', + disposition='/properties', + options=dict( + description=dict( + type='str', + disposition='description' + ), + authorizations=dict( + type='list', + disposition='authorizations', + required=True, + elements='dict', + options=dict( + principal_id=dict( + type='str', + disposition='principal_id', + required=True + ), + principal_id_display_name=dict( + type='str', + disposition='principal_id_display_name' + ), + role_definition_id=dict( + type='str', + disposition='role_definition_id', + required=True + ), +# delegated_role_definition_ids=dict( +# type='list', +# disposition='delegated_role_definition_ids', +# elements='uuid' +# ) + ) + ), +# eligible_authorizations=dict( +# type='list', +# disposition='eligible_authorizations', +# elements='dict', +# options=dict( +# principal_id=dict( +# type='str', +# disposition='principal_id', +# required=True +# ), +# principal_id_display_name=dict( +# type='str', +# disposition='principal_id_display_name' +# ), +# role_definition_id=dict( +# type='str', +# disposition='role_definition_id', +# required=True +# ), +# just_in_time_access_policy=dict( +# type='dict', +# disposition='just_in_time_access_policy', +# options=dict( +# multi_factor_auth_provider=dict( +# type='str', +# disposition='multi_factor_auth_provider', +# choices=['Azure', +# 'None'], +# required=True +# ), +# maximum_activation_duration=dict( +# type='duration', +# disposition='maximum_activation_duration' +# ) +# ) +# ) +# ) +# ), + registration_definition_name=dict( + type='str', + disposition='registration_definition_name' + ), + managed_by_tenant_id=dict( + type='str', + disposition='managed_by_tenant_id', + required=True + ) + ) + ), + plan=dict( + type='dict', + disposition='/plan', + options=dict( + name=dict( + type='str', + disposition='name', + required=True + ), + publisher=dict( + type='str', + disposition='publisher', + required=True + ), + product=dict( + type='str', + disposition='product', + required=True + ), + version=dict( + type='str', + disposition='version', + required=True + ) + ) + ), + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.scope = None + self.registration_definition_id = None + self.body = {} + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMRegistrationDefinition, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + #self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + + logging.info(1) + logging.info(ManagedServicesClient) + logging.info(1212) + #self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-02-01-preview') + + logging.info('---------print mgmt client---------') + logging.info(self.mgmt_client) + logging.info('---------print mgmt client---------') + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + + return self.results + + def create_update_resource(self): + try: + response = self.mgmt_client.registration_definitions.create_or_update(registration_definition_id=self.registration_definition_id, + scope=self.scope, + request_body=self.body) + if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + response = self.get_poller_result(response) + except CloudError as exc: + self.log('Error attempting to create the RegistrationDefinition instance.') + self.fail('Error creating the RegistrationDefinition instance: {0}'.format(str(exc))) + return response.as_dict() + + def delete_resource(self): + try: + response = self.mgmt_client.registration_definitions.delete(registration_definition_id=self.registration_definition_id, + scope=self.scope) + except CloudError as e: + self.log('Error attempting to delete the RegistrationDefinition instance.') + self.fail('Error deleting the RegistrationDefinition instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + try: + response = self.mgmt_client.registration_definitions.get(scope=self.scope, + registration_definition_id=self.registration_definition_id) + except CloudError as e: + return False + return response.as_dict() + + +def main(): + AzureRMRegistrationDefinition() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_registrationdefinition.py_bac b/azure_rm_registrationdefinition.py_bac new file mode 100644 index 0000000..2fc6260 --- /dev/null +++ b/azure_rm_registrationdefinition.py_bac @@ -0,0 +1,620 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationdefinition +version_added: '2.9' +short_description: Manage Azure RegistrationDefinition instance. +description: + - 'Create, update and delete instance of Azure RegistrationDefinition.' +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_definition_id: + description: + - Guid of the registration definition. + required: true + type: str + properties: + description: + - Properties of a registration definition. + type: dict + suboptions: + description: + description: + - Description of the registration definition. + type: str + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security + group or service principal and id of the build-in role. + required: true + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. + It is the list of role definition ids which define all the + permissions that the user in the authorization can assign to + other security groups/service principals/users. + type: list + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, + and just-in-time access policy setting + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + suboptions: + multi_factor_auth_provider: + description: + - MFA provider. + required: true + type: str + choices: + - Azure + - None + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default + value is "PT8H". + type: duration + registration_definition_name: + description: + - Name of the registration definition. + type: str + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + required: true + type: str + plan: + description: + - Plan details for the managed services. + type: dict + suboptions: + name: + description: + - The plan name. + required: true + type: str + publisher: + description: + - The publisher ID. + required: true + type: str + product: + description: + - The product code. + required: true + type: str + version: + description: + - The plan's version. + required: true + type: str + state: + description: + - Assert the state of the RegistrationDefinition. + - >- + Use C(present) to create or update an RegistrationDefinition and + C(absent) to delete it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Delete Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + + - name: Put Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + +''' + +RETURN = ''' +properties: + description: + - Properties of a registration definition. + returned: always + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + returned: always + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security group + or service principal and id of the build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. It + is the list of role definition ids which define all the + permissions that the user in the authorization can assign to other + security groups/service principals/users. + returned: always + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, and + just-in-time access policy setting + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + returned: always + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default value + is "PT8H". + returned: always + type: duration + sample: null + registration_definition_name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null +plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null +id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null +type: + description: + - Type of the resource. + returned: always + type: str + sample: null +name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +import logging +logging.basicConfig(filename='log.log', level=logging.INFO) +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMRegistrationDefinition(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_definition_id=dict( + type='str', + required=True + ), + properties=dict( + type='dict', + disposition='/properties', + options=dict( + description=dict( + type='str', + disposition='description' + ), + authorizations=dict( + type='list', + disposition='authorizations', + required=True, + elements='dict', + options=dict( + principal_id=dict( + type='str', + disposition='principal_id', + required=True + ), + principal_id_display_name=dict( + type='str', + disposition='principal_id_display_name' + ), + role_definition_id=dict( + type='str', + disposition='role_definition_id', + required=True + ), +# delegated_role_definition_ids=dict( +# type='list', +# disposition='delegated_role_definition_ids', +# elements='uuid' +# ) + ) + ), +# eligible_authorizations=dict( +# type='list', +# disposition='eligible_authorizations', +# elements='dict', +# options=dict( +# principal_id=dict( +# type='str', +# disposition='principal_id', +# required=True +# ), +# principal_id_display_name=dict( +# type='str', +# disposition='principal_id_display_name' +# ), +# role_definition_id=dict( +# type='str', +# disposition='role_definition_id', +# required=True +# ), +# just_in_time_access_policy=dict( +# type='dict', +# disposition='just_in_time_access_policy', +# options=dict( +# multi_factor_auth_provider=dict( +# type='str', +# disposition='multi_factor_auth_provider', +# choices=['Azure', +# 'None'], +# required=True +# ), +# maximum_activation_duration=dict( +# type='duration', +# disposition='maximum_activation_duration' +# ) +# ) +# ) +# ) +# ), + registration_definition_name=dict( + type='str', + disposition='registration_definition_name' + ), + managed_by_tenant_id=dict( + type='str', + disposition='managed_by_tenant_id', + required=True + ) + ) + ), + plan=dict( + type='dict', + disposition='/plan', + options=dict( + name=dict( + type='str', + disposition='name', + required=True + ), + publisher=dict( + type='str', + disposition='publisher', + required=True + ), + product=dict( + type='str', + disposition='product', + required=True + ), + version=dict( + type='str', + disposition='version', + required=True + ) + ) + ), + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.scope = None + self.registration_definition_id = None + self.body = {} + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMRegistrationDefinition, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + #self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + + logging.info(1) + logging.info(ManagedServicesClient) + logging.info(1212) + #self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-02-01-preview') + + logging.info('---------print mgmt client---------') + logging.info(self.mgmt_client) + logging.info('---------print mgmt client---------') + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + + return self.results + + def create_update_resource(self): + try: + response = self.mgmt_client.registration_definitions.create_or_update(registration_definition_id=self.registration_definition_id, + scope=self.scope, + request_body=self.body) + if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + response = self.get_poller_result(response) + except CloudError as exc: + self.log('Error attempting to create the RegistrationDefinition instance.') + self.fail('Error creating the RegistrationDefinition instance: {0}'.format(str(exc))) + return response.as_dict() + + def delete_resource(self): + try: + response = self.mgmt_client.registration_definitions.delete(registration_definition_id=self.registration_definition_id, + scope=self.scope) + except CloudError as e: + self.log('Error attempting to delete the RegistrationDefinition instance.') + self.fail('Error deleting the RegistrationDefinition instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + try: + response = self.mgmt_client.registration_definitions.get(scope=self.scope, + registration_definition_id=self.registration_definition_id) + except CloudError as e: + return False + return response.as_dict() + + +def main(): + AzureRMRegistrationDefinition() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_registrationdefinition.py_query b/azure_rm_registrationdefinition.py_query new file mode 100644 index 0000000..4c2d910 --- /dev/null +++ b/azure_rm_registrationdefinition.py_query @@ -0,0 +1,664 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationdefinition +version_added: '2.9' +short_description: Manage Azure RegistrationDefinition instance. +description: + - 'Create, update and delete instance of Azure RegistrationDefinition.' +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_definition_id: + description: + - Guid of the registration definition. + required: true + type: str + properties: + description: + - Properties of a registration definition. + type: dict + suboptions: + description: + description: + - Description of the registration definition. + type: str + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security + group or service principal and id of the build-in role. + required: true + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. + It is the list of role definition ids which define all the + permissions that the user in the authorization can assign to + other security groups/service principals/users. + type: list + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, + and just-in-time access policy setting + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + suboptions: + multi_factor_auth_provider: + description: + - MFA provider. + required: true + type: str + choices: + - Azure + - None + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default + value is "PT8H". + type: duration + registration_definition_name: + description: + - Name of the registration definition. + type: str + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + required: true + type: str + plan: + description: + - Plan details for the managed services. + type: dict + suboptions: + name: + description: + - The plan name. + required: true + type: str + publisher: + description: + - The publisher ID. + required: true + type: str + product: + description: + - The product code. + required: true + type: str + version: + description: + - The plan's version. + required: true + type: str + state: + description: + - Assert the state of the RegistrationDefinition. + - >- + Use C(present) to create or update an RegistrationDefinition and + C(absent) to delete it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Delete Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + + - name: Put Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + +''' + +RETURN = ''' +properties: + description: + - Properties of a registration definition. + returned: always + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + returned: always + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security group + or service principal and id of the build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. It + is the list of role definition ids which define all the + permissions that the user in the authorization can assign to other + security groups/service principals/users. + returned: always + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, and + just-in-time access policy setting + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + returned: always + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default value + is "PT8H". + returned: always + type: duration + sample: null + registration_definition_name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null +plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null +id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null +type: + description: + - Type of the resource. + returned: always + type: str + sample: null +name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +import json +import logging +logging.basicConfig(filename='log.log', level=logging.INFO) +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMRegistrationDefinition(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_definition_id=dict( + type='str', + required=True + ), + properties=dict( + type='dict', + disposition='/properties', + options=dict( + description=dict( + type='str', + disposition='description' + ), + authorizations=dict( + type='list', + disposition='authorizations', + required=True, + elements='dict', + options=dict( + principal_id=dict( + type='str', + disposition='principal_id', + required=True + ), + principal_id_display_name=dict( + type='str', + disposition='principal_id_display_name' + ), + role_definition_id=dict( + type='str', + disposition='role_definition_id', + required=True + ), +# delegated_role_definition_ids=dict( +# type='list', +# disposition='delegated_role_definition_ids', +# elements='uuid' +# ) + ) + ), +# eligible_authorizations=dict( +# type='list', +# disposition='eligible_authorizations', +# elements='dict', +# options=dict( +# principal_id=dict( +# type='str', +# disposition='principal_id', +# required=True +# ), +# principal_id_display_name=dict( +# type='str', +# disposition='principal_id_display_name' +# ), +# role_definition_id=dict( +# type='str', +# disposition='role_definition_id', +# required=True +# ), +# just_in_time_access_policy=dict( +# type='dict', +# disposition='just_in_time_access_policy', +# options=dict( +# multi_factor_auth_provider=dict( +# type='str', +# disposition='multi_factor_auth_provider', +# choices=['Azure', +# 'None'], +# required=True +# ), +# maximum_activation_duration=dict( +# type='duration', +# disposition='maximum_activation_duration' +# ) +# ) +# ) +# ) +# ), + registration_definition_name=dict( + type='str', + disposition='registration_definition_name' + ), + managed_by_tenant_id=dict( + type='str', + disposition='managed_by_tenant_id', + required=True + ) + ) + ), + plan=dict( + type='dict', + disposition='/plan', + options=dict( + name=dict( + type='str', + disposition='name', + required=True + ), + publisher=dict( + type='str', + disposition='publisher', + required=True + ), + product=dict( + type='str', + disposition='product', + required=True + ), + version=dict( + type='str', + disposition='version', + required=True + ) + ) + ), + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.scope = None + self.registration_definition_id = None + self.body = {} + self.url = None + self.status_code = [200, 201, 204] + self.query_parameters = {} + self.header_parameters = {} + + self.query_parameters['api-version'] = '2019-06-01' + self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMRegistrationDefinition, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + + #self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient, + base_url=self._cloud_environment.endpoints.resource_manager, + #api_version='2020-02-01-preview') + api_version='2019-06-01') + + self.url = ('{{ scope }}' + + '/providers' + + '/Microsoft.ManagedServices' + + '/registrationDefinitions' + + '/{{ registration_definition_id }}') + self.url = self.url.replace('{{ scope }}', self.scope) + self.url = self.url.replace('{{ registration_definition_id }}', self.registration_definition_id) + + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + + return self.results + + def create_update_resource(self): + try: + #response = self.mgmt_client.registration_definitions.create_or_update(registration_definition_id=self.registration_definition_id, + # scope=self.scope, + # request_body=self.body) + #if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + # response = self.get_poller_result(response) + logging.info('ttttttttttttttttttttttttttttttttt') + logging.info(self.mgmt_client) + response = self.mgmt_client.query(self.url, + 'PUT', + self.query_parameters, + self.header_parameters, + None, + self.status_code, + 600, + 30) + except CloudError as exc: + self.log('Error attempting to create the RegistrationDefinition instance.') + self.fail('Error creating the RegistrationDefinition instance: {0}'.format(str(exc))) + #return response.as_dict() + return json.loads(response.text) + + def delete_resource(self): + try: + #response = self.mgmt_client.registration_definitions.delete(registration_definition_id=self.registration_definition_id, scope=self.scope) + response = self.mgmt_client.query(self.url, + 'DELETE', + self.query_parameters, + self.header_parameters, + None, + self.status_code, + 600, + 30) + except CloudError as e: + self.log('Error attempting to delete the RegistrationDefinition instance.') + self.fail('Error deleting the RegistrationDefinition instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + found = False + try: + #response = self.mgmt_client.registration_definitions.get(scope=self.scope, + # registration_definition_id=self.registration_definition_id) + response = self.mgmt_client.query(self.url, + 'GET', + self.query_parameters, + self.header_parameters, + None, + self.status_code, + 600, + 30) + found = True + response = json.loads(response.text) + self.log("Response : {0}".format(response)) + except CloudError as e: + self.log('Did not find the registration definition ') + if found is True: + #return response.as_dict() + return response + return False + + +def main(): + AzureRMRegistrationDefinition() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_registrationdefinition.py_query_1 b/azure_rm_registrationdefinition.py_query_1 new file mode 100644 index 0000000..4c2d910 --- /dev/null +++ b/azure_rm_registrationdefinition.py_query_1 @@ -0,0 +1,664 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationdefinition +version_added: '2.9' +short_description: Manage Azure RegistrationDefinition instance. +description: + - 'Create, update and delete instance of Azure RegistrationDefinition.' +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_definition_id: + description: + - Guid of the registration definition. + required: true + type: str + properties: + description: + - Properties of a registration definition. + type: dict + suboptions: + description: + description: + - Description of the registration definition. + type: str + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security + group or service principal and id of the build-in role. + required: true + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. + It is the list of role definition ids which define all the + permissions that the user in the authorization can assign to + other security groups/service principals/users. + type: list + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, + and just-in-time access policy setting + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + suboptions: + multi_factor_auth_provider: + description: + - MFA provider. + required: true + type: str + choices: + - Azure + - None + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default + value is "PT8H". + type: duration + registration_definition_name: + description: + - Name of the registration definition. + type: str + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + required: true + type: str + plan: + description: + - Plan details for the managed services. + type: dict + suboptions: + name: + description: + - The plan name. + required: true + type: str + publisher: + description: + - The publisher ID. + required: true + type: str + product: + description: + - The product code. + required: true + type: str + version: + description: + - The plan's version. + required: true + type: str + state: + description: + - Assert the state of the RegistrationDefinition. + - >- + Use C(present) to create or update an RegistrationDefinition and + C(absent) to delete it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Delete Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + + - name: Put Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + +''' + +RETURN = ''' +properties: + description: + - Properties of a registration definition. + returned: always + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + returned: always + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security group + or service principal and id of the build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. It + is the list of role definition ids which define all the + permissions that the user in the authorization can assign to other + security groups/service principals/users. + returned: always + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, and + just-in-time access policy setting + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + returned: always + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default value + is "PT8H". + returned: always + type: duration + sample: null + registration_definition_name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null +plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null +id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null +type: + description: + - Type of the resource. + returned: always + type: str + sample: null +name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_rest import GenericRestClient +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +import json +import logging +logging.basicConfig(filename='log.log', level=logging.INFO) +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMRegistrationDefinition(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_definition_id=dict( + type='str', + required=True + ), + properties=dict( + type='dict', + disposition='/properties', + options=dict( + description=dict( + type='str', + disposition='description' + ), + authorizations=dict( + type='list', + disposition='authorizations', + required=True, + elements='dict', + options=dict( + principal_id=dict( + type='str', + disposition='principal_id', + required=True + ), + principal_id_display_name=dict( + type='str', + disposition='principal_id_display_name' + ), + role_definition_id=dict( + type='str', + disposition='role_definition_id', + required=True + ), +# delegated_role_definition_ids=dict( +# type='list', +# disposition='delegated_role_definition_ids', +# elements='uuid' +# ) + ) + ), +# eligible_authorizations=dict( +# type='list', +# disposition='eligible_authorizations', +# elements='dict', +# options=dict( +# principal_id=dict( +# type='str', +# disposition='principal_id', +# required=True +# ), +# principal_id_display_name=dict( +# type='str', +# disposition='principal_id_display_name' +# ), +# role_definition_id=dict( +# type='str', +# disposition='role_definition_id', +# required=True +# ), +# just_in_time_access_policy=dict( +# type='dict', +# disposition='just_in_time_access_policy', +# options=dict( +# multi_factor_auth_provider=dict( +# type='str', +# disposition='multi_factor_auth_provider', +# choices=['Azure', +# 'None'], +# required=True +# ), +# maximum_activation_duration=dict( +# type='duration', +# disposition='maximum_activation_duration' +# ) +# ) +# ) +# ) +# ), + registration_definition_name=dict( + type='str', + disposition='registration_definition_name' + ), + managed_by_tenant_id=dict( + type='str', + disposition='managed_by_tenant_id', + required=True + ) + ) + ), + plan=dict( + type='dict', + disposition='/plan', + options=dict( + name=dict( + type='str', + disposition='name', + required=True + ), + publisher=dict( + type='str', + disposition='publisher', + required=True + ), + product=dict( + type='str', + disposition='product', + required=True + ), + version=dict( + type='str', + disposition='version', + required=True + ) + ) + ), + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.scope = None + self.registration_definition_id = None + self.body = {} + self.url = None + self.status_code = [200, 201, 204] + self.query_parameters = {} + self.header_parameters = {} + + self.query_parameters['api-version'] = '2019-06-01' + self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMRegistrationDefinition, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + + #self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + self.mgmt_client = self.get_mgmt_svc_client(GenericRestClient, + base_url=self._cloud_environment.endpoints.resource_manager, + #api_version='2020-02-01-preview') + api_version='2019-06-01') + + self.url = ('{{ scope }}' + + '/providers' + + '/Microsoft.ManagedServices' + + '/registrationDefinitions' + + '/{{ registration_definition_id }}') + self.url = self.url.replace('{{ scope }}', self.scope) + self.url = self.url.replace('{{ registration_definition_id }}', self.registration_definition_id) + + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + + return self.results + + def create_update_resource(self): + try: + #response = self.mgmt_client.registration_definitions.create_or_update(registration_definition_id=self.registration_definition_id, + # scope=self.scope, + # request_body=self.body) + #if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + # response = self.get_poller_result(response) + logging.info('ttttttttttttttttttttttttttttttttt') + logging.info(self.mgmt_client) + response = self.mgmt_client.query(self.url, + 'PUT', + self.query_parameters, + self.header_parameters, + None, + self.status_code, + 600, + 30) + except CloudError as exc: + self.log('Error attempting to create the RegistrationDefinition instance.') + self.fail('Error creating the RegistrationDefinition instance: {0}'.format(str(exc))) + #return response.as_dict() + return json.loads(response.text) + + def delete_resource(self): + try: + #response = self.mgmt_client.registration_definitions.delete(registration_definition_id=self.registration_definition_id, scope=self.scope) + response = self.mgmt_client.query(self.url, + 'DELETE', + self.query_parameters, + self.header_parameters, + None, + self.status_code, + 600, + 30) + except CloudError as e: + self.log('Error attempting to delete the RegistrationDefinition instance.') + self.fail('Error deleting the RegistrationDefinition instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + found = False + try: + #response = self.mgmt_client.registration_definitions.get(scope=self.scope, + # registration_definition_id=self.registration_definition_id) + response = self.mgmt_client.query(self.url, + 'GET', + self.query_parameters, + self.header_parameters, + None, + self.status_code, + 600, + 30) + found = True + response = json.loads(response.text) + self.log("Response : {0}".format(response)) + except CloudError as e: + self.log('Did not find the registration definition ') + if found is True: + #return response.as_dict() + return response + return False + + +def main(): + AzureRMRegistrationDefinition() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_registrationdefinition_info.py b/azure_rm_registrationdefinition_info.py new file mode 100644 index 0000000..725c36b --- /dev/null +++ b/azure_rm_registrationdefinition_info.py @@ -0,0 +1,503 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationdefinition_info +version_added: '2.9' +short_description: Get RegistrationDefinition info. +description: + - Get info of RegistrationDefinition. +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_definition_id: + description: + - Guid of the registration definition. + type: str +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Get Registration Definition + azure_rm_registrationdefinition_info: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + + - name: Get Registration Definitions + azure_rm_registrationdefinition_info: + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + +''' + +RETURN = ''' +registration_definitions: + description: >- + A list of dict results where the key is the name of the + RegistrationDefinition and the values are the facts for that + RegistrationDefinition. + returned: always + type: complex + contains: + properties: + description: + - Properties of a registration definition. + returned: always + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + returned: always + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security + group or service principal and id of the build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user + must have on the projected subscription. This role cannot be + an owner role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. + It is the list of role definition ids which define all the + permissions that the user in the authorization can assign to + other security groups/service principals/users. + returned: always + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, + and just-in-time access policy setting + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all + the permissions that the security group/service principal/user + must have on the projected subscription. This role cannot be + an owner role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + returned: always + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default + value is "PT8H". + returned: always + type: duration + sample: null + registration_definition_name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null + plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null + id: + description: + - Fully qualified path of the registration definition. + returned: always + type: str + sample: null + type: + description: + - Type of the resource. + returned: always + type: str + sample: null + name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + value: + description: + - List of registration definitions. + returned: always + type: list + sample: null + contains: + properties: + description: + - Properties of a registration definition. + returned: always + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + returned: always + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the + user/security group or service principal and id of the + build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user + that would be assigned permissions to the projected + subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all + the permissions that the security group/service + principal/user must have on the projected subscription. + This role cannot be an owner role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator + Role. It is the list of role definition ids which define + all the permissions that the user in the authorization can + assign to other security groups/service principals/users. + returned: always + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of + the user/security group or service principal, id of the + built-in role, and just-in-time access policy setting + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user + that would be delegated permissions to the projected + subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + returned: always + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate + all the permissions that the security group/service + principal/user must have on the projected subscription. + This role cannot be an owner role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + returned: always + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The + default value is "PT8H". + returned: always + type: duration + sample: null + registration_definition_name: + description: + - Name of the registration definition. + returned: always + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null + plan: + description: + - Plan details for the managed services. + returned: always + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null + next_link: + description: + - Link to next page of registration definitions. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managed import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class AzureRMRegistrationDefinitionInfo(AzureRMModuleBase): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_definition_id=dict( + type='str' + ) + ) + + self.scope = None + self.registration_definition_id = None + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.url = None + self.status_code = [200] + + self.query_parameters = {} + self.query_parameters['api-version'] = '2020-02-01-preview' + self.header_parameters = {} + self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' + + self.mgmt_client = None + super(AzureRMRegistrationDefinitionInfo, self).__init__(self.module_arg_spec, supports_tags=True) + + def exec_module(self, **kwargs): + + for key in self.module_arg_spec: + setattr(self, key, kwargs[key]) + + self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-02-01-preview') + + if (self.scope is not None and + self.registration_definition_id is not None): + self.results['registration_definitions'] = self.format_item(self.get()) + elif (self.scope is not None): + self.results['registration_definitions'] = self.format_item(self.list()) + return self.results + + def get(self): + response = None + + try: + response = self.mgmt_client.registration_definitions.get(scope=self.scope, + registration_definition_id=self.registration_definition_id) + except CloudError as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def list(self): + response = None + + try: + response = self.mgmt_client.registration_definitions.list(scope=self.scope) + except CloudError as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def format_item(self, item): + if hasattr(item, 'as_dict'): + return [item.as_dict()] + else: + result = [] + items = list(item) + for tmp in items: + result.append(tmp.as_dict()) + return result + + +def main(): + AzureRMRegistrationDefinitionInfo() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_workspace.py b/azure_rm_workspace.py new file mode 100644 index 0000000..83067d3 --- /dev/null +++ b/azure_rm_workspace.py @@ -0,0 +1,173 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_workspace +version_added: '2.9' +short_description: Manage Azure Workspace instance. +description: + - 'Create, update and delete instance of Azure Workspace.' +options: + state: + description: + - Assert the state of the Workspace. + - >- + Use C(present) to create or update an Workspace and C(absent) to delete + it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' +''' + +RETURN = ''' +{} + +''' + +import time +import json +import re +from ansible.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +from copy import deepcopy +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.power import Power BI Embedded Management Client + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMWorkspace(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + undefined, + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.body = {} + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMWorkspace, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + + self.mgmt_client = self.get_mgmt_svc_client(Power BI Embedded Management Client, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2016-01-29') + + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + + return self.results + + def create_update_resource(self): + try: + if self.to_do == Actions.Create: + response = self.mgmt_client.workspaces.create() + else: + response = self.mgmt_client.workspaces.update() + if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + response = self.get_poller_result(response) + except CloudError as exc: + self.log('Error attempting to create the Workspace instance.') + self.fail('Error creating the Workspace instance: {0}'.format(str(exc))) + return response.as_dict() + + def delete_resource(self): + try: + response = self.mgmt_client.workspaces.delete() + except CloudError as e: + self.log('Error attempting to delete the Workspace instance.') + self.fail('Error deleting the Workspace instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + try: + response = self.mgmt_client.workspaces.get() + except CloudError as e: + return False + return response.as_dict() + + +def main(): + AzureRMWorkspace() + + +if __name__ == '__main__': + main() diff --git a/azure_rm_workspace_info.py b/azure_rm_workspace_info.py new file mode 100644 index 0000000..58d146f --- /dev/null +++ b/azure_rm_workspace_info.py @@ -0,0 +1,171 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_workspace_info +version_added: '2.9' +short_description: Get Workspace info. +description: + - Get info of Workspace. +options: + resource_group_name: + description: + - Azure resource group + required: true + type: str + workspace_collection_name: + description: + - Power BI Embedded Workspace Collection name + required: true + type: str +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' +''' + +RETURN = ''' +workspaces: + description: >- + A list of dict results where the key is the name of the Workspace and the + values are the facts for that Workspace. + returned: always + type: complex + contains: + value: + description: + - '' + returned: always + type: list + sample: null + contains: + id: + description: + - Workspace id + returned: always + type: str + sample: null + name: + description: + - Workspace name + returned: always + type: str + sample: null + type: + description: + - Resource type + returned: always + type: str + sample: null + properties: + description: + - Property bag + returned: always + type: any + sample: null + +''' + +import time +import json +from ansible.module_utils.azure_rm_common import AzureRMModuleBase +from copy import deepcopy +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.power import Power BI Embedded Management Client + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class AzureRMWorkspaceInfo(AzureRMModuleBase): + def __init__(self): + self.module_arg_spec = dict( + resource_group_name=dict( + type='str', + required=True + ), + workspace_collection_name=dict( + type='str', + required=True + ) + ) + + self.resource_group_name = None + self.workspace_collection_name = None + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.url = None + self.status_code = [200] + + self.query_parameters = {} + self.query_parameters['api-version'] = '2016-01-29' + self.header_parameters = {} + self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' + + self.mgmt_client = None + super(AzureRMWorkspaceInfo, self).__init__(self.module_arg_spec, supports_tags=True) + + def exec_module(self, **kwargs): + + for key in self.module_arg_spec: + setattr(self, key, kwargs[key]) + + self.mgmt_client = self.get_mgmt_svc_client(Power BI Embedded Management Client, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2016-01-29') + + if (self.resource_group_name is not None and + self.workspace_collection_name is not None): + self.results['workspaces'] = self.format_item(self.list()) + return self.results + + def list(self): + response = None + + try: + response = self.mgmt_client.workspaces.list(resource_group_name=self.resource_group_name, + workspace_collection_name=self.workspace_collection_name) + except CloudError as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def format_item(self, item): + if hasattr(item, 'as_dict'): + return [item.as_dict()] + else: + result = [] + items = list(item) + for tmp in items: + result.append(tmp.as_dict()) + return result + + +def main(): + AzureRMWorkspaceInfo() + + +if __name__ == '__main__': + main() diff --git a/log.log b/log.log new file mode 100644 index 0000000..8181171 --- /dev/null +++ b/log.log @@ -0,0 +1,4 @@ +INFO:root:111 +INFO:root: +INFO:root:[] +INFO:root: diff --git a/main.yml b/main.yml new file mode 100755 index 0000000..1ca7bd0 --- /dev/null +++ b/main.yml @@ -0,0 +1,65 @@ +- name: set guid for registration assignment id + set_fact: + registration_definition_id: 2e853c04-ad29-4d0b-9f6b-e72c225d96c8 + #subscription_id: "{{ azure_subscription_id }}" + # subscription_id: f64d4ee8-be94-457d-ba26-3fa6b6506cef + # reg_def_name: test_name + # run_once: yes scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + state: absent + +- name: Create a RegistrationAssignment ---check mode + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + properties: + registration_definition_id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.ManagedServices/registrationDefinitions/d96f61e7-af14-440c-be1b-8395c327ae29 + register: output + check_mode: yes +- debug: + var: output + +- name: Create a RegistrationAssignment ---0101 + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + #registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + properties: + registration_definition_id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.ManagedServices/registrationDefinitions/2e853c04-ad29-4d0b-9f6b-e72c225d96c6 + expand_registration_definition: true + register: output + tags: fred +- debug: + var: output + tags: fred + +- name: Create a RegistrationAssignment -- idempotent + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + properties: + registration_definition_id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.ManagedServices/registrationDefinitions/d96f61e7-af14-440c-be1b-8395c327ae29 + expand_registration_definition: true + register: output +- debug: + var: output + +- name: Create a RegistrationAssignment -- update + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + properties: + registration_definition_id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.ManagedServices/registrationDefinitions/d96f61e7-af14-440c-be1b-8395c327ae29 + expand_registration_definition: false + register: output +- debug: + var: output + + +- name: Get a RegistrationAssignment + azure_rm_registrationassignment_info: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + expand_registration_definition: true + register: output +- debug: + var: output diff --git a/main2.yml b/main2.yml new file mode 100755 index 0000000..4a965d8 --- /dev/null +++ b/main2.yml @@ -0,0 +1,30 @@ +- name: set guid for registration definition id + set_fact: + #subscription_id: "{{ azure_subscription_id }}" + subscription_id: f64d4ee8-be94-457d-ba26-3fa6b6506cef + reg_def_name: test_name + run_once: yes + tags: fred + +- name: Create a RegistrationDefinition + azure_rm_registrationdefinition: + registration_definition_id: 9b2895ec-fb1e-4a1e-a978-abd9933d6b20 + scope: subscriptions//{{ subscription_id }} + properties: + description: first_test + authorizations: + - principal_id: 99e3227f-8701-4099-869f-bc3efc7f1e64 + role_definition_id: b24988ac-6180-42a0-ab88-20f7382dd24c + managed_by_tenant_id: fbcdd0f3-dc82-4cee-bcde-7301d24e9bf6 + registration_definition_name: "{{ reg_def_name }}" + +- name: Create a RegistrationDefinition + azure_rm_registrationdefinition_info: + #registration_definition_id: 9b2895ec-fb1e-4a1e-a978-abd9933d6b20 + scope: subscriptions//{{ subscription_id }} + register: output + tags: fred + +- debug: + var: output + tags: fred diff --git a/main_boot_dia.yml b/main_boot_dia.yml new file mode 100755 index 0000000..b6544b8 --- /dev/null +++ b/main_boot_dia.yml @@ -0,0 +1,65 @@ + +- name: SETUP | Create storage account + azure_rm_storageaccount: + resource_group: "{{ resource_group }}" + name: "{{ storage_account }}" + account_type: Standard_LRS +#- name: SETUP | Create availability set +# azure_rm_availabilityset: +# name: "{{ availability_set }}" +# resource_group: "{{ resource_group }}" + +- name: SETUP | Create virtual network + azure_rm_virtualnetwork: + resource_group: "{{ resource_group }}" + name: "{{ network_name }}" + address_prefixes: "{{ network }}" + +- name: SETUP | Create subnet + azure_rm_subnet: + resource_group: "{{ resource_group }}" + name: "{{ subnet_name }}" + address_prefix: "{{ subnet }}" + virtual_network: "{{ network_name }}" + +- name: Create NICs for VM + azure_rm_networkinterface: + resource_group: "{{ resource_group }}" + name: "{{ nic }}" + virtual_network: "{{ network_name }}" + subnet: "{{ subnet_name }}" + +- name: Create virtual machine with NIC + azure_rm_virtualmachine: + resource_group: "{{ resource_group }}" + vm_name: "{{ vm_name }}" + diagnostics_profile: + boot_diagnostics: + enabled: false + storage_uri: https://saaa0001.blob.core.windows.net/ + storage_profile: + image_reference: + offer: UbuntuServer + publisher: Canonical + sku: 16.04-LTS + version: latest + network_profile: + network_interfaces: + - id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG02/providers/Microsoft.Network/networkInterfaces/{{ nic }} + primary: True + hardware_profile: + vm_size: Standard_A0 + os_profile: + admin_username: testuser + linux_configuration: + disable_password_authentication: True + ssh: + public_keys: + - path: /home/testuser/.ssh/authorized_keys + key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com" + computer_name: testvm + #os_type: Linux + #os_disk_size_gb: 64 + tags: + abc: def + diff --git a/main_data_disk.yml b/main_data_disk.yml new file mode 100755 index 0000000..6972e48 --- /dev/null +++ b/main_data_disk.yml @@ -0,0 +1,76 @@ +- name: Creat a manged disk + azure_rm_manageddisk: + name: mydisk + location: eastus + resource_group: v-xisuRG + disk_size_gb: 4 + register: output + tags: fredd +- debug: + var: output + tags: fredd + +- name: SETUP | Create storage account + azure_rm_storageaccount: + resource_group: "{{ resource_group }}" + name: "{{ storage_account }}" + account_type: Standard_LRS + +#- name: SETUP | Create availability set +# azure_rm_availabilityset: +# name: "{{ availability_set }}" +# resource_group: "{{ resource_group }}" + +- name: SETUP | Create virtual network + azure_rm_virtualnetwork: + resource_group: "{{ resource_group }}" + name: "{{ network_name }}" + address_prefixes: "{{ network }}" + +- name: SETUP | Create subnet + azure_rm_subnet: + resource_group: "{{ resource_group }}" + name: "{{ subnet_name }}" + address_prefix: "{{ subnet }}" + virtual_network: "{{ network_name }}" + +- name: Create NICs for VM + azure_rm_networkinterface: + resource_group: "{{ resource_group }}" + name: "{{ nic }}" + virtual_network: "{{ network_name }}" + subnet: "{{ subnet_name }}" + +- name: Create virtual machine with NIC + azure_rm_virtualmachine: + resource_group: "{{ resource_group }}" + vm_name: "{{ vm_name }}" + storage_profile: + data_disk: + - create_option: Empty + disk_size_gb: 1023 + image_reference: + offer: UbuntuServer + publisher: Canonical + sku: 16.04-LTS + version: latest + network_profile: + network_interfaces: + - id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG02/providers/Microsoft.Network/networkInterfaces/nic01 + primary: True + hardware_profile: + vm_size: Standard_A0 + os_profile: + admin_username: testuser + linux_configuration: + disable_password_authentication: True + ssh: + public_keys: + - path: /home/testuser/.ssh/authorized_keys + key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com" + computer_name: testvm + #os_type: Linux + #os_disk_size_gb: 64 + tags: + abc: def + diff --git a/main_from_image.yml b/main_from_image.yml new file mode 100755 index 0000000..798600d --- /dev/null +++ b/main_from_image.yml @@ -0,0 +1,86 @@ + +- name: SETUP | Create storage account + azure_rm_storageaccount: + resource_group: "{{ resource_group }}" + name: "{{ storage_account }}" + account_type: Standard_LRS +#- name: SETUP | Create availability set +# azure_rm_availabilityset: +# name: "{{ availability_set }}" +# resource_group: "{{ resource_group }}" + +- name: SETUP | Create virtual network + azure_rm_virtualnetwork: + resource_group: "{{ resource_group }}" + name: "{{ network_name }}" + address_prefixes: "{{ network }}" + +- name: SETUP | Create subnet + azure_rm_subnet: + resource_group: "{{ resource_group }}" + name: "{{ subnet_name }}" + address_prefix: "{{ subnet }}" + virtual_network: "{{ network_name }}" + +- name: Create NICs for VM + azure_rm_networkinterface: + resource_group: "{{ resource_group }}" + name: "{{ nic }}" + virtual_network: "{{ network_name }}" + subnet: "{{ subnet_name }}" + +- name: Create virtual machine + azure_rm_virtualmachine: + resource_group: "{{ resource_group }}" + vm_name: "{{ vm_name }}" + storage_profile: + image_reference: + id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG02/providers/Microsoft.Compute/images/testimage001 + os_disk: + caching: ReadWrite + create_option: FromImage + name: testimage001 + #vhd: + # uri: https://testvm022333.blob.core.windows.net/vhds/testvm02.vhd + #image_reference: + # offer: UbuntuServer + # publisher: Canonical + # sku: 16.04-LTS + # version: latest + #data_disks: + # - create_option: Empty + # disk_size_gb: 1023 + # lun: 0 + # vhd: + # uri: https://md-lm12dkw05bgr.blob.core.windows.net/gjv41wwl31s0/abcd?sv=2018-03-28&sr=b&si=2ba73ac9-427c-4b18-8b78-d6f0d32e3c29&sig=%2F3iwPcOMEV3i%2F3xBBK88yLmYyhl%2BASAIGSkTI2fPXXc%3D + network_profile: + network_interfaces: + - id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG02/providers/Microsoft.Network/networkInterfaces/{{nic}} + primary: false + hardware_profile: + vm_size: Standard_A0 + os_profile: + admin_username: testuser + linux_configuration: + disable_password_authentication: True + ssh: + public_keys: + - path: /home/testuser/.ssh/authorized_keys + key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com" + computer_name: "{{ vm_name }}" + # #os_type: Linux + # #os_disk_size_gb: 64 + tags: + abc: def + tags: fred + register: output +- debug: + var: output +- name: get vm info + azure_rm_virtualmachine_info: + resource_group: "{{ resource_group }}" + name: "{{ vm_name }}" + register: output +- debug: + var: output + diff --git a/main_with_NIC.yml b/main_with_NIC.yml new file mode 100755 index 0000000..f627f46 --- /dev/null +++ b/main_with_NIC.yml @@ -0,0 +1,93 @@ + +- name: SETUP | Create storage account + azure_rm_storageaccount: + resource_group: "{{ resource_group }}" + name: "{{ storage_account }}" + account_type: Standard_LRS +#- name: SETUP | Create availability set +# azure_rm_availabilityset: +# name: "{{ availability_set }}" +# resource_group: "{{ resource_group }}" + +- name: SETUP | Create virtual network + azure_rm_virtualnetwork: + resource_group: "{{ resource_group }}" + name: "{{ network_name }}" + address_prefixes: "{{ network }}" + +- name: SETUP | Create subnet + azure_rm_subnet: + resource_group: "{{ resource_group }}" + name: "{{ subnet_name }}" + address_prefix: "{{ subnet }}" + virtual_network: "{{ network_name }}" + +- name: Create NICs for VM + azure_rm_networkinterface: + resource_group: "{{ resource_group }}" + name: "{{ nic }}" + virtual_network: "{{ network_name }}" + subnet: "{{ subnet_name }}" + +- name: Create virtual machine with NIC + azure_rm_virtualmachine: + resource_group: "{{ resource_group }}" + vm_name: "{{ vm_name }}" + storage_profile: + image_reference: + offer: UbuntuServer + publisher: Canonical + sku: 16.04-LTS + version: latest + network_profile: + network_interfaces: + - id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG02/providers/Microsoft.Network/networkInterfaces/nic01 + primary: True + hardware_profile: + vm_size: Standard_A0 + os_profile: + admin_username: testuser + linux_configuration: + disable_password_authentication: True + ssh: + public_keys: + - path: /home/testuser/.ssh/authorized_keys + key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com" + computer_name: testvm + #os_type: Linux + #os_disk_size_gb: 64 + tags: + abc: def + +- name: Create virtual machine with mult NIC + azure_rm_virtualmachine: + resource_group: "{{ resource_group }}" + vm_name: "{{ vm_name }}" + storage_profile: + image_reference: + offer: UbuntuServer + publisher: Canonical + sku: 16.04-LTS + version: latest + network_profile: + network_interfaces: + - id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG02/providers/Microsoft.Network/networkInterfaces/nic03 + primary: false + - id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG02/providers/Microsoft.Network/networkInterfaces/nic02 + primary: True + hardware_profile: + vm_size: Standard_A0 + os_profile: + admin_username: testuser + linux_configuration: + disable_password_authentication: True + ssh: + public_keys: + - path: /home/testuser/.ssh/authorized_keys + key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfoYlIV4lTPZTv7hXaVwQQuqBgGs4yeNRX0SPo2+HQt9u4X7IGwrtXc0nEUm6LfaCikMH58bOL8f20NTGz285kxdFHZRcBXtqmnMz2rXwhK9gwq5h1khc+GzHtdcJXsGA4y0xuaNcidcg04jxAlN/06fwb/VYwwWTVbypNC0gpGEpWckCNm8vlDlA55sU5et0SZ+J0RKVvEaweUOeNbFZqckGPA384imfeYlADppK/7eAxqfBVadVvZG8IJk4yvATgaIENIFj2cXxqu2mQ/Bp5Wr45uApvJsFXmi+v/nkiOEV1QpLOnEwAZo6EfFS4CCQtsymxJCl1PxdJ5LD4ZOtP xiuxi.sun@qq.com" + computer_name: testvm + #os_type: Linux + #os_disk_size_gb: 64 + tags: + abc: def + tags: fred diff --git a/new/azure_rm_registrationdefinition.py b/new/azure_rm_registrationdefinition.py new file mode 100755 index 0000000..b700439 --- /dev/null +++ b/new/azure_rm_registrationdefinition.py @@ -0,0 +1,601 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationdefinition +version_added: '2.9' +short_description: Manage Azure RegistrationDefinition instance. +description: + - 'Create, update and delete instance of Azure RegistrationDefinition.' +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_definition_id: + description: + - Guid of the registration definition. + required: true + type: str + properties: + description: + - Properties of a registration definition. + type: dict + suboptions: + description: + description: + - Description of the registration definition. + type: str + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security + group or service principal and id of the build-in role. + required: true + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. + It is the list of role definition ids which define all the + permissions that the user in the authorization can assign to + other security groups/service principals/users. + type: list + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, + and just-in-time access policy setting + type: list + suboptions: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + required: true + type: str + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + required: true + type: str + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + suboptions: + multi_factor_auth_provider: + description: + - MFA provider. + required: true + type: str + choices: + - Azure + - None + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default + value is "PT8H". + type: str + name: + description: + - Name of the registration definition. + type: str + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + required: true + type: str + plan: + description: + - Plan details for the managed services. + type: dict + suboptions: + name: + description: + - The plan name. + required: true + type: str + publisher: + description: + - The publisher ID. + required: true + type: str + product: + description: + - The product code. + required: true + type: str + version: + description: + - The plan's version. + required: true + type: str + state: + description: + - Assert the state of the RegistrationDefinition. + - >- + Use C(present) to create or update an RegistrationDefinition and + C(absent) to delete it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure.azcollection.azure + - azure.azcollection.azure_tags +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Delete Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + - name: Put Registration Definition + azure_rm_registrationdefinition: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + +''' + +RETURN = ''' +properties: + description: + - Properties of a registration definition. + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security group + or service principal and id of the build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. It + is the list of role definition ids which define all the + permissions that the user in the authorization can assign to other + security groups/service principals/users. + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, and + just-in-time access policy setting + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all the + permissions that the security group/service principal/user must + have on the projected subscription. This role cannot be an owner + role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default value + is "PT8H". + type: str + sample: null + name: + description: + - Name of the registration definition. + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null +plan: + description: + - Plan details for the managed services. + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null +id: + description: + - Fully qualified path of the registration definition. + type: str + sample: null +type: + description: + - Type of the resource. + type: str + sample: null +name: + description: + - Name of the registration definition. + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMRegistrationDefinition(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_definition_id=dict( + type='str', + required=True + ), + properties=dict( + type='dict', + disposition='/properties', + options=dict( + description=dict( + type='str', + disposition='description' + ), + authorizations=dict( + type='list', + disposition='authorizations', + required=True, + elements='dict', + options=dict( + principal_id=dict( + type='str', + disposition='principal_id', + required=True + ), + principal_id_display_name=dict( + type='str', + disposition='principal_id_display_name' + ), + role_definition_id=dict( + type='str', + disposition='role_definition_id', + required=True + ), + delegated_role_definition_ids=dict( + type='list', + disposition='delegated_role_definition_ids', + elements='uuid' + ) + ) + ), + eligible_authorizations=dict( + type='list', + disposition='eligible_authorizations', + elements='dict', + options=dict( + principal_id=dict( + type='str', + disposition='principal_id', + required=True + ), + principal_id_display_name=dict( + type='str', + disposition='principal_id_display_name' + ), + role_definition_id=dict( + type='str', + disposition='role_definition_id', + required=True + ), + just_in_time_access_policy=dict( + type='dict', + disposition='just_in_time_access_policy', + options=dict( + multi_factor_auth_provider=dict( + type='str', + disposition='multi_factor_auth_provider', + choices=['Azure', + 'None'], + required=True + ), + maximum_activation_duration=dict( + type='str', + disposition='maximum_activation_duration' + ) + ) + ) + ) + ), + name=dict( + type='str', + disposition='registration_definition_name' + ), + managed_by_tenant_id=dict( + type='str', + disposition='managed_by_tenant_id', + required=True + ) + ) + ), + plan=dict( + type='dict', + disposition='/plan', + options=dict( + name=dict( + type='str', + disposition='name', + required=True + ), + publisher=dict( + type='str', + disposition='publisher', + required=True + ), + product=dict( + type='str', + disposition='product', + required=True + ), + version=dict( + type='str', + disposition='version', + required=True + ) + ) + ), + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.scope = None + self.registration_definition_id = None + self.body = {} + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMRegistrationDefinition, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + + self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + base_url=self._cloud_environment.endpoints.resource_manager, + suppress_subscription_id=True, + api_version='2020-02-01-preview') + + + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + self.result['state'] = response + + return self.results + + def create_update_resource(self): + try: + response = self.mgmt_client.registration_definitions.create_or_update(registration_definition_id=self.registration_definition_id, + scope=self.scope, + plan=self.body.get('plan', None), + properties=self.body.get('properties', None), + request_body=self.body) + if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + response = self.get_poller_result(response) + except CloudError as exc: + self.log('Error attempting to create the RegistrationDefinition instance.') + self.fail('Error creating the RegistrationDefinition instance: {0}'.format(str(exc))) + return response.as_dict() + + def delete_resource(self): + try: + response = self.mgmt_client.registration_definitions.delete(registration_definition_id=self.registration_definition_id, + scope=self.scope) + except CloudError as e: + self.log('Error attempting to delete the RegistrationDefinition instance.') + self.fail('Error deleting the RegistrationDefinition instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + try: + response = self.mgmt_client.registration_definitions.get(scope=self.scope, + registration_definition_id=self.registration_definition_id) + except Exception as e: + return False + return response.as_dict() + + +def main(): + AzureRMRegistrationDefinition() + + +if __name__ == '__main__': + main() diff --git a/new/azure_rm_registrationdefinition_info.py b/new/azure_rm_registrationdefinition_info.py new file mode 100755 index 0000000..14607df --- /dev/null +++ b/new/azure_rm_registrationdefinition_info.py @@ -0,0 +1,477 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_registrationdefinition_info +version_added: '2.9' +short_description: Get RegistrationDefinition info. +description: + - Get info of RegistrationDefinition. +options: + scope: + description: + - Scope of the resource. + required: true + type: str + registration_definition_id: + description: + - Guid of the registration definition. + type: str +extends_documentation_fragment: + - azure.azcollection.azure + - azure.azcollection.azure_tags +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: Get Registration Definition + azure_rm_registrationdefinition_info: + registration_definition_id: 26c128c2-fefa-4340-9bb1-6e081c90ada2 + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + + - name: Get Registration Definitions + azure_rm_registrationdefinition_info: + scope: subscription/0afefe50-734e-4610-8a82-a144ahf49dea + +''' + +RETURN = ''' +registration_definitions: + description: >- + A list of dict results where the key is the name of the + RegistrationDefinition and the values are the facts for that + RegistrationDefinition. + returned: always + type: complex + contains: + properties: + description: + - Properties of a registration definition. + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the user/security + group or service principal and id of the build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be assigned permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all the + permissions that the security group/service principal/user + must have on the projected subscription. This role cannot be + an owner role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator Role. + It is the list of role definition ids which define all the + permissions that the user in the authorization can assign to + other security groups/service principals/users. + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of the + user/security group or service principal, id of the built-in role, + and just-in-time access policy setting + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user that + would be delegated permissions to the projected subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate all + the permissions that the security group/service principal/user + must have on the projected subscription. This role cannot be + an owner role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The default + value is "PT8H". + type: str + sample: null + name: + description: + - Name of the registration definition. + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null + plan: + description: + - Plan details for the managed services. + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null + id: + description: + - Fully qualified path of the registration definition. + type: str + sample: null + type: + description: + - Type of the resource. + type: str + sample: null + name: + description: + - Name of the registration definition. + type: str + sample: null + value: + description: + - List of registration definitions. + type: list + sample: null + contains: + properties: + description: + - Properties of a registration definition. + type: dict + sample: null + contains: + description: + description: + - Description of the registration definition. + type: str + sample: null + authorizations: + description: + - >- + Authorization tuple containing principal id of the + user/security group or service principal and id of the + build-in role. + returned: always + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user + that would be assigned permissions to the projected + subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will define all + the permissions that the security group/service + principal/user must have on the projected subscription. + This role cannot be an owner role. + returned: always + type: str + sample: null + delegated_role_definition_ids: + description: + - >- + The delegatedRoleDefinitionIds field is required when the + roleDefinitionId refers to the User Access Administrator + Role. It is the list of role definition ids which define + all the permissions that the user in the authorization can + assign to other security groups/service principals/users. + type: list + sample: null + eligible_authorizations: + description: + - >- + Eligible PIM authorization tuple containing principal id of + the user/security group or service principal, id of the + built-in role, and just-in-time access policy setting + type: list + sample: null + contains: + principal_id: + description: + - >- + Principal Id of the security group/service principal/user + that would be delegated permissions to the projected + subscription + returned: always + type: str + sample: null + principal_id_display_name: + description: + - Display name of the principal Id. + type: str + sample: null + role_definition_id: + description: + - >- + The role definition identifier. This role will delegate + all the permissions that the security group/service + principal/user must have on the projected subscription. + This role cannot be an owner role. + returned: always + type: str + sample: null + just_in_time_access_policy: + description: + - Just-in-time access policy setting. + type: dict + sample: null + contains: + multi_factor_auth_provider: + description: + - MFA provider. + returned: always + type: str + sample: null + maximum_activation_duration: + description: + - >- + Maximum access duration in ISO 8601 format. The + default value is "PT8H". + type: str + sample: null + name: + description: + - Name of the registration definition. + type: str + sample: null + managed_by_tenant_id: + description: + - Id of the managedBy tenant. + returned: always + type: str + sample: null + plan: + description: + - Plan details for the managed services. + type: dict + sample: null + contains: + name: + description: + - The plan name. + returned: always + type: str + sample: null + publisher: + description: + - The publisher ID. + returned: always + type: str + sample: null + product: + description: + - The product code. + returned: always + type: str + sample: null + version: + description: + - The plan's version. + returned: always + type: str + sample: null + next_link: + description: + - Link to next page of registration definitions. + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.managedservices import ManagedServicesClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class AzureRMRegistrationDefinitionInfo(AzureRMModuleBase): + def __init__(self): + self.module_arg_spec = dict( + scope=dict( + type='str', + required=True + ), + registration_definition_id=dict( + type='str' + ) + ) + + self.scope = None + self.registration_definition_id = None + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.url = None + self.status_code = [200] + + self.query_parameters = {} + self.query_parameters['api-version'] = '2020-02-01-preview' + self.header_parameters = {} + self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' + + self.mgmt_client = None + super(AzureRMRegistrationDefinitionInfo, self).__init__(self.module_arg_spec, supports_tags=True) + + def exec_module(self, **kwargs): + + for key in self.module_arg_spec: + setattr(self, key, kwargs[key]) + + self.mgmt_client = self.get_mgmt_svc_client(ManagedServicesClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-02-01-preview') + + if (self.scope is not None and + self.registration_definition_id is not None): + self.results['registration_definitions'] = self.format_item(self.get()) + elif (self.scope is not None): + self.results['registration_definitions'] = self.format_item(self.list()) + return self.results + + def get(self): + response = None + + try: + response = self.mgmt_client.registration_definitions.get(scope=self.scope, + registration_definition_id=self.registration_definition_id) + except CloudError as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def list(self): + response = None + + try: + response = self.mgmt_client.registration_definitions.list(scope=self.scope) + except CloudError as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def format_item(self, item): + if hasattr(item, 'as_dict'): + return [item.as_dict()] + else: + result = [] + items = list(item) + for tmp in items: + result.append(tmp.as_dict()) + return result + + +def main(): + AzureRMRegistrationDefinitionInfo() + + +if __name__ == '__main__': + main() diff --git a/new/main.yml b/new/main.yml new file mode 100755 index 0000000..80a21c7 --- /dev/null +++ b/new/main.yml @@ -0,0 +1,85 @@ +- name: set facts + set_fact: + subscription_id: "{{ azure_subscription_id }}" + subscription_sec_id: "{{ azure_subscription_sec_id }}" + managed_by_tenant_id: "{{ azure_managed_by_tenant_id }}" + principal_id: "{{ azure_principal_id }}" + role_definition_id: "{{ azure_role_definition_id }}" + reg_def_name: test_name + registration_definition_id: 182973c7-a90a-4220-a504-8c6a20eefd00 + run_once: yes + +- name: Create a RegistrationDefinition -- check mode + azure_rm_registrationdefinition: + scope: subscriptions/{{ subscription_id }} + registration_definition_id: "{{ registration_definition_id }}" + properties: + description: first_test + authorizations: + - principal_id: "{{ principal_id }}" + role_definition_id: "{{ role_definition_id }}" + managed_by_tenant_id: "{{ managed_by_tenant_id }}" + name: "{{ reg_def_name }}" + check_mode: yes + register: output + +- name: Create a RegistrationDefinition with scope + azure_rm_registrationdefinition: + scope: subscriptions/{{ subscription_id }} + registration_definition_id: "{{ registration_definition_id }}" + properties: + description: test definition with scope + authorizations: + - principal_id: "{{ principal_id }}" + role_definition_id: "{{ role_definition_id }}" + managed_by_tenant_id: "{{ managed_by_tenant_id }}" + name: "{{ reg_def_name }}" + register: output + +- name: Create a RegistrationDefinition (idempotent) + azure_rm_registrationdefinition: + registration_definition_id: "{{ registration_definition_id }}" + scope: subscriptions/{{ subscription_id }} + properties: + description: first_test + authorizations: + - principal_id: "{{ principal_id }}" + role_definition_id: "{{ role_definition_id }}" + managed_by_tenant_id: "{{ managed_by_tenant_id }}" + name: "{{ reg_def_name }}" + register: output + + +- name: Update the RegistrationDefinition properties description and name + azure_rm_registrationdefinition: + registration_definition_id: "{{ registration_definition_id }}" + scope: subscriptions/{{ subscription_id }} + properties: + description: second_test + authorizations: + - principal_id: "{{ principal_id }}" + role_definition_id: "{{ role_definition_id }}" + managed_by_tenant_id: "{{ managed_by_tenant_id }}" + name: "{{ reg_def_name }}02" + register: output + +- name: Get the Registration Definition info + azure_rm_registrationdefinition_info: + registration_definition_id: "{{ registration_definition_id }}" + register: output + +- name: Get All Registration Definition info in the subscription + azure_rm_registrationdefinition_info: + scope: subscriptions/{{ subscription_id }} + register: output + +- name: Delete the registration definition + azure_rm_registrationdefinition: + registration_definition_id: "{{ registration_definition_id }}" + state: absent + register: output + +- name: Delete the registration definition + azure_rm_registrationdefinition: + registration_definition_id: "{{ registration_definition_id }}" + state: absent diff --git a/new/tasks.yml b/new/tasks.yml new file mode 100755 index 0000000..03546df --- /dev/null +++ b/new/tasks.yml @@ -0,0 +1,14 @@ +--- +- name: for test + hosts: localhost + connection: lcoal + collections: + - azure.azcollection + vars: + azure_subscription_sec_id: f64d4ee8-be94-457d-ba26-3fa6b6506cef + azure_subscription_id: f64d4ee8-be94-457d-ba26-3fa6b6506cef + azure_managed_by_tenant_id: fbcdd0f3-dc82-4cee-bcde-7301d24e9bf6 + azure_principal_id: 99e3227f-8701-4099-869f-bc3efc7f1e64 + azure_role_definition_id: b24988ac-6180-42a0-ab88-20f7382dd24c + tasks: + - include: main1.yml diff --git a/t.yml b/t.yml new file mode 100755 index 0000000..a59a526 --- /dev/null +++ b/t.yml @@ -0,0 +1,10 @@ +--- +- name: for test + hosts: localhost + connection: local + collections: + - azure.azcollection + vars: + subscription_id: f64d4ee8-be94-457d-ba26-3fa6b6506cef + tasks: + - include: main2.yml diff --git a/t_docker-compose.yml b/t_docker-compose.yml new file mode 100755 index 0000000..244b338 --- /dev/null +++ b/t_docker-compose.yml @@ -0,0 +1,40 @@ +--- +- name: for test + hosts: localhost + connection: lcoal + collections: + - azure.azcollection + vars: + resource_group: v-xisuRG + tasks: + - set_fact: + test: "{{ lookup('file', 'docker-compose.yml') | b64decode }}" + tags: fred + - debug: + var: test + tags: fred + + - debug: + var: lookup('file', 'docker-compose.yml') | b64encode + #var: "COMPOSE{{ lookup('file', 'docker-compose.yml') | b64encode }}" + tags: fred02 + + - name: Create a multi-container web app + azure_rm_webapp: + resource_group: v-xisuRG + name: myMultiContainerWebapp05 + plan: + name: myAppServicePlan05 + resource_group: v-xisuRG + is_linux: true + sku: S1 + number_of_workers: 1 + app_settings: + testkey: testvalue + container_settings: + #name: COMPOSEtest01 + name: COMPOSE{{ lookup('file', 'docker-compose.yml') | b64decode }} + register: output + - debug: + var: output + diff --git a/tasks.yml b/tasks.yml new file mode 100755 index 0000000..f9b3bf8 --- /dev/null +++ b/tasks.yml @@ -0,0 +1,71 @@ +--- +- name: for test + hosts: localhost + connection: local + collections: + - azure.azcollection + vars: + subscription_id: f64d4ee8-be94-457d-ba26-3fa6b6506cef + tasks: + #- include: main2.yml + - name: Delete a RegistrationAssignment ---01 + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + state: absent + + - name: Create a RegistrationAssignment ---check mode + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + properties: + registration_definition_id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.ManagedServices/registrationDefinitions/d96f61e7-af14-440c-be1b-8395c327ae29 + register: output + check_mode: yes + - debug: + var: output + + - name: Create a RegistrationAssignment ---0101 + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + #registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + properties: + registration_definition_id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.ManagedServices/registrationDefinitions/2e853c04-ad29-4d0b-9f6b-e72c225d96c6 + expand_registration_definition: true + register: output + tags: fred + - debug: + var: output + tags: fred + + - name: Create a RegistrationAssignment -- idempotent + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + properties: + registration_definition_id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.ManagedServices/registrationDefinitions/d96f61e7-af14-440c-be1b-8395c327ae29 + expand_registration_definition: true + register: output + - debug: + var: output + + - name: Create a RegistrationAssignment -- update + azure_rm_registrationassignment: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + properties: + registration_definition_id: /subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.ManagedServices/registrationDefinitions/d96f61e7-af14-440c-be1b-8395c327ae29 + expand_registration_definition: false + register: output + - debug: + var: output + + + - name: Get a RegistrationAssignment + azure_rm_registrationassignment_info: + scope: subscriptions//{{ subscription_id }} + registration_assignment_id: d96f61e7-af14-440c-be1b-8395c327ae29 + expand_registration_definition: true + register: output + - debug: + var: output diff --git a/test.json.html b/test.json.html new file mode 100755 index 0000000..4aea6f2 --- /dev/null +++ b/test.json.html @@ -0,0 +1,372 @@ +[ + { + "RoleAssignmentId": "2780eecc-c07d-4bfa-b271-0926d6e19b18", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "ansible-api", + "SignInName": "", + "RoleDefinitionName": "参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", + "ObjectId": "1ed507a3-d370-4c04-9da4-39553cc95705", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "ad9e2cd7-0ff7-4931-9b17-656c8f17934b", + "Scope": "/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47", + "DisplayName": "CSEOReader", + "SignInName": "/subscriptions/8542576c-7822-4163-a9c9-c8de2c9ca9d9/resourcegroups/CSEOReader/providers/Microsoft.ManagedIdentity/userAssignedIdentities/CSEOReader", + "RoleDefinitionName": "读者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7", + "ObjectId": "ce2366a6-64d7-441b-939c-c9d23f91cccd", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "162b2694-78b4-499d-b305-04d1aaf34200", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "cln8f89c932-e7e7-46c4-b120-477758bafe3a", + "SignInName": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourcegroups/cleanupservice/providers/Microsoft.Web/sites/cln8f89c932-e7e7-46c4-b120-477758bafe3a", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "b6c778f1-0633-4fd6-adf9-2cd56fa43b35", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "8916ba0a-d15e-489a-9b5f-e520a200e307", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "cln8f89c932-e7e7-46c4-b120-477758bafe3a", + "SignInName": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourcegroups/cleanupservice/providers/Microsoft.Web/sites/cln8f89c932-e7e7-46c4-b120-477758bafe3a", + "RoleDefinitionName": "读者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7", + "ObjectId": "b6c778f1-0633-4fd6-adf9-2cd56fa43b35", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "7195154b-00a0-4e30-be6f-54c9fc179b4a", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "cln8f89c932-e7e7-46c4-b120-477758bafe3a", + "SignInName": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourcegroups/cleanupservice/providers/Microsoft.Web/sites/cln8f89c932-e7e7-46c4-b120-477758bafe3a", + "RoleDefinitionName": "经典虚拟机参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb", + "ObjectId": "b6c778f1-0633-4fd6-adf9-2cd56fa43b35", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "1c6fe60f-37c7-48c7-b37e-3b7b35cbdd0d", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "717022076", + "SignInName": "717022076@qq.com", + "RoleDefinitionName": "参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", + "ObjectId": "13359d96-cfe3-4f0f-b2ae-33fbdeee05e7", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "ae97351c-08b9-4b26-b45d-a3cd3fccd146", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "Erich(Renyong) Wang", + "SignInName": "eriwan@microsoft.com", + "RoleDefinitionName": "所有者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", + "ObjectId": "1cf5bc65-5ac8-4dd9-bd98-ed372e7e69be", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "bc61d8ad-9fd2-4dbb-83ed-7b24d8cc1242", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "Haiyuan Zhang", + "SignInName": "haiyzhan@microsoft.com", + "RoleDefinitionName": "所有者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", + "ObjectId": "ffb40027-5d10-4dd3-98ac-675ab654699a", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "4b771ea9-81de-4fc4-aa28-a3a0b9b4a320", + "Scope": "/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod", + "DisplayName": "MS-PIM", + "SignInName": "", + "RoleDefinitionName": "用户访问管理员", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9", + "ObjectId": "1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "1a2c7b9b-aa41-466b-9088-08b789791cf4", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "mseng-VSOSS-f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "SignInName": "", + "RoleDefinitionName": "参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", + "ObjectId": "1687fb16-56b2-4edf-8fa7-167c810594d2", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "3b2fe34c-77d3-4499-b8dc-65407878737a", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "Nanxuan Xu", + "SignInName": "nanxu@microsoft.com", + "RoleDefinitionName": "所有者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", + "ObjectId": "2be0d9da-1506-4207-a4c8-b22c649ace9a", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "00625383-053d-4227-a4db-b098e9bd2289", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR101-v013", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "b7a49237-f5b0-473f-a4ff-6830d23af17d", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "93eb573f-955e-41ff-ad38-418980a1cf5c", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "PuiChee (PC) Chan", + "SignInName": "puichan@microsoft.com", + "RoleDefinitionName": "所有者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", + "ObjectId": "44cbe3c5-06c1-497a-b229-e0f2f21eb8fa", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "c82c0511-6fc6-4054-8406-342d3ed32fe2", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "Guopeng Lin", + "SignInName": "t-glin@microsoft.com", + "RoleDefinitionName": "参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", + "ObjectId": "71fcc55e-17f9-4418-9ddc-7f9260f364e2", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "45bb25d7-b16e-4ff4-8d95-9f2ef0a085fc", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "Tom Archer", + "SignInName": "tarcher@microsoft.com", + "RoleDefinitionName": "参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", + "ObjectId": "1676395a-2697-463f-ac57-1fbb86fcb0fb", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "2c98007d-177b-48ef-8d26-fe5318c8ffe5", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "Chang Li (PACTERA TECHNOLOGIES INC)", + "SignInName": "v-ronl@microsoft.com", + "RoleDefinitionName": "所有者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", + "ObjectId": "4822dc37-0494-4672-a39b-079a09ddca92", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "e337e484-a201-4011-b00d-85918b472c11", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "collection-testing", + "SignInName": "", + "RoleDefinitionName": "参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", + "ObjectId": "f5bd885c-e867-4e66-aa56-f831c5ea16f0", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "fea15d61-b5a5-47ad-9be4-a6f48ea26551", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "Fred Sun (PACTERA TECHNOLOGIES INC)", + "SignInName": "v-xisu@microsoft.com", + "RoleDefinitionName": "所有者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", + "ObjectId": "29f40236-93d9-4e0c-a549-ce838129e9b6", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "3e883d24-b106-42ff-ad13-d7bf271b964d", + "Scope": "/", + "DisplayName": "Geneva Analytics Reader", + "SignInName": "", + "RoleDefinitionName": "读者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7", + "ObjectId": "5c617d2b-99f8-4c90-98fe-dfe040fa33c1", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "0ecbfe6d-4a95-43b2-98b1-12c18835cd5f", + "Scope": "/providers/Microsoft.Management/managementGroups/64cd7b97-58e0-44d3-832b-55657739bde3", + "DisplayName": "MS-PIM", + "SignInName": "", + "RoleDefinitionName": "用户访问管理员", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9", + "ObjectId": "1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "6f4de15e-9316-4714-a7c4-40c46cf8e067", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "MS-PIM", + "SignInName": "", + "RoleDefinitionName": "用户访问管理员", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9", + "ObjectId": "1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "b4bdc3a7-78e2-4b26-8b90-e474aa120b47", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR102-v013", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "985bb80e-8113-4542-8d68-418589e6ff34", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "18fdd87e-1c01-424e-b380-32310f4940c2", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR103-v014", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "2ac3f52f-f3ad-40a4-9b2d-aa24e4c7bbba", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "3151fe9c-fcd2-45d3-a256-72fb13b86df5", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR104-v013", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "f2e939bc-742a-42f9-a27a-f0982c6e3f64", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "d9bcf58a-6f24-446d-bf60-20ffe5142396", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR105-v013", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "4a113caa-961f-4535-ac9b-79bfba8b9ed2", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR106-v013", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "6179a082-c057-4fe3-8118-916b816a42e3", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "0dabf212-a1c7-4af6-ba8b-be045493b368", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR107-v013", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "7c2d0d59-528c-434a-8c6c-03330539cad2", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "d674b853-332e-4437-9ddb-bba8fde7ccce", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR108-v013", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "7d7aed0a-228e-420b-a6a2-82a49dacb8cb", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "6e2b954b-42b2-48e0-997a-622601f0a4b4", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-NSG-DINE-SR109-v013", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "56d08bc2-cc29-4d23-9d23-fd396b807b02", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "d0817c57-3e5b-4363-88b7-52baadd5c362", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "NRMS-SBNT-DINE-NSG-v012", + "SignInName": "", + "RoleDefinitionName": "网络参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "ObjectId": "6fe923a8-2e4d-4c1f-b7d6-a7c5984f0129", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "b3a9e1db-fde1-4ddd-ac1c-91913be67359", + "Scope": "/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792", + "DisplayName": "SEC-AzSecPack-v032", + "SignInName": "", + "RoleDefinitionName": "虚拟机参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c", + "ObjectId": "b7b8bd19-f827-425f-9be1-fd8a86b21904", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "e6e1fffd-83f7-40c7-9f33-e56e2cf75b29", + "Scope": "/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod", + "DisplayName": "Security Orchestration Service - Corp", + "SignInName": "", + "RoleDefinitionName": "资源策略参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608", + "ObjectId": "1f75b9dd-4f1d-4e80-9521-321a8b1f5764", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "3d01f56e-ee3a-41ed-a775-0e067546cb12", + "Scope": "/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod", + "DisplayName": "Security Orchestration Service - Corp", + "SignInName": "", + "RoleDefinitionName": "管理组参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c", + "ObjectId": "1f75b9dd-4f1d-4e80-9521-321a8b1f5764", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "f29816a0-c2e7-420d-b1c2-78bcbc734dcf", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "tftest", + "SignInName": "", + "RoleDefinitionName": "参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", + "ObjectId": "fcb92946-1402-4d8c-b813-02f588ffb276", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "64bf792c-65e4-40df-8eab-478d6593972d", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef", + "DisplayName": "VappAKSCluster", + "SignInName": "", + "RoleDefinitionName": "参与者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", + "ObjectId": "64bf792c-65e4-40df-8eab-478d6593972d", + "ObjectType": "ServicePrincipal" + }, + { + "RoleAssignmentId": "958d5de6-e281-42f1-a5db-339041c0ce6b", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG", + "DisplayName": "xiuxi.sun", + "SignInName": "xiuxi.sun@qq.com", + "RoleDefinitionName": "所有者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", + "ObjectId": "7218a663-5de1-49e0-a9e1-aa78f5929f66", + "ObjectType": "User" + }, + { + "RoleAssignmentId": "9d4c070d-c732-407f-9c4e-79ce0b9d78b4", + "Scope": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/resourceGroups/v-xisuRG", + "DisplayName": "xiuxi.sun", + "SignInName": "xiuxi.sun@qq.com", + "RoleDefinitionName": "读者", + "RoleDefinitionId": "/subscriptions/f64d4ee8-be94-457d-ba26-3fa6b6506cef/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7", + "ObjectId": "7218a663-5de1-49e0-a9e1-aa78f5929f66", + "ObjectType": "User" + } +] \ No newline at end of file diff --git a/test1.txt b/test1.txt new file mode 100644 index 0000000..c4256ff --- /dev/null +++ b/test1.txt @@ -0,0 +1,105 @@ +INFORMATION: ApplicationGateways +INFORMATION: ApplicationGatewayPrivateLinkResources +INFORMATION: ApplicationGatewayPrivateEndpointConnections +INFORMATION: ApplicationSecurityGroups +INFORMATION: AvailableDelegations +INFORMATION: AvailableResourceGroupDelegations +INFORMATION: AvailableServiceAliases +INFORMATION: AzureFirewalls +INFORMATION: AzureFirewallFqdnTags +INFORMATION: WebCategories +INFORMATION: BastionHosts +INFORMATION: CustomIPPrefixes +INFORMATION: DdosCustomPolicies +INFORMATION: DdosProtectionPlans +INFORMATION: DscpConfiguration +INFORMATION: AvailableEndpointServices +INFORMATION: ExpressRouteCircuitAuthorizations +INFORMATION: ExpressRouteCircuitPeerings +INFORMATION: ExpressRouteCircuitConnections +INFORMATION: PeerExpressRouteCircuitConnections +INFORMATION: ExpressRouteCircuits +INFORMATION: ExpressRouteServiceProviders +INFORMATION: ExpressRouteCrossConnections +INFORMATION: ExpressRouteCrossConnectionPeerings +INFORMATION: ExpressRoutePortsLocations +INFORMATION: ExpressRoutePorts +INFORMATION: ExpressRouteLinks +INFORMATION: FirewallPolicies +INFORMATION: FirewallPolicyRuleCollectionGroups +INFORMATION: IpAllocations +INFORMATION: IpGroups +INFORMATION: LoadBalancers +INFORMATION: LoadBalancerBackendAddressPools +INFORMATION: LoadBalancerFrontendIPConfigurations +INFORMATION: InboundNatRules +INFORMATION: LoadBalancerLoadBalancingRules +INFORMATION: LoadBalancerOutboundRules +INFORMATION: LoadBalancerNetworkInterfaces +INFORMATION: LoadBalancerProbes +INFORMATION: NatGateways +INFORMATION: NetworkInterfaces +INFORMATION: NetworkInterfaceIPConfigurations +INFORMATION: NetworkInterfaceLoadBalancers +INFORMATION: NetworkInterfaceTapConfigurations +INFORMATION: NetworkProfiles +INFORMATION: NetworkSecurityGroups +INFORMATION: SecurityRules +INFORMATION: DefaultSecurityRules +INFORMATION: NetworkVirtualAppliances +INFORMATION: VirtualApplianceSites +INFORMATION: VirtualApplianceSkus +INFORMATION: InboundSecurityRule +INFORMATION: NetworkWatchers +INFORMATION: PacketCaptures +INFORMATION: ConnectionMonitors +INFORMATION: FlowLogs +INFORMATION: Operations +INFORMATION: PrivateEndpoints +INFORMATION: AvailablePrivateEndpointTypes +INFORMATION: PrivateDnsZoneGroups +INFORMATION: PrivateLinkServices +INFORMATION: PublicIPAddresses +INFORMATION: PublicIPPrefixes +INFORMATION: RouteFilters +INFORMATION: RouteFilterRules +INFORMATION: RouteTables +INFORMATION: Routes +INFORMATION: SecurityPartnerProviders +INFORMATION: BgpServiceCommunities +INFORMATION: ServiceEndpointPolicies +INFORMATION: ServiceEndpointPolicyDefinitions +INFORMATION: ServiceTags +INFORMATION: Usages +INFORMATION: VirtualNetworks +INFORMATION: Subnets +INFORMATION: ResourceNavigationLinks +INFORMATION: ServiceAssociationLinks +INFORMATION: VirtualNetworkPeerings +INFORMATION: VirtualNetworkGateways +INFORMATION: VirtualNetworkGatewayConnections +INFORMATION: LocalNetworkGateways +INFORMATION: VirtualNetworkTaps +INFORMATION: VirtualRouters +INFORMATION: VirtualRouterPeerings +INFORMATION: VirtualWans +INFORMATION: VpnSites +INFORMATION: VpnSiteLinks +INFORMATION: VpnSitesConfiguration +INFORMATION: VpnServerConfigurations +INFORMATION: VirtualHubs +INFORMATION: HubVirtualNetworkConnections +INFORMATION: VpnGateways +INFORMATION: VpnConnections +INFORMATION: VpnSiteLinkConnections +INFORMATION: VpnLinkConnections +INFORMATION: P2sVpnGateways +INFORMATION: VpnServerConfigurationsAssociatedWithVirtualWan +INFORMATION: VirtualHubRouteTableV2s +INFORMATION: ExpressRouteGateways +INFORMATION: ExpressRouteConnections +INFORMATION: VirtualHubBgpConnection +INFORMATION: VirtualHubBgpConnections +INFORMATION: VirtualHubIpConfiguration +INFORMATION: HubRouteTables +INFORMATION: WebApplicationFirewallPolicies diff --git a/test2.json b/test2.json new file mode 100755 index 0000000..7d0d7da --- /dev/null +++ b/test2.json @@ -0,0 +1,491 @@ +RoleAssignmentId,Scope,DisplayName,SignInName,RoleDefinitionName,RoleDefinitionId,ObjectId,ObjectType +8463ea2e-b150-41dd-9e42-3874a88002b8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,aad-app-example,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,4f8d4c89-53f2-42d4-84a1-9175f76bba43,ServicePrincipal +ebe9134c-18d9-4c2a-8aec-13a38cae1efc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,abby,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a837610b-34cd-48dc-86c7-1db8b8ef958b,ServicePrincipal +85ca428c-1ddd-4257-8c19-d9d5b91052e5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,acs,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,fd3af755-9c7c-4e6d-bb82-caa51d365328,ServicePrincipal +ca7685d1-9d6b-4f46-91fb-b4f0573dc4c6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Adi Biton,adbiton@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e24540b6-0f29-4359-8cf5-7d4a7eff1696,User +f34ccdbe-077e-4f6d-b859-27a505deb605,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Andy Xu (DEVDIV),andxu@microsoft.com,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,daaaad09-062a-4dc1-bfff-fe60932f73f2,User +837d26e5-02c3-4ea6-b5ab-0cfd94de79e7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Andy Xu (DEVDIV),andxu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,daaaad09-062a-4dc1-bfff-fe60932f73f2,User +c0588d3a-f8c2-44e4-bfdf-3a109619bd55,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Akien Li (CSI Interfusion Inc),v-akienli@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0fc89230-a13e-4551-b20c-13f6756354d3,User +45a38454-33d7-4382-85ad-0cfad0ed0bc7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Ansible Test App,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,4399c8b8-149a-4ea6-8c6b-2059e9debe0b,ServicePrincipal +196cd319-affb-4a15-bbf2-0ed38d950495,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Ansible Test App,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4399c8b8-149a-4ea6-8c6b-2059e9debe0b,ServicePrincipal +a09c03f3-fbd3-4b21-bf7a-46c961a5c09e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ansible-api,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1ed507a3-d370-4c04-9da4-39553cc95705,ServicePrincipal +14757dd7-a97f-4a8f-b90d-50b8307c53d7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ansible0120,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7df9bbb4-9f47-4eb5-9e88-4a75fb577083,ServicePrincipal +5910a829-c91e-449a-91c2-637aeb500461,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ansibleci,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0bf3e431-354f-4d49-bdd1-06cdc93d04e3,ServicePrincipal +c4edfe73-2909-465b-8f84-f994fc7beb3b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ansiblespkylie,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f541a0ef-4386-421e-9696-5060c49af1b5,ServicePrincipal +c6cbe4e2-34ae-42bd-8c28-0deb418ca347,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ansibleuser1,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c3285aec-1786-4b33-97cf-57cc6973333f,ServicePrincipal +8bca5a58-beca-4b85-ba8e-ee348248ab70,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,App-for-reading-certs-2020,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d1e4fe86-96ac-455f-8413-1951bae133b2,ServicePrincipal +577baa07-9b59-4d94-b91a-edf67ad4ff2a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,application-rujche,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,d5ac6b9d-1569-4595-983d-c5a1a0494ae7,ServicePrincipal +faf37d83-1915-4a50-80f6-9a8796d8a940,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,asc-sdk-test-app,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,ce449e7f-b522-4769-8f97-65e680e308b4,ServicePrincipal +3bce437a-1f1b-4026-a944-2eecd6c1b92e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ascdevsprpeusa,,监视指标发布者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/3913510d-42f4-4e42-8a64-420c390055eb,2ee03534-eb9d-4ce4-b918-a6a248940752,ServicePrincipal +297719b6-0e23-4183-af2c-45bd63c6d62d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ascdevsprpeusa,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,2ee03534-eb9d-4ce4-b918-a6a248940752,ServicePrincipal +b55d139f-7c8b-4d15-9ada-8ed52f4a3306,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ascdevsprpeusa,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2ee03534-eb9d-4ce4-b918-a6a248940752,ServicePrincipal +c9e4cf31-6088-4696-b320-c534cca189e5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Asir Vedamuthu Selvasingh,asirveda@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,12b6d75b-1df0-4356-ba1f-888cae8973d7,User +4647d6bd-6128-4afe-a1da-5f92a1599e95,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2017-12-12-03-28-31,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,b0d825da-f22f-418e-ab7b-d95fcf9c0afa,ServicePrincipal +d1924579-ada9-4617-ae88-d081b7acfd40,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-06-29-08-13-52,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,213dfbfe-6ed2-4dab-8476-dd8d2415ce3e,ServicePrincipal +3f4b8486-1ac0-438e-a08b-aedbe6b44346,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-06-39-38,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1ed50f2b-6721-42d6-b235-8b0bcf8ebc74,ServicePrincipal +b41281ff-aa04-4905-833e-3c89dda8a29a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-06-49-52,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,19c02d97-fb45-42c2-be52-e0da4de00443,ServicePrincipal +e2f728fd-aed9-4995-9e79-157e274c16ee,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-07-47-05,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,12392b90-94a4-4830-8fc9-8e334eb25c27,ServicePrincipal +91ddff6f-480b-443f-9419-feb1480ea401,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-07-19-10-44-26,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,230e0f6e-8ea0-4dd7-b7b1-aac5839a9d88,ServicePrincipal +d08510b4-0e4b-4274-b020-e0dedbcfd625,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-07-23-10-42-40,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1fd3fdd4-9960-4854-b153-79a84f8ebb77,ServicePrincipal +45d5578d-aaff-4e6d-ad3c-6fac97eb4031,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-43-07,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2cbfed22-5a17-4f6d-afe1-d8f2dccd690c,ServicePrincipal +12c5ca24-fd39-4428-90e5-fdf1a1cbf7a2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-01-05-38-49,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0003b4fc-fb7f-408f-ac22-99662d1a6511,ServicePrincipal +f5698aaa-11ca-4ed7-824f-956b785c65b5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-01-06-53-32,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,29822b33-17d0-4143-a715-af67b09302de,ServicePrincipal +4b7a74d7-441d-422c-9a3b-d39240f74d23,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-02-12-06-35-59,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,14d48b30-a1c0-4a9b-8809-f02fe985a915,ServicePrincipal +146f0f3a-da3e-43ab-a527-0666b4c1027b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-02-19-11-08-01,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0c0943d5-1f97-4e21-a9fb-8cbb524747dc,ServicePrincipal +bb063263-49c2-4ae2-8d00-975451cd43d9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-06-07-27-28,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2b342f98-2309-44dd-b9ae-6ed46bf05bd8,ServicePrincipal +e5c4c28a-bd09-440c-a1e5-f67578e5a114,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-20-06-02-53,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0b8b3b5e-2654-4c9c-95fd-2c9b87b97d29,ServicePrincipal +f8c766e5-f18d-449b-b520-499e606dafce,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-20-06-15-16,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1d15d78c-cfcf-4160-8e68-6fe18374b5e9,ServicePrincipal +5f460876-70cd-498a-9f0d-bd8476f23b32,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-25-06-44-09,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,22025ede-20f4-44dd-9e17-f46f090f29ad,ServicePrincipal +e614e6e2-36c8-43d0-aefa-b46499e21d7a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-27-05-32-42,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1e44ed66-f213-4171-8fb8-6066e21f2505,ServicePrincipal +3ea97641-d85a-401b-9bc1-5039b5f322df,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-04-21-08-25-21,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0a3c171d-b641-4806-b0ba-2fad67e20bcb,ServicePrincipal +e1d05297-1d07-45e6-bc82-44d32b543f81,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-05-08-08-07-25,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1ef72a00-6a99-4766-8313-07e75c9e43bf,ServicePrincipal +f1adad63-bba8-4073-8fb9-f10f7f616485,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-16-02-42-51,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0b436e84-51be-45a6-895d-651985345a2f,ServicePrincipal +57eba47c-3e92-4887-a39d-a5c93ff33f08,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-27-04-08-04,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,250db730-f190-422b-9683-20d4eea54f95,ServicePrincipal +c7f18e40-3f04-4354-b4c0-791996db86fa,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-spring-cloud-vsts-pipelines,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,1cdfa30c-0db7-46c4-a59e-0cf1f3580a05,ServicePrincipal +5bac94e0-6df0-48a7-9c4a-e56c01e1b251,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-spring-cloud-vsts-pipelines,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1cdfa30c-0db7-46c4-a59e-0cf1f3580a05,ServicePrincipal +cce856b0-5d0a-4963-877c-a737034e0794,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20171211-164626,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,085364be-35bf-43c0-ae1d-3d9b7f0a573c,ServicePrincipal +192a38b5-f759-47c4-a056-65dedca94d7f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20180620-112622,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,157def1b-cd2d-4a9d-9c9c-73d254c791ba,ServicePrincipal +d4c2f7be-1cdb-4f4e-a4fe-ba4fcb7185c7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190125-101912,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2f25ddc9-0996-4bc4-9203-444a75883b0c,ServicePrincipal +a1dd4a4e-8cfc-4154-b0d8-fbf5b5f84836,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190301115025,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,14116990-1e69-4a27-8558-84376f732cef,ServicePrincipal +49d1d036-fd59-446f-87f6-f6264e635a4f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190301162636,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2956aca6-1d40-47e7-9921-3d99b26ce9d5,ServicePrincipal +e21b40df-55e5-4d53-967b-83c35f7017ce,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190304104335,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,29ab11ce-4218-41e8-a6e2-395f9e0352c3,ServicePrincipal +1dfe3d35-6e49-45cd-a7f8-4bbe1412995e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190307-180054,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,01976ce3-fa5f-4818-a0c8-bfc494843cb3,ServicePrincipal +68cc142b-a59e-43dc-b167-4f484f871dfc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190409-115448,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,15e7b10c-1302-4908-b2b3-b46e543454d8,ServicePrincipal +c059730b-5550-4c25-a2a2-699483536cea,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190409093614,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,29769114-35c4-4c99-861a-e2dc6f779841,ServicePrincipal +bc07b350-6c95-4578-ad34-2d8c5bb09107,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190409105305,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1adb14f7-6580-47b2-83f9-4d529daf3ed8,ServicePrincipal +6116fdfa-0bb5-4f0c-811b-c39f64efab2b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190409110757,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,209b6771-d064-4781-92e7-76806884e477,ServicePrincipal +8321f5e6-79b2-4b7e-a765-6bcef2c23c3a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190425-141452,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1e25121f-389e-471e-b58e-892ce6851046,ServicePrincipal +1f00fbc7-2ca4-4ecd-acb4-085bf84b6464,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190509145803,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1e4d20d2-5c11-433e-a6a4-93159a7954e7,ServicePrincipal +2547cbf8-5905-4944-9644-b5051a4fccb5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190704-191017,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,055f6d1d-290e-4b4a-b46e-52252ef6b178,ServicePrincipal +7b936d13-44b8-4550-a074-7cfebe188cb5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190708-055153,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,21f56c30-0d78-4a4d-97e4-1fd94bbe6c00,ServicePrincipal +eaa149f7-ed59-443a-b432-5e981e2a6ec7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190714-191644,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,25129fac-36d5-4364-a3cc-8e8865071e21,ServicePrincipal +5a9f189f-e501-422e-a376-3849dbcf51c8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190808022605,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,27206abe-db71-48b3-96cc-cbf52c5ab8cc,ServicePrincipal +853593b6-785e-4099-ae9d-8de053585f4f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190829-173338,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1c4c4a19-b6bc-4c03-8008-d5cae037a530,ServicePrincipal +06358e4e-7c11-4380-8672-1c6909140e55,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190830-140256,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,20f6752c-e76f-48f5-9c59-e4d8224fc0d6,ServicePrincipal +a6a3d281-09a4-4db5-a1d8-dee5935a9885,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190916051503,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,20c4397e-4134-4f52-b69c-0b78cd65fbff,ServicePrincipal +fff7664d-2141-4af6-9943-38eeb4b8d1d9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190916140635,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,14cd9069-57eb-4a6a-b842-043a2b30bbf9,ServicePrincipal +ffcbc52c-1004-4fc0-8f11-3e03f6710dd2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191022074738,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,13a5de01-1def-42a6-90ad-1c935bf9c3d2,ServicePrincipal +068a89c9-69b6-453f-915e-95c61f4d1ca8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191104-015426,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0e1a86ad-0023-44ba-9548-7017ec3f6df8,ServicePrincipal +ca7d454c-5fe3-427c-aab8-60ceff6152d8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191105-053315,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,19de5d30-82c0-49a2-8611-f4f324a28b07,ServicePrincipal +695ff765-75fc-415b-999e-d182789e0607,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200426-111008,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,000d7785-fbd4-43fb-beb0-083aaee19379,ServicePrincipal +930c4b4b-ebbf-4e76-b80d-d52181e199bb,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200731-144720,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2133893e-b8f1-435f-aff0-7a6728b151bf,ServicePrincipal +35b6f8bd-6754-4774-b38b-1a0b74bce79e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,cln2496a0e3-293b-4d26-85f0-f93868634dc2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/resourcegroups/cleanupservice/providers/Microsoft.Web/sites/cln2496a0e3-293b-4d26-85f0-f93868634dc2,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,f62d0985-2cd5-4bbb-835b-379199bd5fc4,ServicePrincipal +ca706dad-4894-42b1-9b5d-1debf3bcf6ae,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,cln2496a0e3-293b-4d26-85f0-f93868634dc2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/resourcegroups/cleanupservice/providers/Microsoft.Web/sites/cln2496a0e3-293b-4d26-85f0-f93868634dc2,读者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7,f62d0985-2cd5-4bbb-835b-379199bd5fc4,ServicePrincipal +f9036ee1-f26a-43c7-81dd-259685fcd432,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Arun Chandrasekhar,achand@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5f105dd2-6f5a-413a-a643-0cfcf0e1b621,User +6b79d01c-6b63-4ab1-b0bd-7dd6c935af85,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ASC Test Pipeline Service Principal,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b77a8668-f304-457a-8d51-80c306126c6c,ServicePrincipal +ac6d73db-aedf-4e28-a44b-e689288bb856,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,asc-sdk-test-app,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ce449e7f-b522-4769-8f97-65e680e308b4,ServicePrincipal +f38baced-adff-4a1b-8f62-1f8b20a4a992,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Asir Vedamuthu Selvasingh,asirveda@microsoft.com,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,12b6d75b-1df0-4356-ba1f-888cae8973d7,User +25357f1e-827f-4052-b5d5-24953ff9543d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,az_sp_name,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8f29e3fa-a0a9-4ed3-a35f-bc40e8d33ae5,ServicePrincipal +7586ed7d-1178-4dd0-b292-997ff327761c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azosscn-AZTF-685ba005-af8d-4b04-8f16-a7bf38b2eb5a,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,56381b09-ea21-45b3-aaa0-bf5b0705f21c,ServicePrincipal +7adf03bf-244f-4c67-aeef-23d73126f69e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-abby,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f6f51c76-74ca-4f17-874a-93a26daf90de,ServicePrincipal +ee0e5c0d-dfd8-4db3-b1f4-6f070f602800,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2017-11-21-00-27-28,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ab392959-9f85-4418-b2f9-d30f43a77150,ServicePrincipal +29eef4a6-d4e4-4f86-86c7-c873f70b7022,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-01-10-22-37-17,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c06afca0-96da-4954-83bb-e1f3b5e5160b,ServicePrincipal +2ee1eacc-eb56-4473-9537-85c372419e95,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-01-30-07-59-10,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,36f94e6a-3715-42a5-9167-f76936abb5cb,ServicePrincipal +ae1a814a-d31e-465d-8934-88874722010a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-01-31-01-54-24,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,30224a6d-d79a-40c5-8e9d-03de87b104bc,ServicePrincipal +e46dcb90-1220-4b98-8904-4b0744f97c16,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-04-16-03-23-36,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,fe3df619-778b-45af-af87-57a331ea0f81,ServicePrincipal +65ab8ee8-0c4e-46ce-89b2-cf268f084373,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-04-23-03-46-03,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b6e056de-2f9a-4d40-9d17-28d32f1b6c9f,ServicePrincipal +c4409b0e-f69f-43a2-9b18-b92ae31cf788,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-06-12-20-10-16,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,dde0b8c0-dd37-4da4-aeec-be832daa5087,ServicePrincipal +3ec5ce98-6780-494b-ad00-7d09fc06c4c1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-07-10-04-48-32,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b025fcf6-7aed-454b-9353-579e868e2ea3,ServicePrincipal +ed1a4ad2-433e-48db-bd24-66d27d337193,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-07-10-05-33-47,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,69418791-3d88-4b8f-a753-471ca7e51911,ServicePrincipal +83f02396-0223-4534-bd8f-f18ed0f3d1a8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-07-17-05-48-16,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e0305723-f171-4d2e-96a1-e158ebfbe355,ServicePrincipal +7d55ea9c-301f-4479-b1d2-d082ed033fc0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-06-03-21,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,47cd4ac0-90a6-4357-af83-d2d2fc8ff600,ServicePrincipal +cc7a0b01-d818-4fdf-b344-a92dcdfe5214,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-06-37-52,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f6dd3848-6660-4cb4-8c8e-2951fad8f9ae,ServicePrincipal +672dadd8-828e-4428-a472-591e270f101f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-07-23-52,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7d1846e9-950f-4638-ad90-2bc0fcc53153,ServicePrincipal +0d897dab-0e25-4151-89f1-de6ebc2e1ce2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-07-25-50,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f6beda35-6102-4518-b397-0cf60663e578,ServicePrincipal +1c862664-e899-4cba-9ce3-e04554c7f973,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-07-33-22,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e9a3e14c-4524-4e8e-b93f-cb8be5a9fa03,ServicePrincipal +c429dc9e-0cf7-4461-a00a-eabb93630826,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-22-07-53-18,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a5b031c0-8e81-4c02-aa0d-bc9f3cf1919a,ServicePrincipal +2a1c8249-f6f3-4bc0-a8d5-52decf6056a9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-23-02-35-44,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,84dee0f9-196a-43b4-9c47-b67c9cfa2d0a,ServicePrincipal +41cb5289-96fb-4af5-bc5f-efbcf5b7ca25,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-08-23-02-39-20,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,46ced50b-0c8d-43a7-908a-628faaf73861,ServicePrincipal +58c38263-f04a-4c45-9b5a-74f6cf333816,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-09-07-07-47-52,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,545a77b7-8941-4810-bd12-626fd1f9a163,ServicePrincipal +0a839e69-5897-4acc-b648-54419ae9a5e4,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-09-11-07-26-56,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c1f52174-72f5-4749-b54b-6a41ffaa0e3a,ServicePrincipal +719e7ca2-3a4b-4027-8ca1-bf1846aa9350,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-11-23-03-19-27,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,caf2b508-1de0-4c25-af88-ccf0d2c832e7,ServicePrincipal +f435ad54-8eb6-4cb2-83bb-576edcc64c7d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-12-11-07-21-06,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,395b28d3-5441-49c0-a189-14b9a25f9b81,ServicePrincipal +3c1ec94b-4de7-4eef-be45-402ea4265533,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2018-12-31-03-47-03,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a8e38ea5-d70d-4308-a2d7-e5b54772ebcd,ServicePrincipal +5857f7cf-eca7-43f4-b2d6-8df27e1a74d7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-01-29-05-28-07,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3e3d8492-769a-4c15-a780-19e3b66166c2,ServicePrincipal +3f9f192b-869c-4ea1-8600-dcc7b65f845f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-01-29-06-27-09,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4aa770ff-eb8f-4890-8bfe-f8ac4c2aa18f,ServicePrincipal +99af497a-7dc9-47d0-a524-81a2cab0c511,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-04-15-04-59-37,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,df63f178-d757-484c-b1de-b5985e4669aa,ServicePrincipal +0a72dd23-a950-4e7c-8809-f39d17cad6b4,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-04-15-05-25-36,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7a667e4e-b02e-4990-a60d-bd1dbcddda90,ServicePrincipal +dc3d5b15-cc10-46fa-812b-b40b7942b512,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-08-01-05-54-16,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5847fd04-4efa-401d-ba86-75851c7721d0,ServicePrincipal +1742f846-5984-45e3-a9fe-4508c74b3bf7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-08-29-08-01-29,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,661dd9e6-5f69-4f6f-b934-22359e3c4e9f,ServicePrincipal +68a78c91-3a6b-4ad9-9566-b5f9866a4210,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-09-25-05-59-44,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3c5be25b-a822-4d8e-b0ac-dc17aff12bfa,ServicePrincipal +f5099718-860c-45e7-9fe2-78ee6cdbbc15,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-07-33-20,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3a4792ca-aad2-4bdd-aba5-90fa17adb4df,ServicePrincipal +01b48fee-83f3-410b-b280-42afc1a13e8f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-07-39-06,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a900ba6e-bd13-4ae8-9898-aa64d5c969d5,ServicePrincipal +8ad17350-654f-44f6-a4f5-c9872dc6cec5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-07-43-34,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a0d4f544-6728-4ccd-af17-3928b7edcccc,ServicePrincipal +e58c2f8d-6a04-41be-b5b1-4edebd799c94,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-07-47-18,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,aeec7e2b-5528-4ca0-942e-0653e4ec6265,ServicePrincipal +bac0be76-9ea5-4ebe-8f8d-381f6cddb2ed,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-07-51-42,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b7b72a65-1b3c-4508-8be9-714132585c60,ServicePrincipal +132d306d-e5d4-4943-8dcb-d1a00b349b99,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-00-32,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d5fe309a-6762-44a8-abd9-636608ca30d1,ServicePrincipal +4c83aefa-8b24-4214-b0a7-95e129f1f488,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-00-57,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a158e603-8da4-46f1-84a1-cc02f28fd3f7,ServicePrincipal +6bc82244-1988-4617-a46a-7f5c6afa5757,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-11-15,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,9d61f110-fffc-4bbd-a88c-25c5424bd55e,ServicePrincipal +45ad6c66-6014-4d91-b4c9-bafd500be963,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-12-49,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,db39397c-88db-4181-afda-8418e5c46258,ServicePrincipal +ac62b9cb-4478-4930-9306-eb4261c84b25,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-18-30,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ca9f53b4-b176-4b28-b1dd-e514cca013d3,ServicePrincipal +32920eac-017a-4170-993a-1f570a49363d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-21-52,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,67112aa1-50dc-4907-9def-5c0edaa8ac58,ServicePrincipal +8ba86222-4cbc-40af-b85e-a9e7c3aebda9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-28-35,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7da3ea2d-2df8-4bdd-8d4b-07c6be8b5d8e,ServicePrincipal +374e43bf-4799-4532-ad74-734231873840,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-40-12,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f257e550-c515-4df6-ae62-1e3682d7749a,ServicePrincipal +f6dddab8-3394-439c-b475-4dfa6b98fa73,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-43-26,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e3812045-d07a-4156-8777-4cd23e80baf9,ServicePrincipal +8f879080-4ea3-4f75-af72-ea8a6e5b2565,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-45-33,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,834dafdd-eb6f-4c9b-814a-051475d02899,ServicePrincipal +793e3bfc-6781-475f-879e-5db8af34f133,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-10-30-08-51-25,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7f4a12f9-455c-47ce-91b5-29bf4e6c3dec,ServicePrincipal +711758df-ae60-4ff5-a86d-2f923e03833f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-01-05-27-38,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,963d0455-0c36-459f-9d45-9546a8a96513,ServicePrincipal +12bac5f7-cd4f-4e50-ad9b-3bcfb8ce67cc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-01-05-54-35,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c03cd3cb-e5ed-4055-b803-bb2058e71904,ServicePrincipal +b00d28ab-ac56-4e2e-b0fd-44a91f0a69f9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-01-06-01-38,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ce2934f8-77db-4cad-b6da-a22c0596cb56,ServicePrincipal +5c70579a-f651-4567-963e-4ea5e121603d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-01-07-19-21,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ea4dbf80-2184-4ee6-9393-7275288510f6,ServicePrincipal +cf30773d-6db8-4b73-b047-161c109166ab,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-01-08-22-49,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,56c54d63-8c7c-4933-ae6a-2a42e5cc008e,ServicePrincipal +bb8bbbe3-6da7-418a-a6c7-fd2520bf4991,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-01-08-31-13,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d9afcf0b-cb7f-4524-8334-6902c29e8ed8,ServicePrincipal +265654aa-db0c-41cc-b7d1-1505e1a538a0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-13-02-50-51,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8729fc50-b444-47ca-a872-bab5edd1f33b,ServicePrincipal +5e168b5a-dc08-4b6b-8aac-d6083ae35939,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-11-22-07-01-21,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8e771ae3-03a8-45e5-b362-b39b8d5ab7e0,ServicePrincipal +fef6c67b-0e39-46ae-9557-951b44ecadbc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-12-04-07-04-42,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5f90ab3a-9ed3-49cf-8baa-a9e03d10795d,ServicePrincipal +27ac8e97-7726-41aa-92d9-7444c804fd2d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-12-05-03-22-10,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,9c206958-e2b3-4483-a92c-1fc003380d9d,ServicePrincipal +1c8ca83f-4796-43af-a47f-0c9658a6b7da,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-12-17-07-40-00,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7a3faadd-1c53-48fb-a26e-1bd340ea58ef,ServicePrincipal +91d08fd3-8813-454a-b898-bddb06273d51,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2019-12-30-06-15-44,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8aa0284d-37ba-45b4-9195-6281d7a09248,ServicePrincipal +554668a3-6b69-4987-ba42-95e4ee3c7d5e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-01-10-08-55-56,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c27cdb90-9cdb-4e9b-9d37-8a6e779c6ac3,ServicePrincipal +4ccf4679-c5a5-451a-9134-984edece6fd6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-02-12-07-15-26,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4e3d4aa6-9e96-45f5-8d56-9134abb925bc,ServicePrincipal +549d4767-5a94-4c78-8475-8891112921c1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-02-21-21-05-04,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,9ea8ee47-e115-4c0b-a4d7-69f4f197d2b1,ServicePrincipal +631c3f9c-c690-41d2-86d5-6b2c0d70cf69,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-06-07-28-39,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,56b23411-d9c5-4a0e-959b-649db50f8b0c,ServicePrincipal +2e2d0b72-ba06-401f-b8f2-2f243ef9fcf6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-20-05-53-49,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,9b699896-3a0d-4b4d-aee5-77cf8fe7fe76,ServicePrincipal +10630482-e321-4195-8bbb-09cb1218d1ab,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-26-08-42-32,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,67977863-6fe3-46c3-97d3-3bbe54692ef7,ServicePrincipal +5be4607e-b097-46df-b4b9-1ab6327c8b5e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-26-11-45-21,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5796176a-300e-4660-808c-c16225168dd4,ServicePrincipal +a618e296-7074-401e-a488-7653768b1fc4,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-03-27-03-56-33,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e471cfa3-d1ba-4244-a8a7-a4a098671292,ServicePrincipal +2e77cc38-f2ff-4ba6-9b22-0756f6f8a908,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-04-07-48-23,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,790433fb-7de8-4fc7-b763-34d4a13ebf3b,ServicePrincipal +3b83a2a0-f6d4-433d-820b-244ccdd2f0f5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-10-07-21-12,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a6902f75-78c0-4266-abbe-b65c708d1012,ServicePrincipal +2e247e05-0a07-4405-b05e-6091a8022596,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-12-05-15-35,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5f6dc7e9-2d13-4d1b-9391-410e3f3a961d,ServicePrincipal +4d372d45-5d59-4036-a2bc-a7a3193ced85,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-23-05-41-42,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e18b3ae3-2ecb-4206-a997-71ada3399b58,ServicePrincipal +8e9ed199-27db-48c6-9714-7c26cc769697,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-23-05-58-59,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,332e9afb-835b-49c6-b047-1d8885a6200e,ServicePrincipal +ebd6c1bb-9c16-4efd-a30b-3147f487ca26,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-23-06-09-16,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ae7b9163-7e33-47eb-9141-51e4d2c5884c,ServicePrincipal +69bf3229-7b81-48eb-a684-bc9b02249f53,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-23-06-22-29,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b824d28b-9c34-4f1c-8735-97de5cbe9bd5,ServicePrincipal +145518d7-9499-48fc-9aec-14bdab0d5e98,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-23-08-48-04,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3798bf30-84e3-4ee0-b609-c266f33b1d80,ServicePrincipal +86d7fa37-c1e8-494d-bfd2-e7a3e3a309f8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-28-03-16-16,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e388367e-4e2b-4bab-86ca-197f6256adaf,ServicePrincipal +205b19f4-d103-44d1-9133-286018ada983,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-28-07-45-55,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,859f1904-f3a9-4689-ab0f-170ffa49e25b,ServicePrincipal +b7ad13e6-9787-46cc-81e5-529fa51337f9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-29-09-26-46,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8b86ebf2-e13c-40a8-b912-48981887bd36,ServicePrincipal +b09bb492-8049-43b6-90d7-7375ef0c3df2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-06-30-09-43-52,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,873aeb86-337e-4615-81dc-5090a8623e2e,ServicePrincipal +b88f9ba4-c21d-410b-a496-12b2dd10666f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-14-01-48-21,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,37f842e9-57a2-4bae-b35d-0eb4881528b8,ServicePrincipal +34c473c4-6850-4ec6-ac35-83192939a36a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-15-08-10-19,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,83075c80-bd6e-4af8-9941-0b36105bbe2f,ServicePrincipal +8a5964e5-320e-493e-85a9-489b0be1e3f6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-23-03-04-41,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8c5cbaa3-ae6c-43d1-98d2-6778d870f2b5,ServicePrincipal +c77e7b9f-e3b5-4658-a7b5-febf49990422,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-23-08-26-24,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,601b5259-f922-4ab2-b0c5-8da8d0899718,ServicePrincipal +739b02bf-8d65-412f-b94a-cc1d6967352b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-24-03-52-34,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,bf325a3a-d1a1-430c-b1bc-da524a1a4cda,ServicePrincipal +aeb483f9-b4a4-4659-a5e0-e7e5d4763449,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-28-02-57-02,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4d697ec5-9a33-44cf-8cae-6a1e27bdaf2b,ServicePrincipal +b9f6779e-b747-4be8-ae77-6c322f5b2f11,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-07-29-07-10-40,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c0c81df6-7e80-427a-8fd4-bb3512fddbff,ServicePrincipal +cdf4b651-fb48-440c-a8c5-657229bb612c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-03-04-00-39,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,92c92d4b-ea8c-421c-af6c-f5692444093a,ServicePrincipal +162a50d9-a02d-46b3-8313-2eea5bd931ee,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-04-07-55-58,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7fb43098-2006-49d4-af4e-ef1725b56b14,ServicePrincipal +2d4db6e8-f382-4c91-9c90-ed84e34dcebd,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-10-13-31-19,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,84e2345b-c331-42d3-8dae-f625123781a2,ServicePrincipal +8661e26c-1128-4b79-8718-631bf1f2ce64,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-11-07-34-17,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7084eca7-9d4b-4a4f-8831-e2556b24ec74,ServicePrincipal +7f41fd6a-e570-4934-b520-a640f12b73e9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-13-03-10-52,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8bfe8f43-d6b1-4a53-b885-6f19db58c261,ServicePrincipal +018f2bb9-7589-41c3-9178-d3dda4a56464,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-17-08-35-08,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d2ff9d78-a3ff-43cf-9d01-28f3d8380535,ServicePrincipal +f0e88f83-29cb-4a29-9b2c-1fc6f4ce6d2c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-21-03-00-36,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,86916c27-4322-4eac-922d-3f841034397f,ServicePrincipal +94d4c02d-02ee-4845-8c05-98878102d682,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-24-09-10-50,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7aab2c45-1478-453b-8cf0-784ce24897e4,ServicePrincipal +28999bb6-c711-43e9-8db4-29f28508e3e7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-25-01-48-46,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4e4cadd6-adf9-47ad-855b-462e536ff151,ServicePrincipal +7efff2be-1d5a-403b-9eb8-11ea4b49620f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-08-27-02-58-18,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4f3c2d17-544a-47eb-9e85-781d79d8a857,ServicePrincipal +e822831d-ee83-4ece-9501-ba00189e1021,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-cli-2020-09-27-10-20-43,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,33989d95-a9f7-427d-8713-16c2e305fbd7,ServicePrincipal +231db7a7-2310-4962-9a23-a967b6299ee3,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,azure-powershell-08-11-2020-02-20-47,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e2be1721-f65f-4b91-9414-0678ac4a1f79,ServicePrincipal +f126270e-a958-477e-b5b3-a0a2691d89b0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureJavaTestLibrary,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,775a4bb8-7de6-46be-bfdf-32a0fadfd5d0,ServicePrincipal +3877c79c-0d35-4de5-b20a-355e72587724,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20170602-110014,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,90e34181-a0fd-41e9-a088-789bb8c452b9,ServicePrincipal +72f8cec2-2a2f-4de2-9afb-dbd996beb835,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20170605-111509,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,feab9a49-11ca-49a3-84dd-efd4ffa71a22,ServicePrincipal +38678b10-5b71-467e-b238-d148222a45ae,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20170608224712,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,81dada77-20f1-4558-9066-5e8a03b9704e,ServicePrincipal +2930a29a-c694-4543-a48c-3ec7588800ff,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20170713154657,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4b97b6c1-635a-46b3-b88c-370a47f552a0,ServicePrincipal +4931b732-0f4f-4314-bd3e-3248d0368834,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20170809-120205,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d921e368-1709-4e69-8909-411cde01cba9,ServicePrincipal +dc2501c7-867c-4905-b502-2048452c6559,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20170919163147,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d2bff70f-7416-4e72-bb67-6367dde19508,ServicePrincipal +08c8cd03-c3fd-4bdb-ab72-775515d659b7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20171026-231218,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,11543f89-cfb8-47a6-bc17-a32ec5fa1a9c,ServicePrincipal +869cfe9b-1c4b-415f-8e83-0f5790c54b14,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20171102155627,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a05b80e7-764b-4ca9-bf16-10dfbdf84166,ServicePrincipal +773f443c-fd18-4091-b2de-7932bd6e54b2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20171221-144946,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,47ddcd73-276b-4ce8-ac60-9b4d2da0eedd,ServicePrincipal +25d07fbd-4d55-434f-b976-2fba6dee20ac,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20171221-145652,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3a8da427-919c-4bf6-8841-2967f9411878,ServicePrincipal +152c9d17-8456-4e3f-9c51-57a9a2e4cd93,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20180628105126,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,eb6c8623-c66b-42dc-8b57-e7b58d494e7d,ServicePrincipal +4a106cc8-17bf-4602-a0dc-bb2f78a8d9cd,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20180822144252,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5947038e-577a-46bc-8668-c2348121fc91,ServicePrincipal +1e242435-64e2-45f9-809f-1f27c2074cb5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190125-150045,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,dc173ffe-450d-496f-97c4-00c256b8973b,ServicePrincipal +ed4e8e5f-881c-4c52-9180-a32b9ba81f6f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190227124213,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5d19d7c2-764d-4594-9b23-e0f016b8ced7,ServicePrincipal +cb800f40-2a51-4673-9aa1-ae4448fc9ce7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190227163731,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f4717c6d-36c2-4651-adce-06d27af47c57,ServicePrincipal +79d07c4f-acdc-467a-836a-71aa5eb393b0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190301-103648,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6f0c68b2-ca1c-435b-ae78-39ad41ec95ec,ServicePrincipal +cf11f056-25d7-416a-846a-42551efd00a5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190301115302,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e1419d83-8411-4c6d-8858-eef9544eb6e1,ServicePrincipal +bdf1ef06-516e-46ef-90c4-e64097d52056,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190301144643,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f6228102-62c5-416d-9b44-63b524cf6c46,ServicePrincipal +1bf38b5d-3993-4459-b619-22154155bd18,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190304-183916,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3a78bfab-04e7-416f-b9dc-8b629d15e3f4,ServicePrincipal +b1648038-673a-4655-bbe7-a8d457bb1f9e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190304104810,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8487b9f8-d750-4fa3-9097-b591bb0eb758,ServicePrincipal +f67bace9-2461-4d70-961f-6a01671dad14,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190307-181002,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c2c826a4-4fa2-4b74-a9f3-5555ee84e882,ServicePrincipal +ffa80902-050c-4528-88f5-de753e9cf8ff,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190307-182128,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,94ac8fd8-5a4b-4fa1-a759-848da6e3de04,ServicePrincipal +d11ee6a4-85ef-4070-929a-254772b1ce59,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190308-105408,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a557ae0f-ed80-4881-ac20-441550ab213a,ServicePrincipal +1edea2d4-7299-4f23-9c93-a24c8711d7f4,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190325-025838,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,32c24364-0254-4a55-b4d0-33d27c2680ab,ServicePrincipal +d2d66998-d279-4525-a3de-ba44f31c0d1a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190325-193922,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3f7b9c62-02cb-42f9-9a40-de25414ea7c0,ServicePrincipal +fd5110b9-4f35-4f86-bbea-e3bf9a89faa0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190325-201003,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f00551a5-d25a-45fb-a1a3-5943b9d52314,ServicePrincipal +e21f9a1c-25c1-4e4c-bd11-05af41301414,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190325-201623,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7297d4aa-844b-4a52-ade6-6d41a43fc32e,ServicePrincipal +e6dc05da-b685-413e-9230-56633613e42c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190328-193251,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,01b36e38-7140-4753-bd9c-c34460f3a17b,ServicePrincipal +aed102ca-30fd-4861-8186-d5e15285967c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190408145213,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,efd40628-4e72-45ee-a483-c0dba8776536,ServicePrincipal +355d633b-ef24-4e58-b504-01c93157e6d0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190408170348,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ed3be0f9-cc63-41c3-9d20-123013bb1167,ServicePrincipal +7ff6112e-b767-4237-bce3-9f243bbf04e1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190409-113228,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,36e46120-dad2-4de1-a341-487157d50a6f,ServicePrincipal +25261695-0182-4c94-82e2-22265b558f69,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190409105746,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,64123dcc-6dd6-4430-b788-7c5a4da6aa45,ServicePrincipal +8b0d2576-7084-4600-8fcb-36f1bd1076b7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190409110608,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,645e1a89-fb14-4181-acef-c830282d11ec,ServicePrincipal +afab5704-e9ee-4c94-b967-2cd2862d100b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190410101635,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8db6e713-a838-431b-8147-15c304b7cb19,ServicePrincipal +634c5d02-f660-4b5e-92ae-745e9c0773ec,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190417160423,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b2541660-5d24-4272-9119-32767f1805c1,ServicePrincipal +e9ae5257-1e78-40cd-a5d9-fa9faaf69303,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190423-134537,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,fbce6ede-221b-43e8-bedf-14b9bb240844,ServicePrincipal +09fea90d-7639-42cf-83ff-c258dcc2449d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190423-141344,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7d68455e-7a65-4c0e-a190-ed9e15424417,ServicePrincipal +6ba49c92-3647-4695-a8f9-85f5e5437b7c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190423-142116,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b508ec54-406e-4481-9a97-8e4eaeb16356,ServicePrincipal +0e1396d6-dc10-4712-a057-10a5b981a24a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190424-192724,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,64eb936d-67fb-44da-81fb-81f9c7811063,ServicePrincipal +7fe84c3a-7e5e-46a5-8f20-f697c606c753,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190424163830,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e6d38114-5675-4072-9f84-5ceda3f20dc8,ServicePrincipal +9a8a1314-f624-43c1-ac35-6e8d9f1def97,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190509-192840,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e9b12272-1103-486b-81e5-ffb3a88c5a2b,ServicePrincipal +beb8c1ca-1986-4df5-89ff-0f9f08dc6e13,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190514-102742,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,90e9206d-daa8-4a81-8b9f-680790b0b4b8,ServicePrincipal +0800e5ac-c225-490b-ad98-714fdb3fc52c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190617-221103,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c3e602d7-baea-4d4d-8b53-56be3d7f9f18,ServicePrincipal +8575087d-12ec-4ca9-8299-ddfa15e3a3ac,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190618-023758,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d0645b07-c5ff-4a57-81ad-7a03e608cdb1,ServicePrincipal +e03f639b-0ee4-4a7e-bd41-c6e7583a5e09,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190702-010320,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5a688722-072a-43cc-9d75-e9577d755f86,ServicePrincipal +51be7c89-0133-432e-a368-db02f489506f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190704070439,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,93a5b683-706f-4aaf-aab1-1a975eaf1c70,ServicePrincipal +045f74ac-ef9a-449c-bbfb-af544f6ba668,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190705-021509,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,bbd0a6a0-9aa5-4f31-bd17-cf4c7cd0960c,ServicePrincipal +b4996ff3-0d61-446a-be55-4ba8a3d006fe,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190705-111105,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,07f0ac52-d222-424d-9c33-3d3421abc7f4,ServicePrincipal +f4f85830-d50e-43a0-b7da-924c8b1c6595,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190709-135718,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,413ef9c1-afd4-4bb2-a83c-e599bf41ff18,ServicePrincipal +f4bb4cc1-ac9a-45e7-b70c-49e9ebe6f72e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190712064600,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6bf6ac09-08a9-4f21-9df9-685fc32b0ec4,ServicePrincipal +13dd2896-2252-4805-98f0-6fbf45cfe2c7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190715-021207,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5d711565-37ca-4ef3-be99-e8dab4edb3c8,ServicePrincipal +ef621630-ed2b-42b8-a2cd-37420117e6f2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190715-104508,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,9c143ae6-e62f-44d8-887b-1ffcf22cf6fe,ServicePrincipal +0e4d4966-bc8c-4a71-9584-442d42909a67,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190715-151555,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a644d85b-1d80-400c-89ef-f5e2f5ed0ce9,ServicePrincipal +2380d686-ea42-47a9-a411-33b20a2cc292,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190731-193002,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,afd5df92-c904-4c50-b21c-cb81a8d1d9eb,ServicePrincipal +4c97389b-95e3-4f27-b67f-e07bd43727ec,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190731162446,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d64780b6-902b-49c0-887b-535e4d42558d,ServicePrincipal +be223e7e-4341-4d41-82c7-9b6b0222ffeb,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190829-004011,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,447392be-2e1e-43a4-8a73-14f70902bd7b,ServicePrincipal +a7ded1b0-65f4-4360-a2e1-6b226fd989f7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190829-073322,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,60c70d11-ee5a-4ac6-a00b-ed44ad398c7a,ServicePrincipal +d784627b-737e-4e64-ae80-cd729ddba400,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190829-172920,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d0b50818-53d8-4af0-83ee-e4bd9a43e65b,ServicePrincipal +95930b72-a656-493e-b7bb-5c6dbd177995,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190829-180108,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,fb3518b1-51fb-488e-91f5-f207db377e36,ServicePrincipal +3848bc31-426b-42bf-adb8-17b1281dca3d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190830-043100,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,67d2c1e0-c608-4105-aefa-25ac6fe33cbc,ServicePrincipal +6d51d6cb-fce1-4962-a82c-17b859b3f2fc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190830-054427,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d920421b-a0cd-417c-8050-f074d1178edb,ServicePrincipal +9b3456ce-46a3-4e3d-819c-dd34a59d7c9c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190830-055919,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4e257fcc-a701-4202-a342-532112b7a36a,ServicePrincipal +2424e69c-36c5-4385-9f96-69575c5d0af6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190830-134627,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f1b81770-91d0-43f3-9367-e759fa69e921,ServicePrincipal +a208d21f-31a2-42bf-9fb4-84548da3b46c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190911-141931,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,89f04073-b213-442f-b5ee-b57dc299d8f9,ServicePrincipal +d10014cc-41ca-4f4b-8fa5-50b4a78b8e16,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190915-201855,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d315452e-6f34-4cbf-8531-29f3a1f5fa30,ServicePrincipal +53efc267-af23-41f8-b8ff-06c19f01cd1e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190915-221406,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,9fb1b4a9-c78a-4d79-b1e7-7f2b898484f9,ServicePrincipal +bbfd956e-6012-4e50-84e5-6f263f6ee001,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20190916-051538,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,87cd15af-4c36-4098-8a34-9e9d53f47878,ServicePrincipal +bfdb3885-6f6c-46cf-8fd3-d6aa0bdd546e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191009-175007,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,60551b22-76cd-4c04-b3d0-46d9d83f179c,ServicePrincipal +79139a4b-54bc-4ce6-ab11-8b9ecdc5a7ca,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191009-175627,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,94e34b45-626b-4c0e-96a0-74af05b36288,ServicePrincipal +57e1e3fa-087c-4085-90ad-a32d20c01302,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191009-191659,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,35ad05cf-9317-4b61-a914-49f050577e60,ServicePrincipal +20c208e3-0749-4c36-bf22-a4849e68473f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191010-221830,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,085ad79a-be64-4a91-9ca7-2c19c101f58f,ServicePrincipal +092b6393-4e0f-4d90-af27-04a85fc830d8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191017-141211,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,cab84c62-d2af-4091-8746-f29e0cf2b02d,ServicePrincipal +d7c293a1-bcb1-4853-962f-324c39cc7b41,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191017170535,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,61242dbd-8c2a-4e9c-875f-765e31b318e0,ServicePrincipal +19887100-4d01-4f1c-8460-8141ade4a597,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191017173849,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ccb23a5e-709c-4d05-a47d-e7da33bf3cb3,ServicePrincipal +0bbba7df-fff7-412b-8635-c444799986fb,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191104022355,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8b69d334-26fb-4a7c-b1ee-7274b86ab601,ServicePrincipal +fc420f3f-c031-4bd2-8b50-2f2cc4194e21,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191105-132904,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5fd7d3f9-29cf-48fa-bca6-f48989ffcbd1,ServicePrincipal +67383173-62b1-43d6-8a77-89021fca6073,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191118-072019,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7afd4c34-f0bc-41e9-8ae7-51d281f66e4c,ServicePrincipal +1ec01dcb-ff62-4489-9590-e0d50ae8d3e0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191125-073643,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,36223fdb-2eb8-48a5-ab0c-02d2ae145e48,ServicePrincipal +7d03be9e-3598-4d52-863e-e1c609929053,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191223-024752,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,fb0331ca-0ff7-460f-95d3-b2fdd457577a,ServicePrincipal +9987cf46-c1cb-47ae-8ca9-8428b9cee060,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20191223140952,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,770b2181-f0ee-439c-9936-b4f142af9c5a,ServicePrincipal +191fc8ee-d1c0-458d-9ede-caa4b38c4b4a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200119-030552,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e167b31e-6f79-45c0-9e8c-9b57d2935e79,ServicePrincipal +57ded048-7a32-4846-8cfc-5a39cbde00b9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200120-020556,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b5d57cb5-a3cd-4d78-b77c-165dcd6e8639,ServicePrincipal +d410fb2a-f744-484f-afc2-99709d34a5be,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200213-183643,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6022f86f-f0b6-45b5-b236-3037aa465c79,ServicePrincipal +7e664f4d-4117-4501-8d98-3aedeca08d36,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200302-143152,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a3ec9221-2eed-4e46-9a1c-8b199830c415,ServicePrincipal +ef8aa4b4-0b16-42c5-9d49-f689b3314846,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200316-132224,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,dd87e878-8a28-491a-9ec8-65410e90f0fe,ServicePrincipal +ed9e50ae-e9ac-4b5c-821b-ec6beb004b57,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200319-095844,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,58207b21-7276-4b0c-b09c-9db232b5ce22,ServicePrincipal +a0790030-d31c-4326-ba8a-29e3451f58bc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200324-155737,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,62df0edc-00b0-4572-b8f6-8b7ca1f34bcd,ServicePrincipal +5ab457a1-01d8-4c93-8151-bcbc6cb18431,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200402-071922,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c23deb88-c3b2-4b6e-af06-6064e7f05aa4,ServicePrincipal +1ca65d06-09eb-46c6-a0a2-1ad262c9500c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200402-093250,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,98952d3c-b8e9-4f92-967a-9894185f47b7,ServicePrincipal +e3e01a84-78c1-4a63-9fdd-a7f3a647ea40,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200407-055635,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,908534f2-0a37-4ace-af83-34894457dda8,ServicePrincipal +5cca55b8-50c8-497c-948b-cfca754a67ab,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200409-142622,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5cf98c3f-4991-46b0-b425-2483e9193301,ServicePrincipal +94d30b9f-21c6-4810-88f0-a3ab31b8e174,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200409-175032,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4ecec8fc-cb8a-43ee-a446-27e65cedd1bd,ServicePrincipal +9f05aae4-090c-4c8e-9a60-64b8e0116ad1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200410-102223,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b28068de-db3c-4bdd-896c-1196e3167c98,ServicePrincipal +a6b6883b-cbc3-49a2-9751-fa5daae7901a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200415-072320,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6945faf9-da26-4ded-a24e-904b1562d9a4,ServicePrincipal +b9fa3e00-7fc9-4fce-addb-ec450c54aa38,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200415-072531,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6092e119-d316-45a3-8b72-696d3916f3ca,ServicePrincipal +db6bd94f-bd7f-4429-a90a-635989899f12,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200415-085110,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8632c066-f4ec-4ac4-888e-4d07d4dd9f36,ServicePrincipal +7c5914bc-16eb-4e41-8982-7eb027e7e648,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200415-090151,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e9ac3811-8a9c-4e25-ba0c-3fce53e813e5,ServicePrincipal +676adf17-c455-404f-9737-16bcb26630b0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200415-110045,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,df25b68f-1b2e-4162-aa20-1580c9007cbf,ServicePrincipal +0f79e8de-7b51-4c58-94cd-bdf4a277e82d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200428153433,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,375e8446-a506-4dfe-ae6a-b747e7925d37,ServicePrincipal +16ce5b88-9f8e-4266-b2c0-f8cc91c9180f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200520130756,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e9565351-8172-442d-865b-e259ad084ac5,ServicePrincipal +f0464856-0a89-4447-a0e9-309272ff5e2e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200527-085051,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5654cbcf-47e0-4c31-959b-bd921ea205ce,ServicePrincipal +89510c8d-ef2e-4f03-b167-ff16de35860c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200528-022657,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5ee4491b-da96-4f1f-8bda-6719aae8f1dc,ServicePrincipal +3a018f48-956a-426a-aa1d-e137b758c5b0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200615-051729,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e89f2800-4e74-4f38-a119-16b0fa36baf2,ServicePrincipal +a64e42f2-8c3d-495e-b4a9-541a95b4c3cb,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200615-130604,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4d153f24-1bd5-40bf-be98-bf9da008200d,ServicePrincipal +223e7309-2049-4a0b-9660-46778be2fbb0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200619-071710,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,642a5a5d-205a-41ba-b20d-943a9bada872,ServicePrincipal +3d81bd0d-551e-453b-82b6-bd638c7dcaa0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200619065239,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f18cf551-3096-47c3-a1cb-1fbbaad52202,ServicePrincipal +9775865b-410b-4c0c-b69e-80bfc706505e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200623-063722,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,fa4d85b8-46eb-4988-a834-cc456ad59791,ServicePrincipal +f90b7c3d-d5b4-424a-aa78-ce7ed1d4ed11,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200628-131809,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e32926b6-2bf2-4318-a664-e1923bbf85de,ServicePrincipal +66da189b-7fb4-486d-a221-0117f09eb427,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200628-132034,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c8af56af-4a6f-4ba0-8360-d4aba3ade9dd,ServicePrincipal +f63b0646-75ec-4083-970e-ceeab17d5cf6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200701-105630,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,9cd069eb-c7d3-4a5c-9040-37d327015d85,ServicePrincipal +fd1935bb-a588-4e39-831f-1c2d57816bd1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200723-132454,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,095894da-cbb9-4c69-a8a6-b2ebdc7cba51,ServicePrincipal +8cc73a40-e701-4164-96dd-f218fb26885e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200730-164533,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3cb7576f-00f1-4767-a6b2-78a0db655e4d,ServicePrincipal +83e26167-fb7b-405e-a823-3dbd0effd314,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20200731-144207,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,bef82d69-a9d5-4cbf-8212-0a9d7a8628ef,ServicePrincipal +80634cba-b581-491a-8e69-82fe838d33ca,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,AzureTools4j-20201027-110747,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e4b4205c-afbb-49ed-bea1-31d31a5ae13b,ServicePrincipal +1dc65637-9986-4dd8-b563-41c0d69dad28,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,cln2496a0e3-293b-4d26-85f0-f93868634dc2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/resourcegroups/cleanupservice/providers/Microsoft.Web/sites/cln2496a0e3-293b-4d26-85f0-f93868634dc2,经典虚拟机参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb,f62d0985-2cd5-4bbb-835b-379199bd5fc4,ServicePrincipal +ad9e2cd7-0ff7-4931-9b17-656c8f17934b,/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47,CSEOReader,/subscriptions/8542576c-7822-4163-a9c9-c8de2c9ca9d9/resourcegroups/CSEOReader/providers/Microsoft.ManagedIdentity/userAssignedIdentities/CSEOReader,读者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7,ce2366a6-64d7-441b-939c-c9d23f91cccd,ServicePrincipal +173482df-8115-4060-bce8-b759010eff9c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Balan Subramanian,balans@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b9b003af-e001-4d84-aaf7-d387e045619c,User +d72277f1-f766-49fa-8011-ed28f281789d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Bowen Wan,bowan@microsoft.com,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,2bc2bfd7-ac74-4bde-90bc-39c9b1c2498c,User +2ef2778d-846a-4622-9a48-86ec4c65c256,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Bowen Wan,bowan@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2bc2bfd7-ac74-4bde-90bc-39c9b1c2498c,User +039f45a1-23a1-4288-8a3b-944f89f45983,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Brick George,brgeorge@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,26fc2c0c-2595-49ad-9fda-393d896c5c44,User +fbbe5604-54d9-4fcd-b9d1-21962b3a0198,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Caihua Rui,caihuarui@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,dbca3b98-f431-43ac-a05b-2a09cc89c321,User +12e2376f-164e-406d-876c-177373f700e6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,CSServicePrincipalName,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0dfea37f-0780-46e9-b7b1-759329a2bbc9,ServicePrincipal +188a6aa9-25b7-4aae-90bf-09a56d1e250a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Dan Hadari,danha@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e65505dd-93d4-4eaa-a379-a8d3935bf029,User +2ee90abf-afa2-4120-b2b5-71a29fa74b03,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Demo_App,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d5280972-40bc-424a-bfc4-6b03ec394984,ServicePrincipal +5aea89e5-e5b8-4c32-802d-31846234a30b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Di Lin,dilin@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d420b367-96bf-48a3-a6ec-4229cacf79ae,User +e4492f4d-17e2-4c6d-98c9-3ef6462e586e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Edward Burns,edburns@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0ffc63ed-7e2b-447b-965b-287a4176c3e6,User +2c88ca36-e225-4151-b3b7-5dffc8cdf5e4,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ejbcontososp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b351750b-782f-4a13-ae66-aad1727e4790,ServicePrincipal +0994b6e7-d189-4691-afa5-b3557015329c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,harrysp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,bccffc1c-79f5-45bb-bc4a-5b21b05c299a,ServicePrincipal +547bbf82-d1f5-4352-8b05-cc57195d71e7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,James Truitt (ATLANTA),jatruit@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c2364fb6-f5b3-4520-b4df-2227e7dbac00,User +4200601d-8878-4745-aaec-59c9c3672fa7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,javaee-jiangma,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a6eca5df-f94d-451d-8eca-550fd138e80e,ServicePrincipal +d7809d64-081f-4378-8d91-ba587357bfef,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Julien Dubois,judubois@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b3d48b49-a3d3-4f13-ae5b-21e3d39a4265,User +b43f27b2-0184-4ecf-8692-d48f153bcf90,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Kenan Sun,kesu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c2a345b0-c026-4d63-9b88-91000536f4f0,User +b70512dc-d12d-42c9-a7f8-bb47bb6728bd,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Marisa Parker,marisapa@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a31c58c9-aa86-442e-858d-255e82b46cd3,User +e8f515fd-00c0-4935-809c-99f59ed6f757,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Cici Cai (CSI Interfusion Inc),v-cicai@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b1e6ab5b-1e80-40c5-86bf-1b1e34e3adc5,User +b02d9f8f-8278-479b-9bd5-3698413e9f76,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ejb070101k,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d25dac8a-c213-45ef-af3a-921cd4faac78,ServicePrincipal +785ad5aa-356d-43ca-809a-dc47f388014d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ejb071001appReg,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,04350800-1dca-4d76-a952-d5c025e56783,ServicePrincipal +e960adcd-a7cf-45bf-a776-09f81d6b644a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Eric Wang (DEVDIV),ericwan@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,210ddc25-63ec-46ba-8489-961adfacab29,User +6c9e6830-bbe5-4c57-b45b-c487acc39060,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ericzaSP,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,48e55644-5360-4032-b283-79f128f88467,ServicePrincipal +dcd46cb1-a28e-4897-92f4-4a8fef541b1f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Fan Qiu,fanqiu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,752dc7a0-1f72-40b1-ad13-1de07a0b1a91,User +f1437beb-a11b-42bd-aa0f-91bed0d95fe6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Fenqin Zhou,fenzho@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4af183a6-109f-4103-8776-d1b52edcdd93,User +dd46d685-7c5f-4a82-a2d1-2aeb0cebf9d7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,fenqin_sp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c6c9601e-0c11-474f-bef9-29dcc90af719,ServicePrincipal +533fab2a-2436-43f4-8580-99d065121bdd,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,flankerTestSP,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,870c0c7a-0a71-4674-b415-33905bb483bd,ServicePrincipal +23ee2c04-b291-47c4-81c2-863ba9017bc9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Frank Liu,haital@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,fa7f5985-5d00-41eb-88ad-f726f6fbe4b8,User +3e883d24-b106-42ff-ad13-d7bf271b964d,/,Geneva Analytics Reader,,读者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7,5c617d2b-99f8-4c90-98fe-dfe040fa33c1,ServicePrincipal +fc190fd9-36ba-4c79-bfaa-b1a5f4dc3b17,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,GenevaWarmPathMultiTenantRM,,GenevaWarmPathResourceContributor,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc,3c2f3efc-0197-4fd5-b566-0e3f07a17f0c,ServicePrincipal +fbacb052-a3c9-4901-9f1f-861a03bd289e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Guoqing Geng,gugeng@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1f49210f-61f7-4c28-8eb3-f5eb1b6e7e93,User +d5c7ed95-7ad4-4df1-8578-6a4305f24014,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,haicao,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,06bb053e-73fd-4756-a336-c142fc870f16,ServicePrincipal +703982b7-2d19-4665-886a-573c04877548,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,haicaotest1,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7913ef7e-41e2-4dad-a36c-91d9699f0db3,ServicePrincipal +093e87d1-b657-4f46-ac71-034557ea8bd1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Haixia Cheng,haiche@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,74527a7a-f284-4a3a-9d96-0b76732e1d2c,User +4988fdcb-b9f2-40ed-8624-f5883f858357,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Hanxiao Liu,hanli@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,cbe18449-d07d-4249-a1bd-bcaaef48e575,User +46235544-a6cf-443a-aeaf-d894d0dc749b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Hananiel Sarella,hsarella@vmware.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1ced3f14-62ce-48e6-ab38-02268bdf9362,User +78c787d9-44d5-4056-9120-94b5b3d01267,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Irina Smoke,irsmoke@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,07630c62-fbf4-4174-adc7-9fa351b4058a,User +e9777ead-21e2-4d7b-8127-4ec1368f16c0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,jenkins-app3,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,56071d61-f12f-4299-b697-62fe629651c3,ServicePrincipal +a7a9a8e2-1ba0-441f-af3e-43ca10a56fa3,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Jialin Dai,jiadai@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,65ad61aa-6d88-44ee-8715-6a277604ab37,User +55e510a0-2a39-4e65-b100-72f87cb2c1c5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Jianguo Ma,jiangma@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,671318c9-574e-4361-a94e-119785a1fc7e,User +7b9c91c4-45b9-4620-a501-e0908627ac54,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Jie Shen,jieshe@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5dc8b685-8bb3-4140-b266-34da5be22de8,User +6f28392f-4527-42b6-a0aa-24c0016138a0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Jun Han,junhan@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,46c1e2e4-472f-4132-bbd1-47556e0da3eb,User +93372679-55dd-4a53-9416-a78222c564f7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Han Gao (CSI Interfusion Inc),v-gaoh@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,08e83672-7acf-43a9-8253-2aa6c598ef76,User +c9b25524-d748-4b46-97fd-b9c3c20f02b8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Jack Lu (CSI Interfusion Inc),v-luja@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a2ba15f6-9a7e-4070-9f17-17cf6739c89f,User +45952712-0fe8-48bf-bb8c-0d2d297ec485,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Fred Sun (PACTERA TECHNOLOGIES INC),v-xisu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,29f40236-93d9-4e0c-a549-ce838129e9b6,User +7d730f02-7a62-4c33-bcc3-5f7fc48ab584,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Hongjuan Zhang (CSI Interfusion Inc),v-zhhong@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,074f0942-358d-4525-b82c-6ed9d7c7e5c0,User +7f9f0323-96b3-4c27-9966-15e824d5bd24,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,JavaDemos-spring-petclinic-microservices-685ba005-af8d-4b04-8f16-a7bf38b2eb5a,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1f23fd6b-279d-4176-856d-6b874fc52ade,ServicePrincipal +ef8f074a-819f-4c43-8621-d916573f4da9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,javaee-galia,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a29d9a37-d839-4dbe-a962-8a7bf1754cce,ServicePrincipal +2a45dea7-8488-4c6a-953f-ae58a20c7b48,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,jeffK8SCluster,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8abe875b-c882-4bc0-814f-cd7ccf172db1,ServicePrincipal +ec38fc30-5a0b-4865-bf7f-dc6ef05542ac,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,jialin-postman-app,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,aa6e0d4b-7121-458f-9679-3f24a1be4753,ServicePrincipal +ece29fd0-6d44-481e-8ad4-dc621b9cbcb5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,jieshe-sp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,25ca9f02-5e6b-4862-a049-1730ea4fd385,ServicePrincipal +ea2c0f35-5131-40e4-ae40-cd520da7c0a6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Juarez Barbosa Junior,jujunio@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e5351226-b74d-4521-9eff-59de6d8c869f,User +ca776b18-318a-45fd-9d6a-8884ed61ef9c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,JunyiASCDevAssist,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d592cd68-dcac-4d69-8460-c7bb1f816359,ServicePrincipal +e43540cb-cb23-47c8-8b9f-572a5c0048a6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,kevinzha-pcf,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c665a425-6f05-4d10-ae8d-faef10064fa8,ServicePrincipal +e163ad3b-ec42-41b1-a8bd-d729987a7deb,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Kumar Allamraju,kuallamr@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e53c0a14-0e46-4ac7-a55e-eddb0e6f4817,User +55622f45-29c2-431a-b737-d90b4f2880fa,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,lily_rbac,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,07f36031-67ab-4d6d-8293-74fd3c2c99b0,ServicePrincipal +d095cda6-4521-499d-a81d-325536bd98fa,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,liuzhou-principal,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,e0593f85-cc00-4561-b429-492e55ecdfcb,ServicePrincipal +3e9f9b80-61a8-47d5-9c3b-2ba0dd9ce00f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,lizhengyangAzure,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,107edc45-a0b8-4556-9f92-b70c6199ea8e,ServicePrincipal +e438dd70-bf39-4c93-8edc-6ea836152383,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,moary-src-principal-aug,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,04e2bf5c-79dc-4ba4-9738-903d8ae35404,ServicePrincipal +f19857fd-9d02-47af-a4a7-94d8a6481f2b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Pan Li,panli@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,067b66a6-3dd1-4163-9c12-a3cbd211e6bb,User +5affd3df-681b-431d-b490-f20a754f150a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Peng Shi,pensh@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2ceefb56-af8b-482e-b371-12b5c344d026,User +459d1ffd-7ed5-414d-ad8c-32912b6d0fae,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Phil Allen (WEB TOOLS),phillipa@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,230ffd72-6ee5-4272-a12e-b04fa184ec1c,User +65b1f3bb-21dc-4c59-9f55-02c8a31beacc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,plispname,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0e89d3bb-581f-421d-bab2-8c4611dd8a52,ServicePrincipal +60e642c1-a9c0-45f3-9b84-a333535380f6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,principal-for-ansible-rbac-tests,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,20d81029-94cd-4923-a766-994415ff73bd,ServicePrincipal +aae238e1-4e2f-43e0-b9ea-4c08075757ad,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Rotem Garfel,rogarfel@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,17553e08-af44-4983-963b-b43ae7911497,User +12e75e83-1f89-4538-87ee-297102304076,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Rome Li,roml@microsoft.com,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,3865f818-e5a1-4f8d-bc64-ebb354b1ce71,User +d29f3d39-684e-46dc-bc7b-0ce0ca0e93e8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Sean Li,seal@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,07dac0e2-5faa-4be6-862f-80768d4b0f7b,User +ae48537b-dec0-4c79-940e-c276eb98fe70,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Shanshan Hu,t-shanhu@microsoft.com,用户访问管理员,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9,30402577-690c-4257-8b7a-660c4976f1ff,User +eee3840a-292b-46d7-8ee9-1b905aa6f204,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Ken Tao,taoxu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,767ef25f-0324-4ebc-8be8-469f311e8444,User +b528815e-a3ab-4025-9d02-22c485aca92d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Ishan Soni (HCL TECHNOLOGIES LTD),v-issoni@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,235a3fe3-859f-4553-93ab-3ec5eaf51f48,User +df8fc863-9b62-471b-baa2-935d590c1639,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Harry Zheng (CSI Interfusion Inc),v-juzhe@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,770cf247-dafb-49fe-adac-7551d1c19312,User +5b73b729-e09a-4f05-a7d7-ad7fd5d16d84,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Lei Pan (CSI Interfusion Inc),v-lepa@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,27ddd57a-5716-4a90-abc3-92ab1d27f3d8,User +f39646e7-ff21-483e-b6d2-fd4fa4f73d70,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Lily Peng (CSI Interfusion Inc),v-lipen@microsoft.com,读者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7,ef01ccac-30cc-455b-bd17-4984b9ffdc3a,User +a1135f12-dc6f-4b7a-865e-49b6ac434da9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Jack Wu (CSI Interfusion Inc),v-wujack@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0e80dbc3-8b7a-4fdf-97ed-af02fe797d18,User +d5577ddc-9cfc-4940-bf9e-15933fe913eb,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,kyliespansible,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f165dcc6-165e-45d4-9e28-ed118d2c2524,ServicePrincipal +c890a71b-4d25-4a82-84ac-a4d4e0f2459c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,l2_key_vault,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f7fd352c-d078-454e-b5b8-d051244204fb,ServicePrincipal +ff26ea2b-14e7-424a-ac11-b0136850a344,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,lilykey,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,23c69fd3-610f-4247-9fac-3fd3c4bb0bff,ServicePrincipal +1685db09-e74e-4646-ba5d-32c18fbef0a1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,lipenkey,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,cc0b576e-6cfa-4475-91cb-c5409d9a14ee,ServicePrincipal +72bda317-ad8d-4c9b-8821-dc7cb60d7ce2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,lipenSecrets,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ac638d7c-4b24-4d01-888e-09b50caee5ce,ServicePrincipal +0910357a-e3ec-485b-8368-10d4fc34bc35,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,liuzhou-principal,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e0593f85-cc00-4561-b429-492e55ecdfcb,ServicePrincipal +72963f54-5c54-41a8-a1ed-300eb3444320,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,lizhengyang,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,9d1eaaf2-c881-4dcd-b59b-d5c9c09a7b62,ServicePrincipal +caa36470-f848-4010-bac7-ef3a5f582a91,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Lizhengyang123,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c4f07603-ed18-4747-8013-378e6508f0d4,ServicePrincipal +03c7b0e1-2dfc-4908-94b6-0b9b177cc982,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Madeleine Middleton,mafletch@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d6ed267e-c655-49ff-8d18-df278e357dcc,User +89776a02-ea20-42da-a863-6897b00b9bd7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Matjaz Perpar,matper@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e178652e-53aa-46f4-81c0-bf0b48ed5bb7,User +346fb14f-86ba-41d7-8e33-5e9b20f15764,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,MavenIntegrationTest,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6a60db0e-539e-4673-a3d0-899b8d238dbf,ServicePrincipal +c92f4d2b-c436-4730-95ff-f31f7bcb5a08,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,menxiao-acr-demo-685ba005-af8d-4b04-8f16-a7bf38b2eb5a,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8e4064f6-9856-43b7-9c2e-14fcc577b501,ServicePrincipal +16ad3faa-da1b-4604-bb45-d5e6eaeafd0a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,menxiao-azure-test,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,38c4c1c9-9352-4268-84fb-51bb9c269a31,ServicePrincipal +f1b01fef-f6eb-4f8f-b7ab-f67d1e7cd752,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,miller-test,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4cf7a368-b94c-4ff5-be4b-70c1ac798103,ServicePrincipal +da865b3c-9bfe-460c-a0c7-d713c5747057,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Patrick Tseng,pattts@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b6ed50aa-044e-48c7-bd48-7b2d626d62f8,User +db0f22fa-1f7d-4cb2-a3dc-622b4c28c409,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,sallycloud1,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8f46bccc-5187-4e4c-a1f5-9d46d2fbc07c,ServicePrincipal +3ae5b796-2fd7-46a7-b874-d12220eef2ff,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Sheng Chen,sheche@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a85a08da-3882-432a-84cf-0e539f5aadcd,User +5443b9ec-7783-49e5-92fc-02342e3922bf,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Shichao Qiu,shiqiu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7e70a93a-a5e5-4b4a-b54c-c006e01e2f63,User +c4533157-2f0b-4ada-8db3-69f3d9664df1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Sivan Guetta,sivang@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7f3d5e50-72eb-480a-b0e9-98d6f89654e2,User +23ec38bd-6ac7-4a7d-9c57-5c67d62b148f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Lily Peng (CSI Interfusion Inc),v-lipen@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ef01ccac-30cc-455b-bd17-4984b9ffdc3a,User +4eef1326-99b1-49e4-8d67-3526113075d0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Moary Chen (CSI Interfusion Inc),v-moaryc@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,acd25b71-a947-4af0-be87-6635fdafd317,User +75da9878-02f6-407d-b9dc-484a1e154955,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,srdevspsmoketest,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,948fdc1e-bc60-4d8f-92c4-adac21f1d9a4,ServicePrincipal +cc48f6dc-d02d-430a-81d2-cddf16d7c074,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Tanya Tang (CSI Interfusion Inc),v-tantan@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,852402a6-fa85-41ac-b2c2-3ee816fb8d6c,User +ca984ace-e1d3-4acd-b8e4-1b4ded7298a2,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Tanus Wu (CSI Interfusion Inc),v-tanwu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8722d4ac-d726-46fa-9d70-cb698f1c55a0,User +7c9793e5-844a-40fc-952f-1dd9120a6486,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,vscodejavadistwebsite,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8706a3c6-c17a-4799-b52b-bd64fe2afe2d,ServicePrincipal +c3fc451d-9c80-4af8-ad8f-066be5b2222d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Ying Zhang (CSI Interfusion Inc),v-yingzhang@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7d98b66d-28ab-47c8-9ebd-706330e45276,User +2ab0fb5b-76e5-4f6d-b8c9-9d39c848f681,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Miller Wang,wangmi@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,8aed28d1-f65b-47ea-9797-f52461e25be6,User +cfd4f69b-3cd1-4be1-b3ae-c1c0b2c15a79,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,monamavenwebappsp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f8797fae-b59c-4714-8de0-a50384320b5e,ServicePrincipal +9e9b9436-83d8-479f-b4eb-1d6980238f94,/providers/Microsoft.Management/managementGroups/b01d773d-e006-4f66-99ab-ed6c7624b4c1,MS-PIM,,用户访问管理员,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9,1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2,ServicePrincipal +6f4de15e-9316-4714-a7c4-40c46cf8e067,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,MS-PIM,,用户访问管理员,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9,1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2,ServicePrincipal +4b771ea9-81de-4fc4-aa28-a3a0b9b4a320,/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod,MS-PIM,,用户访问管理员,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9,1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2,ServicePrincipal +04a425af-7cc7-4efb-b969-658a7ccbadb0,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,mseng-VSJava-685ba005-af8d-4b04-8f16-a7bf38b2eb5a,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,bf470e25-a935-4a93-8cc6-fecb295cbc23,ServicePrincipal +492fdc07-a997-4b8a-b5d6-ea7138e48529,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,mseng-VSJava-685ba005-af8d-4b04-8f16-a7bf38b2eb5a,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,d062bda1-c2f7-4586-a89e-d413ccfc31db,ServicePrincipal +fe9e4797-7d67-4323-88cf-f0bca0620f41,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,msslocalspwepa,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6a471fd0-09bb-45b9-8128-4269e274977a,ServicePrincipal +225e9767-2fca-4392-8a6b-4a5cbda04546,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,myaks,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f68764a8-3d8d-42d8-86cd-e796987c9e95,ServicePrincipal +e15e4ba6-ce6f-4677-b58e-d6cccb38f857,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Ningting Pan,ninpan@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e1be1d09-3a59-4465-8388-32125b154d05,User +00625383-053d-4227-a4db-b098e9bd2289,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR101-v013,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,b7a49237-f5b0-473f-a4ff-6830d23af17d,ServicePrincipal +b4bdc3a7-78e2-4b26-8b90-e474aa120b47,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR102-v013,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,985bb80e-8113-4542-8d68-418589e6ff34,ServicePrincipal +18fdd87e-1c01-424e-b380-32310f4940c2,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR103-v014,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,2ac3f52f-f3ad-40a4-9b2d-aa24e4c7bbba,ServicePrincipal +3151fe9c-fcd2-45d3-a256-72fb13b86df5,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR104-v013,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,f2e939bc-742a-42f9-a27a-f0982c6e3f64,ServicePrincipal +d9bcf58a-6f24-446d-bf60-20ffe5142396,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR105-v013,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,4a113caa-961f-4535-ac9b-79bfba8b9ed2,ServicePrincipal +8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR106-v013,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,6179a082-c057-4fe3-8118-916b816a42e3,ServicePrincipal +0dabf212-a1c7-4af6-ba8b-be045493b368,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR107-v013,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,7c2d0d59-528c-434a-8c6c-03330539cad2,ServicePrincipal +d674b853-332e-4437-9ddb-bba8fde7ccce,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR108-v013,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,7d7aed0a-228e-420b-a6a2-82a49dacb8cb,ServicePrincipal +6e2b954b-42b2-48e0-997a-622601f0a4b4,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-NSG-DINE-SR109-v013,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,56d08bc2-cc29-4d23-9d23-fd396b807b02,ServicePrincipal +d0817c57-3e5b-4363-88b7-52baadd5c362,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,NRMS-SBNT-DINE-NSG-v012,,网络参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7,6fe923a8-2e4d-4c1f-b7d6-a7c5984f0129,ServicePrincipal +b262f59a-86d5-4ba1-bbd8-7d1fcf00b6b1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Zhou Liu,liuzhou@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,45758c99-8d92-43a6-bfa7-028ef8a12d47,User +2a934238-420e-4d4a-9c41-aa11bd4815ef,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Osvaldo Rosado,osrosado@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4bf111e9-0ba1-4a6b-8eb8-5d24b0bf64fc,User +57e9af36-f89b-4e72-aa49-20bea9f8d7d5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Peiyuan Zhou,peizhou@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3994e184-75b6-4d91-8b4f-4791b78b5df6,User +25063888-f31d-496a-9390-1df23f86264e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,plikeyvault,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3e5e28c1-5c71-43b9-b5e7-e0cf5b30c9c3,ServicePrincipal +e4fb5d96-92db-463e-8dcb-ac9959cc05b7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,plincar,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6eed2845-a41f-4724-9684-26b028594d26,ServicePrincipal +8889febb-0261-46d9-9fbb-e4434ecff531,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ps-dev,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6dfa8650-3994-4784-8ba1-9c354dda3004,ServicePrincipal +c1f2b424-4ae1-4211-be5d-ce4d96109625,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Qingyi Liu,qingyliu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4457bbab-3374-4c42-890e-4bae15bd9427,User +c178bde6-3c8f-492e-9e60-5a5d3b05575d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Ram Balakrishnan,rambala@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,cb63e2a8-0cf2-42a6-919b-2c6a5a147e8d,User +0403b168-2314-4c35-83f5-2d0061bf139c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Rory Preddy,ropreddy@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6696ade0-1289-400b-90f4-803894d2f04a,User +f3b649f5-5b36-4926-8c46-cbb14b22260d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Rujun Chen,rujche@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c872f795-b84f-4018-916e-a240c9c7f580,User +77dd95bb-3386-47ad-b398-e689bb5dc21a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Mary Hou (CSI Interfusion Inc),v-minh@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4f8b34d4-dbdd-4b4a-8008-8eaae079fa83,User +3bafdf67-a213-4b1f-8b15-fd844d875d52,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,sealattest2_xeOFjwGpsYGSOYNt0Uud59lYrPb2HXGLYQzidVWv3hI=,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,31e86eed-55ac-424b-b51f-818fe5c9fd2b,ServicePrincipal +01eb18fe-fc90-48e4-a20c-6f62d2413cbd,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,sealautomation_hhzfWuJaCJwrliGVRBUzTxTaVv0zibNK7t1u7Q4bMp8=,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,6b43ca12-7275-493f-9297-4bc1778d39c2,ServicePrincipal +32daf1e9-86e2-400d-b186-86f170a7c9c6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,ServicePrincipalName2222,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3104047e-e555-43fe-aa8a-0f8183cfd1e6,ServicePrincipal +3141e59b-f1ca-44e0-89e3-20e7d42270ce,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Songbo Wang,sonwan@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,30a34e9f-73e8-482f-a1a0-004c0e7fc305,User +db412cf8-c55d-41dd-83ca-53addb30696e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Shanshan Hu,t-shanhu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,30402577-690c-4257-8b7a-660c4976f1ff,User +c82f2114-93c3-47dc-a8c7-b9a8b3ef7558,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Rishabh Batra (HCL TECHNOLOGIES LTD),v-ribatr@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,28cb3a62-9d43-4f45-a5c5-0c7cb50b0c36,User +b3a9e1db-fde1-4ddd-ac1c-91913be67359,/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792,SEC-AzSecPack-v032,,虚拟机参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c,b7b8bd19-f827-425f-9be1-fd8a86b21904,ServicePrincipal +e6e1fffd-83f7-40c7-9f33-e56e2cf75b29,/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod,Security Orchestration Service - Corp,,资源策略参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608,1f75b9dd-4f1d-4e80-9521-321a8b1f5764,ServicePrincipal +3d01f56e-ee3a-41ed-a775-0e067546cb12,/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod,Security Orchestration Service - Corp,,管理组参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c,1f75b9dd-4f1d-4e80-9521-321a8b1f5764,ServicePrincipal +6ca5a0b2-5ca0-449c-90df-067f728db337,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,shichaopostman1,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5a91d73d-c6f2-432a-8bc4-7c27c0e5d09f,ServicePrincipal +04067ed2-bcf0-4492-9557-955ff055ccc5,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,shiqiupostman0507,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,bebc11a5-2ab8-4d2c-aaa0-b6b3fe624112,ServicePrincipal +52d5713a-0e47-476e-9740-451d53344237,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,shiqiutest,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,46388c87-8bc7-4fad-88dc-a4336bf23ebb,ServicePrincipal +dfbd7eff-743a-4dde-acc9-1f4dd8b93b89,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,shiqiutest,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,46388c87-8bc7-4fad-88dc-a4336bf23ebb,ServicePrincipal +0e9bbe62-20a5-412c-a1a7-dbf18f830e34,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Shiwei Zhang,shizh@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,540d72f0-42d2-47f9-a878-28c15871412a,User +f345680e-6977-41e4-b15f-bcdd7d1b88d7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,SignalRPowershellTestCredentials,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,b19c0e89-758d-466d-86a6-108b7a954933,ServicePrincipal +922b2ff4-ddf8-4247-8f43-222e6facdc1c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,sp-app,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,16ee9c79-325d-4df6-9e05-49005552404c,ServicePrincipal +b89efc06-656c-43e2-ba1d-b6bb33df978b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,spring-boot-test,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4809fa43-b83a-4a02-946b-d7dfab54647c,ServicePrincipal +5088a0bb-8589-4b67-ba98-ba86d548196d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,spring-cloud,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,fb98f3cf-8f0a-4923-9d29-a61c79f60d14,ServicePrincipal +5f5172df-371e-42e1-80b5-b3d51f000237,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,spring-cloud-warren,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,038bde1a-c7ce-402b-a592-b67ace87639a,ServicePrincipal +877606a5-73de-4168-a32f-1d6b53258cd6,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,springboottest-access-sp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,4eb63a56-8799-4f9f-8941-7b17b9fa9a39,ServicePrincipal +8f95de7c-c0ee-459e-a97e-1ff8938d0f8f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,springtest,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,0246f159-ff96-4332-85a7-8e80f4821796,ServicePrincipal +a55d67ec-3c7a-4ecb-87b4-30aabbe5868a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,subscriptionScrubber_bUJl8ZPE8nQ1cDM8d50KLSVD3oFyhE9mMCGaEmmj5Tc=,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2b0a66d6-4db3-4efc-bd38-2cda13624b8f,ServicePrincipal +15cea658-0697-4e9d-be5b-0f6c21d9fe34,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Sunny Chen (CSI Interfusion Inc),v-yinch@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3b1ac716-ba23-486c-8009-9b5cb5f61a25,User +ce75a774-9273-47da-a1a5-c459135974a8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,tanzu-app,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,f9665b49-7574-4cba-95d2-c06713034ca3,ServicePrincipal +34b896c3-b90e-4d39-97e3-4bed59e53ee4,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Tom Dykstra,tdykstra@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c720cc60-2aff-4070-8f9e-6fd917f5b56b,User +6db29d9c-9e93-42ba-955e-357314335faf,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Visual Studio China Java Tooling,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c9693a0b-9b8a-49ec-bdf7-93b97111c58d,Group +55339db0-0a4c-40f4-9d62-4842c0d165cc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yisp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,cd5acf82-0758-407d-97b4-fc0e51c30f16,ServicePrincipal +dc22de71-cd1f-4065-9510-dcb8ac5f3620,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Yuan Chen (CSI Interfusion Inc),v-cyua@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c4fa91b4-6403-4e84-a56c-060cfaa77b4f,User +0352d34f-e7ac-43ec-9ced-e9eac88eb664,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Vaijanath Angadihiremath (VJ),vaangadi@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,cb86f607-43d4-4e87-bbf1-f6e342583e2a,User +508e35d6-5042-4963-9877-10d63d2a764b,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,VSC Java CI,vscjava@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,553419c6-e70d-4e64-b665-4eb8f44351f6,User +d06c1d07-811a-41df-a325-d115bd237313,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,VSC-AzureResourceManagement,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,784adb8f-5d6b-4623-b1c3-efed8c76815e,ServicePrincipal +563fb90e-4695-470f-bd29-11f5fc6bceb4,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,VSCBI,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2f17b894-285b-41b1-ba3f-ba5e986ccde1,ServicePrincipal +160d57e8-d201-4af9-8055-665b06f9229e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,wangjunbo924,wangjunbo924@hotmail.com,读者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7,b1da06bc-82bb-445a-87aa-4040f55186e2,User +8abc19b8-8c63-4442-85b3-b8e151f367d3,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,wepa-keyvault-principal,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2e4600b2-5529-4358-a90b-98c46b268635,ServicePrincipal +3e48b87c-2053-4b14-b747-12475aee48b8,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,wepa-test-keyvault-msi,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,25b0e8f3-ad07-4e88-a4f3-46e22107c030,ServicePrincipal +9a919fd5-eaf3-45a4-9244-84df938568fb,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,wepaDemoServicePrincipal,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,eba1ca1b-d554-4bce-8c72-c8256a0481e4,ServicePrincipal +d6c438d1-113e-4404-9845-5506c8e2cf1d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,wepaTestServicePrincipal,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1821d4ec-e414-475b-8cd0-30f89935950a,ServicePrincipal +7ebcd4eb-437e-433e-88e2-28f8bf6451cb,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,xiada-sp,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,672f0b9d-55b9-48e8-a3df-d87adcf32e64,ServicePrincipal +81841095-ddc4-435a-843e-f5f7331c0db9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,xiada-sp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,672f0b9d-55b9-48e8-a3df-d87adcf32e64,ServicePrincipal +ccb08723-1f8c-4218-ad7b-08177e6e3e2c,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Xiaolu Dai,xiada@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,cefc9af6-8f15-42f5-ae65-1084d74717bb,User +8c3f606c-4773-4835-9ea4-29aa17c529ca,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Xin Shi,xshi@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a0cead06-3dad-456a-836d-f76d6f101109,User +6b62b537-2a56-4a81-ac2b-26762123c1ed,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Yaojin Yang,yay@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a6106970-3f3f-4e1b-b4be-44d8ce8f8a79,User +685692df-2ba7-4aa8-8a07-727bdbe8ba9f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Yi Liu,yiliu6@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a601b967-3216-480a-a729-2cecc9016f28,User +c7e39a93-e1ae-457a-830a-c06384b8ecb7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,You Ji,yoj@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a68d66fc-b0d0-46e5-a574-1db82002c50a,User +503e18eb-95bd-4a48-a1c7-531f34b6b239,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Yuchen Wang,yucwan@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e43e668e-337e-4bb7-9e79-c4b7140823b7,User +0f057c44-8a0f-4603-81f8-6f3af87ed7b7,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yuchenad,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e034f21a-1d4c-4e0c-b583-57a93c6b38f3,ServicePrincipal +169beb13-b2aa-471b-8252-43385dadc6ea,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yuchensp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,f497ae2d-d8b6-4c14-bcd2-eff623a754e7,ServicePrincipal +5f1f2742-837c-4b27-a500-8a716a286838,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yucServicePrincipalName,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7cefd6e8-f44b-43e3-842a-d0d170e53aeb,ServicePrincipal +efbb97eb-4855-450c-b292-079c163cbfcc,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yucsp,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e296856f-3d84-4f75-9d3c-02407910ce32,ServicePrincipal +c7030c55-c4a1-4074-b322-3623cda5ce70,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Yuva Teja (HCL TECHNOLOGIES CORPORATE),v-yuteja@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,ee223ae8-fa8d-449b-910c-e21f440e1e53,User +ada77327-0ce7-4d07-8342-3f049c73603d,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Zhicheng Liu (CSI Interfusion Inc),v-zhicliu@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,1a7c19b7-0465-46be-a689-63b32d3b5000,User +27621e4f-df88-4e87-9a5c-6ab96ef1a725,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Xiaoyun Ding,xiading@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2c186dce-a772-4a39-bce0-09c48da9893b,User +284d1544-79bf-4a2e-9e8a-4eeff85e9c65,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Xuyang Cao,xuycao@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,504c34f4-8389-4920-aec9-0c595b508740,User +1582ad33-3c5f-473a-8070-3fc599b4390a,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Yev Bronshteyn,yebronsh@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,3a102059-85ec-4c43-9792-2ba3e95c041d,User +d408a5ed-e32e-4723-b86e-8750456d2d66,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Yuwei Zhou,yuwzho@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,02b72194-148d-4c31-ab07-2ab55555231c,User +aee497e7-3fd1-45b4-abae-6e5bcee8e598,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yuwzho-aksdev-westus2,,所有者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635,53c4c930-6557-4dad-b6d4-4a49a466e39f,ServicePrincipal +cc1b6235-2d86-4070-b628-196dd2ee15c4,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yuwzho-cs,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,dd3c044f-9e64-451d-a540-b8563b3b75e2,ServicePrincipal +3ce64b11-9c40-4c48-b59e-40ae8ec5ad89,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yuwzhoa_ngiUEfdckTlNOVHQ6Hj3lsZ9MLxgssUDw6QxeHM9PBg=,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,381d1d1a-08b6-483a-93ee-bdcda123645a,ServicePrincipal +164a2b52-1dcc-4d61-90f6-010b2a52f2c1,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yuwzhoaac_r17vtUbBVwvJH+vOpoiAamQybqeAzYWAhVSrQttiorc=,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a371a15d-2c58-4a93-85d0-dd45fbff7ccd,ServicePrincipal +43e877be-84dc-4f99-8648-a3d250214c4f,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,yuwzhoac_QNBIzK+MUa6uk3TgWs3ixbaqlvB9v9Np8LH2Tv5yoKQ=,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,e48e06ea-92f0-4212-ba9e-3f663121b465,ServicePrincipal +f7b2399e-b00d-47b5-b7f4-81b3356e8d9e,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Zhe Cheng,zhcheng@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,c3215255-d30b-4111-b207-0e4c881ba965,User +56275411-3a56-4055-bba5-567fc50f0f28,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Zhishou Zhang,zhiszhan@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,cec5b962-8292-402b-83d8-5ae368729f33,User +3bab53fe-d8ce-47de-a36a-1cc0ed8ad085,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Zihong Chen,zihch@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,7302f2c4-3416-4003-8b89-5861107002a2,User +648ef626-b740-4629-b8c6-6c500cc8c1db,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,Zhe Li,zlhe@microsoft.com,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,5884e538-4bef-4973-9a1f-4442aa0ae819,User +f396e67d-3d42-4cc4-8d56-35c5f529ec09,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,zimsautomation_c4Svj2wpHeXRT0BRbOi2ttnnue2Ls+a2m+UmWEnKkFY=,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,a775f45a-c664-49fb-9b9a-caf8cc43dcd1,ServicePrincipal +c96a5ce9-99b1-42bc-9cf1-e75b793cd4f9,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,zimsautomationaccount_veSUuPThREU0r0Uv0KGXI6RQTZlf0rE1w1xRZnHYYXU=,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,851e3d3b-f100-4be8-8c22-b73686061c71,ServicePrincipal +0507f170-1b95-458b-b199-c6e490340394,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a,zuh0275-VSCodeJavaDistribution-685ba005-af8d-4b04-8f16-a7bf38b2eb5a,,参与者,/subscriptions/685ba005-af8d-4b04-8f16-a7bf38b2eb5a/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c,2973da2c-2051-49fe-9f56-d5a20b680131,ServicePrincipal diff --git a/vnet/azure_rm_virtualwan.py b/vnet/azure_rm_virtualwan.py new file mode 100644 index 0000000..e317c7c --- /dev/null +++ b/vnet/azure_rm_virtualwan.py @@ -0,0 +1,376 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_virtualwan +version_added: '2.9' +short_description: Manage Azure VirtualWan instance. +description: + - 'Create, update and delete instance of Azure VirtualWan.' +options: + resource_group_name: + description: + - The resource group name of the VirtualWan. + required: true + type: str + virtual_wan_name: + description: + - The name of the VirtualWAN being retrieved. + - The name of the VirtualWAN being created or updated. + - The name of the VirtualWAN being deleted. + required: true + type: str + disable_vpn_encryption: + description: + - Vpn encryption to be disabled or not. + type: bool + virtual_hubs: + description: + - List of VirtualHubs in the VirtualWAN. + type: list + suboptions: + id: + description: + - Resource ID. + type: str + vpn_sites: + description: + - List of VpnSites in the VirtualWAN. + type: list + suboptions: + id: + description: + - Resource ID. + type: str + allow_branch_to_branch_traffic: + description: + - True if branch to branch traffic is allowed. + type: bool + allow_vnet_to_vnet_traffic: + description: + - True if Vnet to Vnet traffic is allowed. + type: bool + type_properties_type: + description: + - The type of the VirtualWAN. + type: str + state: + description: + - Assert the state of the VirtualWan. + - >- + Use C(present) to create or update an VirtualWan and C(absent) to delete + it. + default: present + choices: + - absent + - present +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: VirtualWANCreate + azure_rm_virtualwan: + resource_group_name: rg1 + + + - name: VirtualWANDelete + azure_rm_virtualwan: + resource_group_name: rg1 + + +''' + +RETURN = ''' +id: + description: + - Resource ID. + returned: always + type: str + sample: null +name: + description: + - Resource name. + returned: always + type: str + sample: null +type: + description: + - Resource type. + returned: always + type: str + sample: null +location: + description: + - Resource location. + returned: always + type: str + sample: null +tags: + description: + - Resource tags. + returned: always + type: dictionary + sample: null +etag: + description: + - A unique read-only string that changes whenever the resource is updated. + returned: always + type: str + sample: null +disable_vpn_encryption: + description: + - Vpn encryption to be disabled or not. + returned: always + type: bool + sample: null +virtual_hubs: + description: + - List of VirtualHubs in the VirtualWAN. + returned: always + type: list + sample: null + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: null +vpn_sites: + description: + - List of VpnSites in the VirtualWAN. + returned: always + type: list + sample: null + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: null +allow_branch_to_branch_traffic: + description: + - True if branch to branch traffic is allowed. + returned: always + type: bool + sample: null +allow_vnet_to_vnet_traffic: + description: + - True if Vnet to Vnet traffic is allowed. + returned: always + type: bool + sample: null +office365_local_breakout_category: + description: + - The office local breakout category. + returned: always + type: str + sample: null +provisioning_state: + description: + - The provisioning state of the virtual WAN resource. + returned: always + type: str + sample: null +type_properties_type: + description: + - The type of the VirtualWAN. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.network import NetworkManagementClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class Actions: + NoAction, Create, Update, Delete = range(4) + + +class AzureRMVirtualWan(AzureRMModuleBaseExt): + def __init__(self): + self.module_arg_spec = dict( + location=dict( + type='str', + required=True + ), + resource_group_name=dict( + type='str', + required=True + ), + virtual_wan_name=dict( + type='str', + required=True + ), + disable_vpn_encryption=dict( + type='bool', + disposition='/disable_vpn_encryption' + ), + virtual_hubs=dict( + type='list', + updatable=False, + disposition='/virtual_hubs', + elements='dict', + options=dict( + id=dict( + type='str', + disposition='id' + ) + ) + ), + vpn_sites=dict( + type='list', + updatable=False, + disposition='/vpn_sites', + elements='dict', + options=dict( + id=dict( + type='str', + disposition='id' + ) + ) + ), + allow_branch_to_branch_traffic=dict( + type='bool', + disposition='/allow_branch_to_branch_traffic' + ), + allow_vnet_to_vnet_traffic=dict( + type='bool', + disposition='/allow_vnet_to_vnet_traffic' + ), + type_properties_type=dict( + type='str', + disposition='/type_properties_type' + ), + state=dict( + type='str', + default='present', + choices=['present', 'absent'] + ) + ) + + self.resource_group_name = None + self.virtual_wan_name = None + self.body = {} + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.to_do = Actions.NoAction + + super(AzureRMVirtualWan, self).__init__(derived_arg_spec=self.module_arg_spec, + supports_check_mode=True, + supports_tags=True) + + def exec_module(self, **kwargs): + for key in list(self.module_arg_spec.keys()): + if hasattr(self, key): + setattr(self, key, kwargs[key]) + elif kwargs[key] is not None: + self.body[key] = kwargs[key] + + self.inflate_parameters(self.module_arg_spec, self.body, 0) + + old_response = None + response = None + + self.mgmt_client = self.get_mgmt_svc_client(NetworkManagementClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-04-01') + + old_response = self.get_resource() + + if not old_response: + if self.state == 'present': + self.to_do = Actions.Create + else: + if self.state == 'absent': + self.to_do = Actions.Delete + else: + modifiers = {} + self.create_compare_modifiers(self.module_arg_spec, '', modifiers) + self.results['modifiers'] = modifiers + self.results['compare'] = [] + if not self.default_compare(modifiers, self.body, old_response, '', self.results): + self.to_do = Actions.Update + + if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): + self.results['changed'] = True + if self.check_mode: + return self.results + response = self.create_update_resource() + elif self.to_do == Actions.Delete: + self.results['changed'] = True + if self.check_mode: + return self.results + self.delete_resource() + else: + self.results['changed'] = False + response = old_response + + return self.results + + def create_update_resource(self): + try: + response = self.mgmt_client.virtual_wans.create_or_update(resource_group_name=self.resource_group_name, + virtual_wan_name=self.virtual_wan_name, + wan_parameters=self.body) + if isinstance(response, AzureOperationPoller) or isinstance(response, LROPoller): + response = self.get_poller_result(response) + except CloudError as exc: + self.log('Error attempting to create the VirtualWan instance.') + self.fail('Error creating the VirtualWan instance: {0}'.format(str(exc))) + return response.as_dict() + + def delete_resource(self): + try: + response = self.mgmt_client.virtual_wans.delete(resource_group_name=self.resource_group_name, + virtual_wan_name=self.virtual_wan_name) + except CloudError as e: + self.log('Error attempting to delete the VirtualWan instance.') + self.fail('Error deleting the VirtualWan instance: {0}'.format(str(e))) + + return True + + def get_resource(self): + try: + response = self.mgmt_client.virtual_wans.get(resource_group_name=self.resource_group_name, + virtual_wan_name=self.virtual_wan_name) + except CloudError as e: + return False + return response.as_dict() + + +def main(): + AzureRMVirtualWan() + + +if __name__ == '__main__': + main() diff --git a/vnet/azure_rm_virtualwan.yml b/vnet/azure_rm_virtualwan.yml new file mode 100644 index 0000000..d0fe78b --- /dev/null +++ b/vnet/azure_rm_virtualwan.yml @@ -0,0 +1,51 @@ + - name: Create a VirtualWan + azure_rm_virtualwan: + resource_group_name: v-xisuRG + virtual_wan_name: my_virtual_wan_name + location: eastus + disable_vpn_encryption: true + allow_branch_to_branch_traffic: true + allow_vnet_to_vnet_traffic: true + type_properties_type: standard + + tags: fred + register: output + - debug: + var: output + - name: Get VirtualWan info + azure_rm_virtualwan_info: + resource_group_name: v-xisuRG + virtual_wan_name: my_virtual_wan_name + tags: fred01 + register: output + - debug: + var: output + tags: fred01 + + - name: Update the VirtualWan (no change) + azure_rm_virtualwan: + resource_group_name: v-xisuRG + virtual_wan_name: my_virtual_wan_name + disable_vpn_encryption: true + allow_branch_to_branch_traffic: False + location: eastus + allow_vnet_to_vnet_traffic: true + type_properties_type: standard + + - name: Get VirtualWan info + azure_rm_virtualwan_info: + resource_group_name: v-xisuRG + virtual_wan_name: my_virtual_wan_name + tags: fred01 + register: output + - debug: + var: output + tags: fred01 + + - name: Delete the VirtualWan + azure_rm_virtualwan: + resource_group_name: v-xisuRG + virtual_wan_name: my_virtual_wan_name + location: eastus + state: absent + diff --git a/vnet/azure_rm_virtualwan_info.py b/vnet/azure_rm_virtualwan_info.py new file mode 100644 index 0000000..022a818 --- /dev/null +++ b/vnet/azure_rm_virtualwan_info.py @@ -0,0 +1,333 @@ +#!/usr/bin/python +# +# Copyright (c) 2020 GuopengLin, (@t-glin) +# +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + + +DOCUMENTATION = ''' +--- +module: azure_rm_virtualwan_info +version_added: '2.9' +short_description: Get VirtualWan info. +description: + - Get info of VirtualWan. +options: + resource_group_name: + description: + - The resource group name of the VirtualWan. + type: str + virtual_wan_name: + description: + - The name of the VirtualWAN being retrieved. + type: str +extends_documentation_fragment: + - azure +author: + - GuopengLin (@t-glin) + +''' + +EXAMPLES = ''' + - name: VirtualWANGet + azure_rm_virtualwan_info: + resource_group_name: rg1 + + + - name: VirtualWANListByResourceGroup + azure_rm_virtualwan_info: + resource_group_name: rg1 + + + - name: VirtualWANList + azure_rm_virtualwan_info: + +''' + +RETURN = ''' +virtual_wans: + description: >- + A list of dict results where the key is the name of the VirtualWan and the + values are the facts for that VirtualWan. + returned: always + type: complex + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: null + name: + description: + - Resource name. + returned: always + type: str + sample: null + type: + description: + - Resource type. + returned: always + type: str + sample: null + location: + description: + - Resource location. + returned: always + type: str + sample: null + tags: + description: + - Resource tags. + returned: always + type: dictionary + sample: null + etag: + description: + - >- + A unique read-only string that changes whenever the resource is + updated. + returned: always + type: str + sample: null + disable_vpn_encryption: + description: + - Vpn encryption to be disabled or not. + returned: always + type: bool + sample: null + virtual_hubs: + description: + - List of VirtualHubs in the VirtualWAN. + returned: always + type: list + sample: null + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: null + vpn_sites: + description: + - List of VpnSites in the VirtualWAN. + returned: always + type: list + sample: null + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: null + allow_branch_to_branch_traffic: + description: + - True if branch to branch traffic is allowed. + returned: always + type: bool + sample: null + allow_vnet_to_vnet_traffic: + description: + - True if Vnet to Vnet traffic is allowed. + returned: always + type: bool + sample: null + office365_local_breakout_category: + description: + - The office local breakout category. + returned: always + type: str + sample: null + provisioning_state: + description: + - The provisioning state of the virtual WAN resource. + returned: always + type: str + sample: null + type_properties_type: + description: + - The type of the VirtualWAN. + returned: always + type: str + sample: null + value: + description: + - List of VirtualWANs. + returned: always + type: list + sample: null + contains: + disable_vpn_encryption: + description: + - Vpn encryption to be disabled or not. + returned: always + type: bool + sample: null + virtual_hubs: + description: + - List of VirtualHubs in the VirtualWAN. + returned: always + type: list + sample: null + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: null + vpn_sites: + description: + - List of VpnSites in the VirtualWAN. + returned: always + type: list + sample: null + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: null + allow_branch_to_branch_traffic: + description: + - True if branch to branch traffic is allowed. + returned: always + type: bool + sample: null + allow_vnet_to_vnet_traffic: + description: + - True if Vnet to Vnet traffic is allowed. + returned: always + type: bool + sample: null + type_properties_type: + description: + - The type of the VirtualWAN. + returned: always + type: str + sample: null + next_link: + description: + - URL to get the next set of operation list results if there are any. + returned: always + type: str + sample: null + +''' + +from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common_ext import AzureRMModuleBase +try: + from msrestazure.azure_exceptions import CloudError + from azure.mgmt.network import NetworkManagementClient + from msrestazure.azure_operation import AzureOperationPoller + from msrest.polling import LROPoller +except ImportError: + # This is handled in azure_rm_common + pass + + +class AzureRMVirtualWanInfo(AzureRMModuleBase): + def __init__(self): + self.module_arg_spec = dict( + resource_group_name=dict( + type='str' + ), + virtual_wan_name=dict( + type='str' + ) + ) + + self.resource_group_name = None + self.virtual_wan_name = None + + self.results = dict(changed=False) + self.mgmt_client = None + self.state = None + self.url = None + self.status_code = [200] + + self.query_parameters = {} + self.query_parameters['api-version'] = '2020-04-01' + self.header_parameters = {} + self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' + + self.mgmt_client = None + super(AzureRMVirtualWanInfo, self).__init__(self.module_arg_spec, supports_tags=True) + + def exec_module(self, **kwargs): + + for key in self.module_arg_spec: + setattr(self, key, kwargs[key]) + + self.mgmt_client = self.get_mgmt_svc_client(NetworkManagementClient, + base_url=self._cloud_environment.endpoints.resource_manager, + api_version='2020-04-01') + + if (self.resource_group_name is not None and + self.virtual_wan_name is not None): + self.results['virtual_wans'] = self.format_item(self.get()) + elif (self.resource_group_name is not None): + self.results['virtual_wans'] = self.format_item(self.list_by_resource_group()) + else: + self.results['virtual_wans'] = self.format_item(self.list()) + return self.results + + def get(self): + response = None + + try: + response = self.mgmt_client.virtual_wans.get(resource_group_name=self.resource_group_name, + virtual_wan_name=self.virtual_wan_name) + except CloudError as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def list_by_resource_group(self): + response = None + + try: + response = self.mgmt_client.virtual_wans.list_by_resource_group(resource_group_name=self.resource_group_name) + except CloudError as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def list(self): + response = None + + try: + response = self.mgmt_client.virtual_wans.list() + except CloudError as e: + self.log('Could not get info for @(Model.ModuleOperationNameUpper).') + + return response + + def format_item(self, item): + if hasattr(item, 'as_dict'): + return [item.as_dict()] + else: + result = [] + items = list(item) + for tmp in items: + result.append(tmp.as_dict()) + return result + + +def main(): + AzureRMVirtualWanInfo() + + +if __name__ == '__main__': + main() diff --git a/vnet/tasks.yml b/vnet/tasks.yml new file mode 100755 index 0000000..878dcdb --- /dev/null +++ b/vnet/tasks.yml @@ -0,0 +1,10 @@ +--- +- name: for test + hosts: localhost + connection: local + collections: + - azure.azcollection + vars: + resource_group: v-xisuRG + tasks: + - include: azure_rm_virtualwan.yml diff --git a/web_mul.yml b/web_mul.yml new file mode 100755 index 0000000..244b338 --- /dev/null +++ b/web_mul.yml @@ -0,0 +1,40 @@ +--- +- name: for test + hosts: localhost + connection: lcoal + collections: + - azure.azcollection + vars: + resource_group: v-xisuRG + tasks: + - set_fact: + test: "{{ lookup('file', 'docker-compose.yml') | b64decode }}" + tags: fred + - debug: + var: test + tags: fred + + - debug: + var: lookup('file', 'docker-compose.yml') | b64encode + #var: "COMPOSE{{ lookup('file', 'docker-compose.yml') | b64encode }}" + tags: fred02 + + - name: Create a multi-container web app + azure_rm_webapp: + resource_group: v-xisuRG + name: myMultiContainerWebapp05 + plan: + name: myAppServicePlan05 + resource_group: v-xisuRG + is_linux: true + sku: S1 + number_of_workers: 1 + app_settings: + testkey: testvalue + container_settings: + #name: COMPOSEtest01 + name: COMPOSE{{ lookup('file', 'docker-compose.yml') | b64decode }} + register: output + - debug: + var: output +