from datacatalog.tenancy import Tenants, Projects
from ..jsonschemas import JSONSchemaBaseObject, JSONSchemaCollection
[docs]class TenantIdSchema(JSONSchemaBaseObject):
"""Schema document enumerating all TenantIds"""
pass
[docs]class ProjectNameSchema(JSONSchemaBaseObject):
"""Schema document enumerating all ProjectNames"""
pass
[docs]def get_schemas():
"""Returns the filetype_label subschema
Returns:
JSONSchemaCollection: One or more schema documents
"""
return JSONSchemaCollection(
{'tapis_tenant_id': get_tenant_id_schema(),
'tapis_project_name': get_project_name_schema()})
[docs]def get_tenant_id_schema():
tenant_ids = Tenants.sync().tenant_ids()
setup_args = {'_filename': 'tapis_tenant_id',
'title': 'Tapis Tenant Identifier',
'type': 'string',
'enum': tenant_ids}
return TenantIdSchema(**setup_args).to_jsonschema()
[docs]def get_project_name_schema():
project_names = Projects.sync().project_names()
setup_args = {'_filename': 'tapis_project_name',
'title': 'Tapis Project Name',
'type': 'string',
'enum': project_names}
return ProjectNameSchema(**setup_args).to_jsonschema()