def add_user_entitlement(email_id, license_type, send_email_invite='true', organization=None, detect=None): """Add user. :param email_id: Email ID of the user. :type email_id: str :param license_type: License type for the user. :type license_type: str :rtype: UserEntitlementsPatchResponse """ do_not_send_invite = False do_not_send_invite = not resolve_true_false(send_email_invite) organization = resolve_instance(detect=detect, organization=organization) client = get_member_entitlement_management_client(organization) user_access_level = AccessLevel() user_access_level.account_license_type = license_type graph_user = GraphUser() graph_user.subject_kind = 'user' graph_user.principal_name = email_id value = {} value['accessLevel'] = user_access_level value['extensions'] = [] value['projectEntitlements'] = [] value['user'] = graph_user patch_document = [] patch_document.append(_create_patch_operation('add', '', value)) user_entitlement = client.update_user_entitlements( document=patch_document, do_not_send_invite_for_new_users=do_not_send_invite) if user_entitlement.have_results_succeeded is False and user_entitlement.results[ 0].errors[0] is not None: raise CLIError(user_entitlement.results[0].errors[0]['value']) return user_entitlement.results[0].result
def update_user_entitlement(user, license_type, organization=None, detect=None): """Update license type for a user. :param user: Email ID or ID of the user. :type user: str :param license_type: License type for the user. :type license_type: str :rtype: UserEntitlementsPatchResponse """ patch_document = [] value = {} value['accountLicenseType'] = license_type patch_document.append( _create_patch_operation('replace', '/accessLevel', value)) organization = resolve_instance(detect=detect, organization=organization) if '@' in user: user = resolve_identity_as_id(user, organization) client = get_member_entitlement_management_client(organization) user_entitlement_update = client.update_user_entitlement( document=patch_document, user_id=user) if user_entitlement_update.is_success is False and \ user_entitlement_update.operation_results[0].errors[0] is not None: raise CLIError( user_entitlement_update.operation_results[0].errors[0]['value']) return user_entitlement_update.user_entitlement
def get_user_entitlements(top=100, skip=None, organization=None, detect=None): """List users in an organization [except for users which are added via AAD groups]. :param int top: Maximum number of users to return. Max value is 10000. :param int skip: Offset: Number of records to skip. :rtype: [UserEntitlement] """ organization = resolve_instance(detect=detect, organization=organization) client = get_member_entitlement_management_client(organization) user_entitlements = client.get_user_entitlements(top=top, skip=skip) return user_entitlements
def delete_user_entitlement(user, organization=None, detect=None): """Remove user from an organization. :param user: Email ID or ID of the user. :type user: str """ organization = resolve_instance(detect=detect, organization=organization) if '@' in user: user = resolve_identity_as_id(user, organization) client = get_member_entitlement_management_client(organization) delete_user_entitlement_details = client.delete_user_entitlement(user_id=user) return delete_user_entitlement_details
def get_user_entitlement(user, organization=None, detect=None): """Show user details. :param user: Email ID or ID of the user. :type user: str :rtype: UserEntitlement """ organization = resolve_instance(detect=detect, organization=organization) if '@' in user: user = resolve_identity_as_id(user, organization) client = get_member_entitlement_management_client(organization) user_entitlement_details = client.get_user_entitlement(user_id=user) return user_entitlement_details