File: //opt/alt/python37/lib/python3.7/site-packages/google/auth/__pycache__/app_engine.cpython-37.pyc
B
��f� � @ s� d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ yddlmZ W n e k
rd dZY nX G dd � d ej
�Z
d
d� ZG dd
� d
ejej
ej�ZdS )a Google App Engine standard environment support.
This module provides authentication and signing for applications running on App
Engine in the standard environment using the `App Identity API`_.
.. _App Identity API:
https://cloud.google.com/appengine/docs/python/appidentity/
� N)�_helpers)�credentials)�crypt)�
exceptions)�app_identityc @ s0 e Zd ZdZedd� �Ze�ej �dd� �Z
dS )�Signerz�Signs messages using the App Engine App Identity service.
This can be used in place of :class:`google.auth.crypt.Signer` when
running in the App Engine standard environment.
c C s dS )z�Optional[str]: The key ID used to identify this private key.
.. warning::
This is always ``None``. The key ID used by App Engine can not
be reliably determined ahead of time.
N� )�selfr r �G/opt/alt/python37/lib/python3.7/site-packages/google/auth/app_engine.py�key_id/ s z
Signer.key_idc C s t �|�}t�|�\}}|S )N)r �to_bytesr Z sign_blob)r �message�_� signaturer r r
�sign9 s
zSigner.signN)�__name__�
__module__�__qualname__�__doc__�propertyr r �copy_docstringr r r r r r r
r ( s
r c C s t dkrt�d��t �� S )z�Gets the project ID for the current App Engine application.
Returns:
str: The project ID
Raises:
google.auth.exceptions.OSError: If the App Engine APIs are unavailable.
Nz&The App Engine APIs are not available.)r r �OSErrorZget_application_idr r r r
�get_project_id@ s
r c s� e Zd ZdZd� fdd� Ze�ej�dd� �Z e
dd� �Ze
d d
� �Ze�ej
�ddd��Ze�ej�d
d� �Ze�ej�dd� �Ze
e�ej�dd� ��Ze
e�ej�dd� ��Z� ZS )�Credentialsz�App Engine standard environment credentials.
These credentials use the App Engine App Identity API to obtain access
tokens.
Nc sD t dkrt�d��tt| ��� || _|| _|| _t � | _
|| _dS )a�
Args:
scopes (Sequence[str]): Scopes to request from the App Identity
API.
default_scopes (Sequence[str]): Default scopes passed by a
Google client library. Use 'scopes' for user-defined scopes.
service_account_id (str): The service account ID passed into
:func:`google.appengine.api.app_identity.get_access_token`.
If not specified, the default application service account
ID will be used.
quota_project_id (Optional[str]): The project ID used for quota
and billing.
Raises:
google.auth.exceptions.OSError: If the App Engine APIs are unavailable.
Nz&The App Engine APIs are not available.)r r r �superr �__init__�_scopes�_default_scopes�_service_account_idr �_signerZ_quota_project_id)r �scopes�default_scopes�service_account_id�quota_project_id)� __class__r r
r Z s
zCredentials.__init__c C sF | j d k r| j n| j}t�|| j�\}}tj�|�}|| | _| _d S )N) r r r Zget_access_tokenr �datetime�utcfromtimestamp�token�expiry)r �requestr r'