Update Clipping Profile Metadata

Updates Clipping Profile Metadata

Request

Request syntax:

PATCH /clipping-profiles/Clipping Profile ID/metadata/Metadata ID

Request URL variable:

Define the following variables when submitting the above request:

VariableA variable represents a value that must be replaced. A variable consists of either a URL segment (e.g., "0001" in /0001/) or a query string value (e.g., "3" in mediaTypes=3).Description
Clipping Profile ID RequiredIdentifies a clipping profile by its system-defined or external ID. Use the Get Multiple Clipping Profiles endpoint to retrieve a list of clipping profiles and their IDs.
Metadata ID  RequiredIdentifies a clipping profile metadata ID by its system-defined ID

Request body parameters:

Pass the following request body parameters (pass only the fields you want to update):

NameData TypeDescription
default_valueStringThis is the default value if the input_text is set to “text”.  If the input_type is set to “dropdown” and “include_freeform” is enabled, this will set the free form text to this value, but can still be modified in the clipping tool by the end user.
valuesList of ListsKey/Value string pairs as lists: Syntax [[‘key1’, ‘value 1’],[‘key2’, ‘value 2’]]
input_typeStringSpecifies the type of meta this will be.  Valid values are ‘text’ or ‘dropdown’
include_free_formBooleanAllows you to include a free form option if the input_type is ‘dropdown’
include_nullBooleanAllows you to include “No Value” option if the input_type is set to “dropdown”
keyStringName of the metadata

Response

A successful request returns a 200 OK response that contains the following properties:

NameData TypeDescription
@idStringIndicates the relative path to an endpoint that returns this clipping profile configuration.
@typeStringReturns ClippingProfileMetadata.
createdStringIdentifies the date and time (UTC) this integration was create. Syntax: {YYYY-MM-DDThh:mm:ss.ssssss}Z Example: 2024-04-04T16:35:46.054Z
lastmodBooleanIdentifies the date and time (UTC) this integration was create. Syntax: {YYYY-MM-DDThh:mm:ss.ssssss}Z Example: 2024-04-04T16:35:46.054Z
default_valueStringThis is the default value fi the input_text is set to “text”.  If the input_type is set to “dropdown” and “include_freeform” is enabled, this will set the free form text to this value, but can still be modified in the clipping tool by the end user.
idStringIdentifies a clipping profile integration by its system-defined ID
include_free_formStringIndicates if free form is enabled
include_nullStringIndicates if “No Value” option is enabled
input_typeStringIndicates the type that is being used for the metadata
keyStringThe description of this metadata
ownerStringIndicates the system-defined ID for the user that own this clipping profile integration.
profileStringIndicates the system-defined ID representing the clipping profile
valuesList of ListsKey/Value string pair as lists

Sample Request/Response

Call the [clipping_profiles_integrations_update module](../Resources/Scripts/clipping_profile_integrations_patch.py) (Python 3) to update a clipping profile's metadata. This module imports names from the api_auth module.

			import json
			from pprint import PrettyPrinter
			import requests
			from api_auth import APICredentials, APIParams

			pp = PrettyPrinter().pprint

			class ClippingProfiles:
			"""Class Description"""
			def __init__(self, source_list):
			"""dummy"""
			self.profile_id = None
			self.integration_id = None

			for key, value in source_list.items():
			setattr(self, key, value)

			self.host = "https://services.uplynk.com"
			self.headers = {"Content-Type": "application/json"}

			def run(self):
			"""dummy"""
			self._get_youtube_login_url()

			def _get_youtube_login_url(self):
			"""dummy"""
			end_point = f"/api/v4/clipping-profiles/{self.profile_id}/integrations/{self.integration_id}"
			url = f"{self.host}{end_point}"

			payload = {
			"metamap": {
			"category": "$blue_colors",
			"description": "@desc",
			"keywords": "$blue_colors",
			},
			}

			response = requests.patch(
			url,
			params=APIParams(APICredentials()).get_params({}),
			data=json.dumps(payload),
			headers=self.headers,
			timeout=15
			)

			pp(response.json())

			class_variables = {
			"profile_id": "be1af15490e24399bb6c4f2a36384d66",
			"integration_id": "c3eb485e9b374945a623abc3b883eb78"
			}
			ClippingProfiles(class_variables).run()

Response:

			{
			"@id": "/api/v4/clipping-profiles/be1af15490e24399bb6c4f2a36384d66/metadata/704d17c332624569b3a6414a3422fdd1",
			"@type": "ClippingProfileMetadata",
			"created": "2024-05-07T15:27:41.767Z",
			"default_value": "",
			"id": "704d17c332624569b3a6414a3422fdd1",
			"include_free_form": False,
			"include_null": False,
			"input_type": "dropdown",
			"key": "blue_colors",
			"lastmod": "2024-05-07T15:42:35.345Z",
			"owner": "53b2162d19394227b56d5cdca5c3dc9f",
			"profile": "be1af15490e24399bb6c4f2a36384d66",
			"values": [
			["blue_dark", "Dark Blue"],
			["blue_egyptian", "Egyptian Blue"],
			["blue_liberty", "Liberty"],
			["blue_medium", "Medium Blue"],
			["blue_neon", "Neon Blue"],
			["blue_periwinkle", "Periwinkle"],
			["blue_savoy", "Savoy Blue"],
			["blue_ultra", "Ultramarine"],
			],
			}