openapi: 3.0.3 info: title: MediaValet Webhooks API description: |- The MediaValet API is a RESTful, JSON, hypermedia-driven service that supplies data to clients consuming the MediaValet cloud digital asset management (DAM) platform. The service applies business rules, permission rules, and other data processing to standardize what is returned. Requests go to the API gateway at https://api.mediavalet.com and must carry two credentials: an OAuth 2.0 / OpenID Connect Bearer access token issued by https://login.mediavalet.com/connect/token, and a per-account subscription key in the Ocp-Apim-Subscription-Key header. Requests also carry an x-mv-api-version header to select the API version. Access requires a MediaValet subscription and registration in the MediaValet Developer Portal at https://developer.mediavalet.com. PROVENANCE: this definition is derived operation-for-operation from MediaValet's own published Postman collection ("MediaValet API", collection 55cc404f-b818-43ba-87c2-1a07f2a47bd9) served at https://docs.mediavalet.com/api/collections/15676803/TzRUB7XE. Paths, methods, parameters, request bodies, response status codes and examples come from that collection. Schemas are inferred from the collection's request/response example payloads and are indicative rather than authoritative. version: '1.0' contact: name: MediaValet url: https://developer.mediavalet.com termsOfService: https://www.mediavalet.com/terms-of-service servers: - url: https://api.mediavalet.com description: MediaValet API gateway (public) security: - oauth2: - api subscriptionKey: [] tags: - name: Webhooks description: SkyHOOK webhook and Azure Event Grid subscription management for MediaValet events. paths: /skyhook/subscriptions: post: operationId: createWebhookSubscription summary: Create Webhook Subscription description: Create a Webhook subscription. tags: - Webhooks parameters: - name: Authorization in: header required: false description: Authorization header. schema: type: string example: Bearer QXJlbid0IHlvdSB2ZXJ5IG5vc2V5IDpQ requestBody: required: true content: application/json: schema: type: object properties: Events: type: array items: type: object properties: Name: type: string Type: type: string Data: type: object properties: webhook: type: string example: Events: - Name: '{Event Name}' Type: webhook Data: webhook: '{Webhook URL}' responses: '200': description: Successful response. /skyhook/subscriptions/{subscriptionID}: put: operationId: updateWebhookSubscription summary: Update Webhook Subscription description: Update Webhook Subscription. tags: - Webhooks parameters: - name: subscriptionID in: path required: true description: subscriptionID path parameter. schema: type: string - name: Authorization in: header required: false description: Authorization header. schema: type: string example: Bearer QXJlbid0IHlvdSB2ZXJ5IG5vc2V5IDpQ requestBody: required: true content: application/json: schema: type: object properties: Events: type: array items: type: object properties: Name: type: string Type: type: string Data: type: object properties: webhook: type: string example: Events: - Name: '{Event Type}' Type: webhook Data: webhook: '{Webhook URL}' responses: '200': description: Successful response. delete: operationId: deleteSubscription summary: Delete Subscription description: Delete a Subscription. tags: - Webhooks parameters: - name: subscriptionID in: path required: true description: subscriptionID path parameter. schema: type: string - name: Authorization in: header required: false description: Authorization header. schema: type: string example: Bearer QXJlbid0IHlvdSB2ZXJ5IG5vc2V5IDpQ responses: '200': description: Successful response. /skyhook/subscriptions/list: get: operationId: getSubscription summary: Get Subscription description: Return all Events that you are subscribed to. tags: - Webhooks parameters: - name: Authorization in: header required: false description: Authorization header. schema: type: string example: Bearer QXJlbid0IHlvdSB2ZXJ5IG5vc2V5IDpQ responses: '200': description: Successful response. /skyhook/events: get: operationId: getEventsTypes summary: Get Events Types description: Return all Events Types that you can Subscribe to. Take note of the Event Name you will need to create a subscription. tags: - Webhooks parameters: - name: Authorization in: header required: false description: Authorization header. schema: type: string example: Bearer QXJlbid0IHlvdSB2ZXJ5IG5vc2V5IDpQ responses: '200': description: Successful response. components: securitySchemes: oauth2: type: oauth2 description: OAuth 2.0 / OpenID Connect issued by https://iam.mediavalet.com via https://login.mediavalet.com. Send the access token as a Bearer Authorization header. flows: authorizationCode: authorizationUrl: https://login.mediavalet.com/connect/authorize tokenUrl: https://login.mediavalet.com/connect/token refreshUrl: https://login.mediavalet.com/connect/token scopes: openid: OpenID Connect identity profile: User profile claims api: Access the MediaValet API api:service_principal: Service-principal (machine) access to the MediaValet API iam.admin: Administer MediaValet identity and access management iam.provisioning: Provision users and organizations offline_access: Obtain a refresh token clientCredentials: tokenUrl: https://login.mediavalet.com/connect/token scopes: api: Access the MediaValet API api:service_principal: Service-principal (machine) access to the MediaValet API password: tokenUrl: https://login.mediavalet.com/connect/token scopes: openid: OpenID Connect identity api: Access the MediaValet API offline_access: Obtain a refresh token subscriptionKey: type: apiKey in: header name: Ocp-Apim-Subscription-Key description: Per-account API subscription key issued through the MediaValet Developer Portal (Azure API Management).