moto/moto/sts/models.py

51 lines
1.4 KiB
Python
Raw Normal View History

from __future__ import unicode_literals
2013-05-24 21:22:34 +00:00
import datetime
from moto.core import BaseBackend
2014-11-30 04:34:40 +00:00
from moto.core.utils import iso_8601_datetime_with_milliseconds
2013-05-24 21:22:34 +00:00
class Token(object):
2017-02-24 02:37:43 +00:00
def __init__(self, duration, name=None, policy=None):
2016-09-07 18:40:52 +00:00
now = datetime.datetime.utcnow()
2013-05-24 21:22:34 +00:00
self.expiration = now + datetime.timedelta(seconds=duration)
self.name = name
self.policy = None
2013-05-24 21:22:34 +00:00
@property
def expiration_ISO8601(self):
2014-11-30 04:34:40 +00:00
return iso_8601_datetime_with_milliseconds(self.expiration)
2013-05-24 21:22:34 +00:00
class AssumedRole(object):
2017-02-24 02:37:43 +00:00
2013-05-24 21:22:34 +00:00
def __init__(self, role_session_name, role_arn, policy, duration, external_id):
self.session_name = role_session_name
self.arn = role_arn
self.policy = policy
2016-09-07 18:40:52 +00:00
now = datetime.datetime.utcnow()
2013-05-24 21:22:34 +00:00
self.expiration = now + datetime.timedelta(seconds=duration)
self.external_id = external_id
@property
def expiration_ISO8601(self):
2014-11-30 04:34:40 +00:00
return iso_8601_datetime_with_milliseconds(self.expiration)
2013-05-24 21:22:34 +00:00
class STSBackend(BaseBackend):
2017-02-24 02:37:43 +00:00
2013-05-24 21:22:34 +00:00
def get_session_token(self, duration):
token = Token(duration=duration)
return token
def get_federation_token(self, name, duration, policy):
token = Token(duration=duration, name=name, policy=policy)
return token
2013-05-24 21:22:34 +00:00
def assume_role(self, **kwargs):
role = AssumedRole(**kwargs)
return role
2017-02-24 02:37:43 +00:00
2013-05-24 21:22:34 +00:00
sts_backend = STSBackend()