in refarch/aws-native/streaming/streaming_cdk/cognito-lambda/handler.py [0:0]
def find_auth_provider(region, user_pool_id):
"""
Find the client with name starting with 'AWSElasticsearch'
:param region: The region for Cognito
:param user_pool_id: The User Pool ID
:return: The Authentication Provider 'cognito-idp.<region>.amazonaws.com/<user_pool_id>:<client>'
"""
logger.info('Processing UserPool %s' % user_pool_id)
client_idp = boto3.client('cognito-idp')
response = client_idp.list_user_pool_clients(
UserPoolId=user_pool_id
)
clients = response['UserPoolClients']
# Find the client for AESElasticsearch
for c in clients:
logger.info('Found App Client %s' % c['ClientName'])
aes_clients = [c for c in clients if c['ClientName'].startswith('AWSElasticsearch')]
if len(aes_clients) == 0:
logging.error('Could not find Amazon Elasticsearch App Client in User Pool %s' % user_pool_id)
return None
if len(aes_clients) > 1:
logging.error('Found multiple Amazon Elasticsearch App Client in User Pool %s' % user_pool_id)
return None
client = aes_clients[0]
return 'cognito-idp.' + region + '.amazonaws.com/' + user_pool_id + ':' + client['ClientId']