Source code for globus_sdk.scopes.data

from .builder import ScopeBuilder, ScopeBuilderScopes


[docs]class GCSEndpointScopeBuilder(ScopeBuilder): """ A ScopeBuilder with a named property for the GCS manage_collections scope. "manage_collections" is a scope on GCS Endpoints. The resource_server string should be the GCS Endpoint ID. **Examples** >>> sb = GCSEndpointScopeBuilder("xyz") >>> mc_scope = sb.manage_collections """ _classattr_scope_names = ["manage_collections"] @property def manage_collections(self) -> str: return self.urn_scope_string("manage_collections")
[docs]class GCSCollectionScopeBuilder(ScopeBuilder): """ A ScopeBuilder with a named property for the GCS data_access scope. "data_access" is a scope on GCS Collections. The resource_server string should be the GCS Collection ID. **Examples** >>> sb = GCSCollectionScopeBuilder("xyz") >>> da_scope = sb.data_access >>> https_scope = sb.https """ _classattr_scope_names = ["data_access", "https"] @property def data_access(self) -> str: return self.url_scope_string("data_access") @property def https(self) -> str: return self.url_scope_string("https")
class _AuthScopesBuilder(ScopeBuilder): _classattr_scope_names = ["openid", "email", "profile"] openid: str = "openid" email: str = "email" profile: str = "profile" AuthScopes = _AuthScopesBuilder( "auth.globus.org", known_scopes=[ "view_authentications", "view_clients", "view_clients_and_scopes", "view_identities", "view_identity_set", ], ) """Globus Auth scopes. .. listknownscopes:: globus_sdk.scopes.AuthScopes example_scope=view_identity_set """ class _FlowsScopeBuilder(ScopeBuilder): """ The Flows Service breaks the scopes/resource server convention: its resource server is a domain name but its scopes are built around the client id Given that there isn't a simple way to support this more generally (and we shouldn't encourage supporting this more generally), this class serves to build out the scopes accurately specifically for Flows """ def __init__( self, domain_name: str, client_id: str, known_scopes: ScopeBuilderScopes = None, known_url_scopes: ScopeBuilderScopes = None, ) -> None: self._client_id = client_id super().__init__( domain_name, known_scopes=known_scopes, known_url_scopes=known_url_scopes ) def urn_scope_string(self, scope_name: str) -> str: return f"urn:globus:auth:scope:{self._client_id}:{scope_name}" def url_scope_string(self, scope_name: str) -> str: return f"https://auth.globus.org/scopes/{self._client_id}/{scope_name}" FlowsScopes = _FlowsScopeBuilder( "flows.globus.org", "eec9b274-0c81-4334-bdc2-54e90e689b9a", known_url_scopes=[ "manage_flows", "view_flows", "run", "run_status", "run_manage", ], ) """Globus Flows scopes. .. listknownscopes:: globus_sdk.scopes.FlowsScopes """ GroupsScopes = ScopeBuilder( "groups.api.globus.org", known_scopes=[ "all", "view_my_groups_and_memberships", ], ) """Groups scopes. .. listknownscopes:: globus_sdk.scopes.GroupsScopes """ NexusScopes = ScopeBuilder( "nexus.api.globus.org", known_scopes=[ "groups", ], ) """Nexus scopes (internal use only). .. listknownscopes:: globus_sdk.scopes.NexusScopes """ SearchScopes = ScopeBuilder( "search.api.globus.org", known_scopes=[ "all", "globus_connect_server", "ingest", "search", ], ) """Globus Search scopes. .. listknownscopes:: globus_sdk.scopes.SearchScopes """ TimerScopes = ScopeBuilder( "524230d7-ea86-4a52-8312-86065a9e0417", known_url_scopes=[ "timer", ], ) """Globus Timer scopes. .. listknownscopes:: globus_sdk.scopes.TimerScopes """ TransferScopes = ScopeBuilder( "transfer.api.globus.org", known_scopes=[ "all", "gcp_install", ], ) """Globus Transfer scopes. .. listknownscopes:: globus_sdk.scopes.TransferScopes """