def __get__()

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


    def __get__(self, instance, owner) -> BaseClient:
        """
        We cannot use sts.assure_modular_credentials_valid() and
        BaseRoleAccessModel's logic here as well (I mean creds from envs)
        because here we cannot catch the moment when creds were refreshed by
        models, for instance. Think about it
        """
        _modular = Modular()
        sts, env = _modular.sts_service(), _modular.environment_service()
        roles = env.modular_assume_role_arn()
        if roles and self._expired():
            _LOG.info('Boto3 session inside ModularAssumeRoleClient descriptor '
                      'has expired. Re-assuming role')
            payloads = list(sts.assume_roles_default_payloads(roles))
            creds = sts.assume_roles_chain(payloads)
            self._update_session(**creds)
            self._client = None

        if not self._client:
            r = self._region_name or env.modular_aws_region() or env.aws_region()
            _LOG.info(f'Initializing {self._service_name} client within '
                      f'ModularAssumeRoleClient descriptor for region {r}')
            self._client = self.get_session().client(
                service_name=self._service_name,
                region_name=r,
            )
        return self._client