def assume_roles_default_payloads()

in modular_sdk/services/sts_service.py [0:0]


    def assume_roles_default_payloads(self, roles: List[str],
                                      session_name: Optional[str] = None,
                                      last_duration: Optional[int] = 3600
                                      ) -> Generator[AssumeRolePayload, None, None]:
        """
        Just to keep the same code in one place. We could have easily
        done without this method.
        This method puts session duration for the last payload. Additionally,
        it validated roles ARNs and skips one in case it's invalid. Session
        names are currently None because they do not matter
        :param session_name: name for each session. Current timestamp
         will be added.
        :param last_duration: session duration for the last payload
        :param roles:
        :return:
        """
        session = lambda: f'{session_name}-{time()}' if session_name else None
        n = len(roles)
        for i, role in enumerate(roles):
            if not self.is_role_arn(role):
                _LOG.warning(f'The string {roles} is not a role arn. '
                             f'Skipping it.')
                continue
            _dur = last_duration if i == (n - 1) else 900  # 900 the smallest
            yield role, session(), _dur