def update_metadata_field_datasource(field_external_id, entries_external_id, **options): """Updates a metadata field datasource Updates the datasource of a supported field type (currently only enum and set), passed as JSON data. The update is partial: datasource entries with an existing external_id will be updated and entries with new external_id's (or without external_id's) will be appended. See: `Update a metadata field datasource API reference <https://cloudinary.com/documentation/admin_api#update_a_metadata_field_datasource>`_ :param field_external_id: The external id of the field to update :param entries_external_id: :param options: Additional options :rtype: Response """ values = [] for item in entries_external_id: external = only(item, "external_id", "value") if external: values.append(external) uri = [field_external_id, "datasource"] params = {"values": values} return call_metadata_api("put", uri, params, **options)
def list_metadata_fields(**options): """Returns a list of all metadata field definitions See: `Get metadata fields API reference <https://cloudinary.com/documentation/admin_api#get_metadata_fields>`_ :param options: Additional options :rtype: Response """ return call_metadata_api("get", [], {}, **options)
def reorder_metadata_fields(order_by, direction=None, **options): """Reorders metadata fields. :param order_by: Criteria for the order (one of the fields 'label', 'external_id', 'created_at'). :param direction: Optional (gets either asc or desc). :param options: Additional options. :rtype: Response """ uri = ['order'] params = {'order_by': order_by, 'direction': direction} return call_metadata_api('put', uri, params, **options)
def add_metadata_field(field, **options): """Creates a new metadata field definition See: `Create metadata field API reference <https://cloudinary.com/documentation/admin_api#create_a_metadata_field>`_ :param field: The field to add :param options: Additional options :rtype: Response """ params = only(field, "type", "external_id", "label", "mandatory", "default_value", "validation", "datasource") return call_metadata_api("post", [], params, **options)
def metadata_field_by_field_id(field_external_id, **options): """Gets a metadata field by external id See: `Get metadata field by external ID API reference <https://cloudinary.com/documentation/admin_api#get_a_metadata_field_by_external_id>`_ :param field_external_id: The ID of the metadata field to retrieve :param options: Additional options :rtype: Response """ uri = [field_external_id] return call_metadata_api("get", uri, {}, **options)
def delete_metadata_field(field_external_id, **options): """Deletes a metadata field definition. The field should no longer be considered a valid candidate for all other endpoints See: `Delete metadata field API reference <https://cloudinary.com/documentation/admin_api#delete_a_metadata_field_by_external_id>`_ :param field_external_id: The external id of the field to delete :param options: Additional options :return: An array with a "message" key. "ok" value indicates a successful deletion. :rtype: Response """ uri = [field_external_id] return call_metadata_api("delete", uri, {}, **options)
def reorder_metadata_field_datasource(field_external_id, order_by, direction=None, **options): """Reorders metadata field datasource. Currently, supports only value. :param field_external_id: The ID of the metadata field. :param order_by: Criteria for the order. Currently, supports only value. :param direction: Optional (gets either asc or desc). :param options: Additional options. :rtype: Response """ uri = [field_external_id, 'datasource', 'order'] params = {'order_by': order_by, 'direction': direction} return call_metadata_api('post', uri, params, **options)
def update_metadata_field(field_external_id, field, **options): """Updates a metadata field by external id Updates a metadata field definition (partially, no need to pass the entire object) passed as JSON data. See `Generic structure of a metadata field <https://cloudinary.com/documentation/admin_api#generic_structure_of_a_metadata_field>`_ for details. :param field_external_id: The id of the metadata field to update :param field: The field definition :param options: Additional options :rtype: Response """ uri = [field_external_id] params = only(field, "label", "mandatory", "default_value", "validation") return call_metadata_api("put", uri, params, **options)
def restore_metadata_field_datasource(field_external_id, entries_external_ids, **options): """Restores entries in a metadata field datasource Restores (unblocks) any previously deleted datasource entries for a specified metadata field definition. Sets the state of the entries to active. See: `Restore entries in a metadata field datasource API reference <https://cloudinary.com/documentation/admin_api#restore_entries_in_a_metadata_field_datasource>`_ :param field_external_id: The ID of the metadata field :param entries_external_ids: An array of IDs of datasource entries to restore (unblock) :param options: Additional options :rtype: Response """ uri = [field_external_id, 'datasource_restore'] params = {"external_ids": entries_external_ids} return call_metadata_api("post", uri, params, **options)
def delete_datasource_entries(field_external_id, entries_external_id, **options): """Deletes entries in a metadata field datasource Deletes (blocks) the datasource entries for a specified metadata field definition. Sets the state of the entries to inactive. This is a soft delete, the entries still exist under the hood and can be activated again with the restore datasource entries method. See: `Delete entries in a metadata field datasource API reference <https://cloudinary.com/documentation/admin_api#delete_entries_in_a_metadata_field_datasource>`_ :param field_external_id: The id of the field to update :param entries_external_id: The ids of all the entries to delete from the datasource :param options: Additional options :rtype: Response """ uri = [field_external_id, "datasource"] params = {"external_ids": entries_external_id} return call_metadata_api("delete", uri, params, **options)