Metadata

Summary: Create and manage metadata

addMetadata: Update or Add new Metadata.

agavepy.meta.addMetadata(body)

Parameters:

  • body: The metadata to add. (JSON, MetadataRequest)

MetadataRequest schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataRequest.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "associationIds": {
      "description": "UUIDs of associated Agave entities, including the Data to which this Metadata belongs.",
      "type": "array"
    },
    "name": {
      "description": "The name of this metadata",
      "type": "string"
    },
    "schemaId": {
      "description": "The UUID of the schema that should be used to validate this request.",
      "type": "string"
    },
    "value": {
      "description": "A free text or JSON string containing the metadata stored for the given associationIds",
      "type": "string"
    }
  },
  "required": [
    "name",
    "value"
  ],
  "title": "AgavePy MetadataRequest schema",
  "type": "object"
}

Response:

  • A single Metadata object

Metadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Metadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "associationIds": {
      "description": "UUIDs of associated Agave entities, including the Data to which this Metadata belongs.",
      "type": "array"
    },
    "created": {
      "description": "A timestamp indicating when this Metadata was created in the metadata store.",
      "type": "string"
    },
    "internalUsername": {
      "description": "The name of the Internal User, if any, who owns this metadata.",
      "type": "string"
    },
    "lastUpdated": {
      "description": "A timestamp indicating when this Metadata was last updated in the metadata store.",
      "type": "string"
    },
    "name": {
      "description": "The name of this metadata",
      "type": "string"
    },
    "owner": {
      "description": "The API user who owns this Metadata.",
      "type": "string"
    },
    "uuid": {
      "description": "The UUID for this Metadata.",
      "type": "string"
    },
    "value": {
      "description": "A free text or JSON string containing the metadata stored for the given associationIds",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Metadata schema",
  "type": "object"
}

listMetadata: List and/or search metadata.

agavepy.meta.listMetadata(limit=250, offset=0, privileged=True, q=None)

Parameters:

  • q: The query to perform. Traditional MongoDB queries are supported (string)
  • limit: The max number of results. (integer)
  • offset: The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit) (integer)
  • privileged: If false, implicit permissions are ignored and only records to which the user has explicit permissions are returned (boolean)

Response:

  • Array of MetadataResponse objects

deleteMetadata: Remove Metadata from the system.

agavepy.meta.deleteMetadata(uuid)

Parameters:

  • uuid: The uuid of the metadata item (string)

Response:

  • A single EmptyMetadata object

EmptyMetadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/EmptyMetadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "required": [],
  "title": "AgavePy EmptyMetadata schema",
  "type": "object"
}

getMetadata: Retrieve Metadata.

agavepy.meta.getMetadata(uuid, limit=250, offset=0)

Parameters:

  • uuid: The uuid of the metadata item (string)
  • limit: The max number of results. (integer)
  • offset: The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit) (integer)

Response:

  • A single Metadata object

Metadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Metadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "associationIds": {
      "description": "UUIDs of associated Agave entities, including the Data to which this Metadata belongs.",
      "type": "array"
    },
    "created": {
      "description": "A timestamp indicating when this Metadata was created in the metadata store.",
      "type": "string"
    },
    "internalUsername": {
      "description": "The name of the Internal User, if any, who owns this metadata.",
      "type": "string"
    },
    "lastUpdated": {
      "description": "A timestamp indicating when this Metadata was last updated in the metadata store.",
      "type": "string"
    },
    "name": {
      "description": "The name of this metadata",
      "type": "string"
    },
    "owner": {
      "description": "The API user who owns this Metadata.",
      "type": "string"
    },
    "uuid": {
      "description": "The UUID for this Metadata.",
      "type": "string"
    },
    "value": {
      "description": "A free text or JSON string containing the metadata stored for the given associationIds",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Metadata schema",
  "type": "object"
}

updateMetadata: Update or Add new Metadata.

agavepy.meta.updateMetadata(body, uuid)

Parameters:

  • uuid: The uuid of the metadata item (string)
  • body: The metadata to update. (JSON, MetadataRequest)

MetadataRequest schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataRequest.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "associationIds": {
      "description": "UUIDs of associated Agave entities, including the Data to which this Metadata belongs.",
      "type": "array"
    },
    "name": {
      "description": "The name of this metadata",
      "type": "string"
    },
    "schemaId": {
      "description": "The UUID of the schema that should be used to validate this request.",
      "type": "string"
    },
    "value": {
      "description": "A free text or JSON string containing the metadata stored for the given associationIds",
      "type": "string"
    }
  },
  "required": [
    "name",
    "value"
  ],
  "title": "AgavePy MetadataRequest schema",
  "type": "object"
}

Response:

  • A single Metadata object

Metadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Metadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "associationIds": {
      "description": "UUIDs of associated Agave entities, including the Data to which this Metadata belongs.",
      "type": "array"
    },
    "created": {
      "description": "A timestamp indicating when this Metadata was created in the metadata store.",
      "type": "string"
    },
    "internalUsername": {
      "description": "The name of the Internal User, if any, who owns this metadata.",
      "type": "string"
    },
    "lastUpdated": {
      "description": "A timestamp indicating when this Metadata was last updated in the metadata store.",
      "type": "string"
    },
    "name": {
      "description": "The name of this metadata",
      "type": "string"
    },
    "owner": {
      "description": "The API user who owns this Metadata.",
      "type": "string"
    },
    "uuid": {
      "description": "The UUID for this Metadata.",
      "type": "string"
    },
    "value": {
      "description": "A free text or JSON string containing the metadata stored for the given associationIds",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Metadata schema",
  "type": "object"
}

addSchema: Add a new Metadata Schema.

agavepy.meta.addSchema(body)

Parameters:

  • body: A valid JSON Schema object (JSON, string)

Response:

  • A single MetadataSchema object

MetadataSchema schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataSchema.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "created": {
      "description": "A timestamp indicating when this Metadata was created in the metadata schema store.",
      "type": "string"
    },
    "internalUsername": {
      "description": "The name of the Internal User, if any, who owns this schema.",
      "type": "string"
    },
    "lastUpdated": {
      "description": "A timestamp indicating when this Metadata was last updated in the metadata schema store.",
      "type": "string"
    },
    "owner": {
      "description": "The API user who owns this Schema.",
      "type": "string"
    },
    "schema": {
      "description": "A JSON Schema",
      "type": "string"
    },
    "uuid": {
      "description": "The UUID for this Schema.",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy MetadataSchema schema",
  "type": "object"
}

searchSchema: Retrieve Metadata Schemata.

agavepy.meta.searchSchema(uuid, limit=250, offset=0)

Parameters:

  • uuid: The uuid of the metadata schema item (string)
  • limit: The max number of results. (integer)
  • offset: The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit) (integer)

Response:

  • A single MetadataSchema object

MetadataSchema schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataSchema.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "created": {
      "description": "A timestamp indicating when this Metadata was created in the metadata schema store.",
      "type": "string"
    },
    "internalUsername": {
      "description": "The name of the Internal User, if any, who owns this schema.",
      "type": "string"
    },
    "lastUpdated": {
      "description": "A timestamp indicating when this Metadata was last updated in the metadata schema store.",
      "type": "string"
    },
    "owner": {
      "description": "The API user who owns this Schema.",
      "type": "string"
    },
    "schema": {
      "description": "A JSON Schema",
      "type": "string"
    },
    "uuid": {
      "description": "The UUID for this Schema.",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy MetadataSchema schema",
  "type": "object"
}

deleteSchema: Remove Metadata Schema from the system.

agavepy.meta.deleteSchema(uuid)

Parameters:

  • uuid: The uuid of the metadata schema item (string)

Response:

  • A single EmptyMetadata object

EmptyMetadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/EmptyMetadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "required": [],
  "title": "AgavePy EmptyMetadata schema",
  "type": "object"
}

getSchema: Retrieve Metadata Schemata.

agavepy.meta.getSchema(uuid, limit=250, offset=0)

Parameters:

  • uuid: The uuid of the metadata schema item (string)
  • limit: The max number of results. (integer)
  • offset: The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit) (integer)

Response:

  • A single MetadataSchema object

MetadataSchema schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataSchema.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "created": {
      "description": "A timestamp indicating when this Metadata was created in the metadata schema store.",
      "type": "string"
    },
    "internalUsername": {
      "description": "The name of the Internal User, if any, who owns this schema.",
      "type": "string"
    },
    "lastUpdated": {
      "description": "A timestamp indicating when this Metadata was last updated in the metadata schema store.",
      "type": "string"
    },
    "owner": {
      "description": "The API user who owns this Schema.",
      "type": "string"
    },
    "schema": {
      "description": "A JSON Schema",
      "type": "string"
    },
    "uuid": {
      "description": "The UUID for this Schema.",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy MetadataSchema schema",
  "type": "object"
}

updateSchema: Update or Add a new Metadata Schema.

agavepy.meta.updateSchema(body, uuid)

Parameters:

  • uuid: The uuid of the metadata schema item (string)
  • body: A valid JSON Schema object (JSON, string)

Response:

  • A single MetadataSchema object

MetadataSchema schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataSchema.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "created": {
      "description": "A timestamp indicating when this Metadata was created in the metadata schema store.",
      "type": "string"
    },
    "internalUsername": {
      "description": "The name of the Internal User, if any, who owns this schema.",
      "type": "string"
    },
    "lastUpdated": {
      "description": "A timestamp indicating when this Metadata was last updated in the metadata schema store.",
      "type": "string"
    },
    "owner": {
      "description": "The API user who owns this Schema.",
      "type": "string"
    },
    "schema": {
      "description": "A JSON Schema",
      "type": "string"
    },
    "uuid": {
      "description": "The UUID for this Schema.",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy MetadataSchema schema",
  "type": "object"
}

deleteMetadataPermission: Deletes all permissions on the given metadata.

agavepy.meta.deleteMetadataPermission(uuid)

Parameters:

  • uuid: The uuid of the metadata item (string)

Response:

  • A single EmptyMetadata object

EmptyMetadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/EmptyMetadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "required": [],
  "title": "AgavePy EmptyMetadata schema",
  "type": "object"
}

listMetadataPermissions: Get the permission ACL for this metadata.

agavepy.meta.listMetadataPermissions(uuid, limit=250, offset=0)

Parameters:

  • uuid: The uuid of the metadata item (string)
  • limit: The max number of results. (integer)
  • offset: The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit) (integer)

Response:

  • Array of Permission objects

Permission schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Permission.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "",
      "type": "ACL"
    },
    "username": {
      "description": "Username associate with this permission",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Permission schema",
  "type": "object"
}

updateMetadataPermissions: Add or update a user’s permission for the given metadata.

agavepy.meta.updateMetadataPermissions(body, uuid)

Parameters:

  • uuid: The uuid of the metadata item (string)
  • body: The metadata permission to update. (JSON, MetadataPermissionRequest)

MetadataPermissionRequest schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataPermissionRequest.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "The permission to set",
      "enum": [
        "READ",
        "WRITE",
        "READ_WRITE",
        "ALL",
        "NONE"
      ],
      "type": "string"
    },
    "username": {
      "description": "The username of the api user whose permission is to be set.",
      "type": "string"
    }
  },
  "required": [
    "username",
    "permission"
  ],
  "title": "AgavePy MetadataPermissionRequest schema",
  "type": "object"
}

Response:

  • A single Permission object

Permission schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Permission.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "",
      "type": "ACL"
    },
    "username": {
      "description": "Username associate with this permission",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Permission schema",
  "type": "object"
}

deleteMetadataPermissionsForUser: Deletes all permissions on the given metadata.

agavepy.meta.deleteMetadataPermissionsForUser(username, uuid)

Parameters:

  • uuid: The uuid of the metadata item (string)
  • username: The username of the permission owner (string)

Response:

  • A single EmptyMetadata object

EmptyMetadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/EmptyMetadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "required": [],
  "title": "AgavePy EmptyMetadata schema",
  "type": "object"
}

listMetadataPermissionsForUser: Get the permission ACL for this metadata.

agavepy.meta.listMetadataPermissionsForUser(username, uuid)

Parameters:

  • uuid: The uuid of the metadata item (string)
  • username: The username of the permission owner (string)

Response:

  • A single Permission object

Permission schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Permission.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "",
      "type": "ACL"
    },
    "username": {
      "description": "Username associate with this permission",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Permission schema",
  "type": "object"
}

updateMetadataPermissionsForUser: Add or update a user’s permission for the given metadata.

agavepy.meta.updateMetadataPermissionsForUser(body, username, uuid)

Parameters:

  • uuid: The uuid of the metadata item (string)
  • username: The username of the permission owner (string)
  • body: The metadata permission to update. (JSON, MetadataPermissionRequest)

MetadataPermissionRequest schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataPermissionRequest.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "The permission to set",
      "enum": [
        "READ",
        "WRITE",
        "READ_WRITE",
        "ALL",
        "NONE"
      ],
      "type": "string"
    },
    "username": {
      "description": "The username of the api user whose permission is to be set.",
      "type": "string"
    }
  },
  "required": [
    "username",
    "permission"
  ],
  "title": "AgavePy MetadataPermissionRequest schema",
  "type": "object"
}

Response:

  • A single Permission object

Permission schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Permission.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "",
      "type": "ACL"
    },
    "username": {
      "description": "Username associate with this permission",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Permission schema",
  "type": "object"
}

deleteSchemaPermissions: Deletes all permissions on the given schema.

agavepy.meta.deleteSchemaPermissions(uuid)

Parameters:

  • uuid: The uuid of the metadata schema item (string)

Response:

  • A single EmptyMetadata object

EmptyMetadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/EmptyMetadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "required": [],
  "title": "AgavePy EmptyMetadata schema",
  "type": "object"
}

listSchemaPermissions: Get the permission ACL for this schema.

agavepy.meta.listSchemaPermissions(uuid, limit=250, offset=0)

Parameters:

  • uuid: The uuid of the metadata schema item (string)
  • limit: The max number of results. (integer)
  • offset: The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit) (integer)

Response:

  • Array of Permission objects

Permission schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Permission.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "",
      "type": "ACL"
    },
    "username": {
      "description": "Username associate with this permission",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Permission schema",
  "type": "object"
}

updateSchemaPermissions: Add or update a user’s permission for the given schema.

agavepy.meta.updateSchemaPermissions(body, uuid)

Parameters:

  • uuid: The uuid of the metadata schema item (string)
  • body: The schema permission to update. (JSON, MetadataPermissionRequest)

MetadataPermissionRequest schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataPermissionRequest.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "The permission to set",
      "enum": [
        "READ",
        "WRITE",
        "READ_WRITE",
        "ALL",
        "NONE"
      ],
      "type": "string"
    },
    "username": {
      "description": "The username of the api user whose permission is to be set.",
      "type": "string"
    }
  },
  "required": [
    "username",
    "permission"
  ],
  "title": "AgavePy MetadataPermissionRequest schema",
  "type": "object"
}

Response:

  • A single Permission object

Permission schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Permission.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "",
      "type": "ACL"
    },
    "username": {
      "description": "Username associate with this permission",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Permission schema",
  "type": "object"
}

deleteSchemaPermissionsForUser: Deletes all permissions on the given metadata.

agavepy.meta.deleteSchemaPermissionsForUser(username, uuid)

Parameters:

  • uuid: The uuid of the metadata schema item (string)
  • username: The username of the permission owner (string)

Response:

  • A single EmptyMetadata object

EmptyMetadata schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/EmptyMetadata.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "required": [],
  "title": "AgavePy EmptyMetadata schema",
  "type": "object"
}

listSchemaPermissionsForUser: Get the permission ACL for this schema.

agavepy.meta.listSchemaPermissionsForUser(username, uuid)

Parameters:

  • uuid: The uuid of the metadata schema item (string)
  • username: The username of the permission owner (string)

Response:

  • A single Permission object

Permission schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Permission.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "",
      "type": "ACL"
    },
    "username": {
      "description": "Username associate with this permission",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Permission schema",
  "type": "object"
}

updateSchemaPermissionsForUser: Add or update a user’s permission for the given metadata schema.

agavepy.meta.updateSchemaPermissionsForUser(body, username, uuid)

Parameters:

  • uuid: The uuid of the metadata schema item (string)
  • username: The username of the permission owner (string)
  • body: The schema permission to update. (JSON, MetadataPermissionRequest)

MetadataPermissionRequest schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/MetadataPermissionRequest.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "The permission to set",
      "enum": [
        "READ",
        "WRITE",
        "READ_WRITE",
        "ALL",
        "NONE"
      ],
      "type": "string"
    },
    "username": {
      "description": "The username of the api user whose permission is to be set.",
      "type": "string"
    }
  },
  "required": [
    "username",
    "permission"
  ],
  "title": "AgavePy MetadataPermissionRequest schema",
  "type": "object"
}

Response:

  • A single Permission object

Permission schema

{
  "$id": "http://agavepy.readthedocs.io/en/latest/Permission.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "permission": {
      "description": "",
      "type": "ACL"
    },
    "username": {
      "description": "Username associate with this permission",
      "type": "string"
    }
  },
  "required": [],
  "title": "AgavePy Permission schema",
  "type": "object"
}