105 lines
3.0 KiB
Python
105 lines
3.0 KiB
Python
# -*- coding: utf-8 -*- #
|
|
# Copyright 2019 Google LLC. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
"""Useful commands for interacting with the Cloud Identity Groups API."""
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import unicode_literals
|
|
|
|
from googlecloudsdk.api_lib.util import apis
|
|
|
|
API_NAME = 'cloudidentity'
|
|
|
|
|
|
def GetClient(version):
|
|
"""Import and return the appropriate Cloud Identity Groups client.
|
|
|
|
Args:
|
|
version: str, the version of the API desired
|
|
|
|
Returns:
|
|
Cloud Identity Groups client for the appropriate release track
|
|
"""
|
|
return apis.GetClientInstance(API_NAME, version)
|
|
|
|
|
|
def GetMessages(version):
|
|
"""Import and return the appropriate Cloud Identity Groups messages module.
|
|
|
|
Args:
|
|
version: str, the version of the API desired
|
|
|
|
Returns:
|
|
Cloud Identity Groups messages for the appropriate release track
|
|
"""
|
|
return apis.GetMessagesModule(API_NAME, version)
|
|
|
|
|
|
def GetGroup(version, group):
|
|
"""Get a Cloud Identity Group.
|
|
|
|
Args:
|
|
version: Release track information.
|
|
group: Name of group as returned by LookupGroupName()
|
|
(i.e. 'groups/{group_id}').
|
|
Returns:
|
|
Group resource object.
|
|
"""
|
|
client = GetClient(version)
|
|
messages = GetMessages(version)
|
|
return client.groups.Get(
|
|
messages.CloudidentityGroupsGetRequest(name=group))
|
|
|
|
|
|
def LookupGroupName(version, email):
|
|
"""Lookup Group Name for a specified group key id.
|
|
|
|
Args:
|
|
version: Release track information
|
|
email: str, group email
|
|
|
|
Returns:
|
|
LookupGroupNameResponse: Response message for LookupGroupName operation
|
|
which is containing a resource name of the group in the format:
|
|
'name: groups/{group_id}'
|
|
"""
|
|
|
|
client = GetClient(version)
|
|
messages = GetMessages(version)
|
|
|
|
return client.groups.Lookup(
|
|
messages.CloudidentityGroupsLookupRequest(groupKey_id=email))
|
|
|
|
|
|
def LookupMembershipName(version, group_id, member_email):
|
|
"""Lookup membership name for a specific pair of member key id and group email.
|
|
|
|
Args:
|
|
version: Release track information
|
|
group_id: str, group id (e.g. groups/03qco8b4452k99t)
|
|
member_email: str, member email
|
|
Returns:
|
|
LookupMembershipNameResponse: Response message for LookupMembershipName
|
|
operation which is containing a resource name of the membership in the
|
|
format:
|
|
'name: members/{member_id}'
|
|
"""
|
|
|
|
client = GetClient(version)
|
|
messages = GetMessages(version)
|
|
|
|
return client.groups_memberships.Lookup(
|
|
messages.CloudidentityGroupsMembershipsLookupRequest(
|
|
memberKey_id=member_email, parent=group_id))
|