openapi: 3.0.3
info:
title: Wowza Streaming Engine REST advanced_token_authentication stream_targets API
description: Complete REST API for Wowza Streaming Engine. Auto-converted from Swagger 1.2 (http://localhost:8089/swagger.json) to OpenAPI 3.0.3 for public documentation.
version: 2.0.0
contact:
name: Wowza Media Systems
url: https://www.wowza.com/docs/wowza-streaming-engine-rest-api
license:
name: Wowza Media Systems
url: https://www.wowza.com
servers:
- url: http://localhost:8087
description: Wowza Streaming Engine Server
security:
- basicAuth: []
tags:
- name: stream_targets
description: "Operations related to stream targets. A stream target is a destination for a stream. Stream targets can be Wowza Video edge resources; custom, external destinations, target destinations.\n \n ### Wowza CDN Stream Targets\n Wowza CDN stream targets distribute streams to players. When you create a live stream in the API, a Wowza CDN stream target is created automatically. \n \n \n In contrast, you can use ``/stream_targets/wowza_cdn`` endpoints to manually create Wowza CDN stream targets and associate them with transcoders.\n \n \n With Wowza CDN stream targets, you can use geo-blocking to control locations where your stream can be viewed, and you can use token authentication to restrict access to streams. Advanced configuration properties are available for Wowza CDN stream targets.\n \n ### Custom Stream Targets\n Custom stream targets connect to external CDNs to deliver streams to viewers. You manually create custom stream targets and associate them to a transcoder."
x-displayName: Stream Targets
paths:
/stream_targets:
get:
summary: Fetch all stream targets
description: This operation lists limited details for custom stream targets and Wowza CDN stream targets. For detailed information, fetch a single stream target of a specific type.
operationId: listStreamTargets
tags:
- stream_targets
parameters:
- $ref: '#/components/parameters/assignable'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/per_page'
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/stream_targets\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/stream_targets'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
/stream_targets/{id}:
get:
summary: Fetch a stream target
description: This operation shows the details of a specific stream target whether it be a Wowza CDN, custom, Facebook Live, or LinkedIn Live stream target.
operationId: showStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/2adffc17\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/2adffc17';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
parameters:
- name: id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
stream_target_custom:
$ref: '#/components/schemas/stream_target_custom'
stream_target_wowza_cdn:
$ref: '#/components/schemas/stream_target_fastly'
stream_target_facebook:
$ref: '#/components/schemas/stream_target_facebook'
stream_target_linkedin:
$ref: '#/components/schemas/stream_target_linkedin'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
/stream_targets/custom:
post:
summary: Create a custom stream target
description: This operation creates a custom stream target for an external, third-party destination.
operationId: createCustomStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"POST\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/custom\" \\\n -d $'{\n \"stream_target_custom\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}'\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/custom';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'POST',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"stream_target_custom\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}));\nreq.end();\n"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/custom_stream_target_create_input'
description: Provide the details of the custom stream target to create in the body of the request.
required: true
responses:
'201':
description: Success
content:
application/json:
schema:
type: object
properties:
stream_target_custom:
$ref: '#/components/schemas/stream_target_custom'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
get:
summary: Fetch all custom stream targets
description: This operation lists limited details for all of your custom stream targets. For detailed information, fetch a single custom stream target.
operationId: listCustomStreamTargets
tags:
- stream_targets
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/per_page'
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/custom\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/custom';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/stream_targets_custom'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
/stream_targets/custom/{id}:
get:
summary: Fetch a custom stream target
description: This operation shows the details of a specific custom stream target.
operationId: showCustomStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/custom/2adffc17\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/custom/2adffc17';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
parameters:
- name: id
in: path
required: true
description: The unique alphanumeric string that identifies the custom stream target.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
stream_target_custom:
$ref: '#/components/schemas/stream_target_custom'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
patch:
summary: Update a custom stream target
description: This operation updates a custom stream target.
operationId: updateCustomStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"PATCH\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/custom/2adffc17\" \\\n -d $'{\n \"stream_target_custom\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}'\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/custom/2adffc17';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname',\n path: path,\n method: 'PATCH',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"stream_target_custom\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}));\nreq.end();\n"
parameters:
- name: id
in: path
required: true
description: The unique alphanumeric string that identifies the custom stream target.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/custom_stream_target_update_input'
description: Provide the details of the custom stream target to update in the body of the request.
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
stream_target_custom:
$ref: '#/components/schemas/custom_stream_target_patch_response'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
delete:
summary: Delete a custom stream target
description: 'This operation deletes a custom stream target.
Note: You can''t remove stream targets that have an asset_id. Assets must be removed by sending a DEL request to the /assets endpoint. '
operationId: deleteCustomStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"DELETE\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/custom/2adffc17\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/custom/2adffc17';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'DELETE',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n // no data being returned, just: 204 NO CONTENT\n console.log(res.statusCode);\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
parameters:
- name: id
in: path
required: true
description: The unique alphanumeric string that identifies the custom stream target.
schema:
type: string
- name: force
in: query
required: false
description: When `true`, forces a hard delete by first disconnecting the stream target from any associated transcoder and then deleting it.
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
/stream_targets/wowza_cdn:
post:
summary: Create a Wowza CDN stream target
description: (Available from version 1.4) This operation creates a Wowza CDN stream target to deliver your stream using the Wowza CDN.
operationId: createFastlyStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"POST\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/wowza_cdn\" \\\n -d $'{\n \"stream_target_wowza_cdn\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}'\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/wowza_cdn';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'POST',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"stream_target_wowza_cdn\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}));\nreq.end();\n"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/fastly_stream_target_create_input'
description: Provide the details of the Wowza CDN stream target to create in the body of the request.
required: true
responses:
'201':
description: Success
content:
application/json:
schema:
type: object
required:
- stream_target_wowza_cdn
properties:
stream_target_wowza_cdn:
$ref: '#/components/schemas/stream_target_fastly'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
get:
summary: Fetch all Wowza CDN stream targets
description: (Available from version 1.4) This operation lists limited details for all of your Wowza CDN stream targets. For detailed information, fetch a single target.
operationId: listFastlyStreamTargets
tags:
- stream_targets
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/per_page'
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/wowza_cdn\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/wowza_cdn';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/stream_targets_fastly'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
/stream_targets/wowza_cdn/{id}:
get:
summary: Fetch a Wowza CDN stream target
description: (Available from version 1.4) This operation shows the details of a specific Wowza CDN stream target.
operationId: showFastlyStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/wowza_cdn/2adffc17\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/wowza_cdn/2adffc17';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
parameters:
- name: id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- stream_target_wowza_cdn
properties:
stream_target_wowza_cdn:
$ref: '#/components/schemas/stream_target_fastly'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
patch:
summary: Update a Wowza CDN stream target
description: (Available from version 1.4) This operation updates a Wowza CDN stream target.
operationId: updateFastlyStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"PATCH\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/wowza_cdn/2adffc17\" \\\n -d $'{\n \"stream_target_wowza_cdn\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}'\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/wowza_cdn/2adffc17';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname',\n path: path,\n method: 'PATCH',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"stream_target_wowza_cdn\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}));\nreq.end();\n"
parameters:
- name: id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/fastly_stream_target_update_input'
description: Provide the details of the Wowza CDN stream target to update in the body of the request.
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- stream_target_wowza_cdn
properties:
stream_target_wowza_cdn:
$ref: '#/components/schemas/fastly_stream_target_patch_response'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
delete:
summary: Delete a Wowza CDN stream target
description: '(Available from version 1.4) This operation deletes a Wowza CDN stream target.
Note: You can''t remove stream targets that have an asset_id. Assets must be removed by sending a DEL request to the /assets endpoint. '
operationId: deleteFastlyStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"DELETE\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/wowza_cdn/2adffc17\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/wowza_cdn/2adffc17';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'DELETE',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n // no data being returned, just: 204 NO CONTENT\n console.log(res.statusCode);\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
parameters:
- name: id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
- name: force
in: query
required: false
description: When `true`, forces a hard delete by first disconnecting the stream target from any associated transcoder and then deleting it.
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
/stream_targets/{id}/regenerate_connection_code:
put:
summary: Regenerate the connection code for any stream target
description: This operation regenerates the connection code of any kind of stream target.
operationId: regenerateConnectionCodeStreamTarget
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"PUT\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/2adffc17/regenerate_connection_code\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/2adffc17/regenerate_connection_code';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'PUT',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.end();\n"
parameters:
- name: id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- stream_target
properties:
stream_target:
type: object
title: stream_target
properties:
connection_code:
type: string
description: A six-character, alphanumeric string that allows select encoders, such as Wowza Streaming Engine or the Wowza GoCoder app, to send an encoded stream to a stream target in Wowza Video. The code can be used once and expires 24 hours after it's created.
example: 0cd2e8
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
/stream_targets/{stream_target_id}/properties:
post:
summary: Configure a property for a stream target
description: 'This operation configures a property for a stream target. The properties available will depend on the *provider* you are using and are noted in the key descriptions below. For example, if you are using the provider **Wowza CDN on Fastly**, look for that in the descriptions.
For a comprehensive resource describing the use of advanced properties, see [Set advanced properties with the Wowza Video REST API](https://www.wowza.com/docs/how-to-set-advanced-properties-by-using-the-wowza-video-rest-api).'
operationId: createStreamTargetProperty
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"POST\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/2adffc17/properties\" \\\n -d $'{\n \"property\": {\n \"key\": \"chunkSize\",\n \"section\": \"hls\",\n \"value\": 6\n }\n}'\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/2adffc17/properties';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'POST',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"property\": {\n \"key\": \"chunkSize\",\n \"section\": \"hls\",\n \"value\": 6\n }\n}));\nreq.end();\n"
parameters:
- name: stream_target_id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/stream_target_property_create_input'
- $ref: '#/components/schemas/stream_target_properties_create_input'
description: Provide the details of the property or properties to configure in the body of the request. You must include either *property* or *properties* in the request as the root object.
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/stream_target_property_create_input_repsonse'
- $ref: '#/components/schemas/stream_target_properties_create_input_response'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
get:
summary: Fetch all properties of a stream target
description: "This operation shows the details of all of the properties assigned to a specific stream target. The properties returned will depend on the *provider* you are using and are noted in the key descriptions below.\n\n\n For a comprehensive resource describing the use of advanced properties, see [Set advanced properties with the Wowza Video\n REST API](https://www.wowza.com/docs/how-to-set-advanced-properties-by-using-the-wowza-video-rest-api)."
operationId: listStreamTargetProperties
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/2adffc17/properties\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/2adffc17/properties';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
parameters:
- name: stream_target_id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/stream_target_properties'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
/stream_targets/{stream_target_id}/properties/{id}:
get:
summary: Fetch a property of a stream target
description: "This operation shows the details of a specific property assigned to a specific stream target. The properties returned will depend on the *provider* you are using and are noted in the key descriptions below. \n\n\n For a comprehensive resource describing the use of advanced properties, see [Set advanced properties with the Wowza Video\n REST API](https://www.wowza.com/docs/how-to-set-advanced-properties-by-using-the-wowza-video-rest-api)."
operationId: showStreamTargetProperty
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/2adffc17/properties/hls-chunkSize\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/2adffc17/properties/hls-chunkSize';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
parameters:
- name: stream_target_id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
- name: id
in: path
required: true
description: The unique string that identifies the stream target property. The string contains the *section* and the *key*, connected by a dash. For example, **hls-chunkSize**.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/stream_target_property_create_input_repsonse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
delete:
summary: Delete a stream target property
description: This operation removes a property from a stream target.
operationId: deleteStreamTargetProperty
tags:
- stream_targets
x-codeSamples:
- lang: Shell
source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"DELETE\" \\\n \"${WV_HOST}/api/v2.0/stream_targets/2adffc17/properties/hls-chunkSize\"\n"
- lang: JavaScript
source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/stream_targets/2adffc17/properties/hls-chunkSize';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'DELETE',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n // no data being returned, just: 204 NO CONTENT\n console.log(res.statusCode);\n}).on('error', function(e) {\n console.log(e.message);\n});\n"
parameters:
- name: stream_target_id
in: path
required: true
description: The unique alphanumeric string that identifies the stream target.
schema:
type: string
- name: id
in: path
required: true
description: The unique string that identifies the stream target property. The string contains the *section* and the *key*, connected by a dash. For example, **hls-chunkSize**.
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/Error410'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error422'
components:
schemas:
stream_target_properties_create_input_response:
type: object
title: properties
description: ''
required:
- properties
properties:
properties:
type: array
description: An array of properties. The property configuration consists of a key/value pair and the section of the stream target configuration table the key/value pair is stored in. You can only set an array of properties on a Fastly or Akamai stream target. Available from version 1.7.
items:
$ref: '#/components/schemas/stream_target_property'
example:
properties:
- key: acao
section: hls
value: http://www.example.com
- key: chunkSize
section: hls
value: 6
- key: relativePlaylists
section: playlist
value: true
custom_stream_target_create_input:
description: ''
allOf:
- $ref: '#/components/schemas/custom_stream_target_input'
example:
stream_target_custom:
name: My Custom Stream Target
primary_url: rtmp://p.ep123456.i.akamaientrypoint.net/EntryPoint
provider: rtmp
stream_name: c8467d50@123456
fastly_stream_target_update_input:
type: object
description: ''
required:
- stream_target_wowza_cdn
properties:
stream_target_wowza_cdn:
type: object
title: stream_target_wowza_cdn
description: ''
properties:
name:
type: string
description: 'A descriptive name for the stream target. Maximum 255 characters.
**Example:** "name": "My Updated Stream Target"'
example: My Updated Stream Target
custom_origin_region:
type: string
description: "The region where your Wowza Streaming Engine instance is located. Available from version 1.6.\n\nValid values:\n * **us** - United States\n * **eu** - Europe\n * **asia** - Asia\n * **sa** - South America\n * **india** - India\n\n\n**Example:** \"custom_origin_region\": \"us\""
custom_origin_url:
type: string
description: 'The Wowza Streaming Engine instance''s domain or IP address starting with http:// or https://. Available from version 1.6.
**Note:** You can find the **Host - Server** address on the home page of Wowza Streaming Engine under **Application Connection Settings**.'
url_suffix:
type: string
description: "The path to append to the end of the playback url to make it a valid URL, to have playback through the Wowza Video Flowplayer. This is available for HLS playback only and necessary for stream targets with a custom origin.\n\nYou must have a **url_suffix** to enable the Share Stream feature for this stream target. The Share Stream feature enables you to host the player and use the Wowza Video player for your viewers to view your stream. \n\nExample: \"custom_origin/cW8JTDFr\""
delivery_protocols:
type: array
description: 'Specifies the protocols sent to the stream target. Valid values are **hls** and **dash** (MPEG-DASH). The default is **hls**. Available from version 1.7.
**Note:** If you enable more than one protocol, you''ll incur egress charges for each protocol you select.
See Protect streams for Google Widevine and Microsoft PlayReady devices with EZDRM and the Wowza Video REST API for an example of setting MPEG-DASH as a delivery protocol for digital rights management (DRM) use.
**Example:** See response body sample'
items:
type: string
properties:
hls:
type: string
description: Sends an HLS stream to the stream target.
dash:
type: string
description: Sends a MPEG-DASH stream to the target.
force_ssl_playback:
type: boolean
description: 'If **true**, requires users to play the stream over HTTPS. If **false**, the default, users can play the stream over HTTPS or HTTP.
**Example:** "force_ssl_playback": true'
example: ''
geoblock_enabled:
type: boolean
description: 'If **true**, controls access to the stream from specific locations and, optionally, IP addresses. The default is **false**.
**Example:** "geoblock_enabled": true'
example: ''
geoblock_by_location:
type: string
description: 'Specifies whether to **allow** or **deny** access to the stream from specific locations. The default is **disabled**.
**Example:** "geoblock_location": "allow"'
example: ''
enum:
- allow
- deny
- disabled
geoblock_country_codes:
type: string
description: 'Required when *geoblock_by_location* is **allow** or **deny**. The locations affected by the geo-blocking. Enter a comma-separated list of capitalized two-letter ISO 3166-1 country codes. For a list, see [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) on Wikipedia.
**Example:** "geoblock_country_codes": "CA, DE"'
example: ''
geoblock_ip_override:
type: string
description: 'Specifies whether specific IP addresses can override the locations that are allowed or restricted. **allow** permits access from IP addresses within a location that''s been blocked, while **deny** restricts access from IP addresses within locations that are allowed. The default is **disabled**.
**Example:** "geoblock_ip_override": "allow"'
example: ''
enum:
- allow
- deny
- disabled
geoblock_ip_addresses:
type: string
description: 'Required when *geoblock_ip_override* is **allow** or **deny**. Addresses that can access or restrict the stream even if they''re within a specified geo-blocked location. Enter a comma-separated list of up to about 40 IPv4 and IPv6 IP addresses that always allow or deny streaming based on the *geoblock_ip_override* value.
Troubleshooting: The limit of 40 IP addresses is approximate because all the security information (SSL playback, geoblocking countries and IP addresses, referer header, and token auth) count toward an overall metadata limit. If you have fewer than 40 IP addresses and still receive a 422: Invalid Record (Geoblock IP addresses) error, see Geo-block Wowza CDN on Fastly stream targets with the Wowza Video REST API for more ways to lower the character count.**Example:**
"geoblock_ip_addresses": "77.12.34.567, 78.23.45.678"'
example: ''
properties:
type: array
description: 'Configures one or more stream target properties. The property configuration consists of a key/value pair and the section of the stream target configuration table the key/value pair is stored in. Available from version 1.7.
**Example:** See response body sample'
items:
$ref: '#/components/schemas/stream_target_property_fastly'
referer_enabled:
type: boolean
description: 'If **true**, controls access to the stream from specific domains. The client or player requesting access to the stream must send the Referer header so the origin of the request can be validated. The default is **false**.
**Note:** If you change *referer_enabled* to **false** after configuring the referer policy, then later re-enable it, you''ll need to re-configure the other referer policy values as well.
Available from version 1.7. For more information about the Referer header, see the [HTTP specification](https://tools.ietf.org/html/rfc7231#section-5.5.2).
**Example:** "referer_enabled": true'
example: ''
referer_allow_empty:
type: boolean
description: 'The Referer header sent by the client or player can be empty and not identify the origin of the request. The default is **false** when *referer_enabled* is **true**. While less secure, if you know you''ll have viewers with a client or player that won''t send a Referer header, you can specify **true** to allow an empty Referer header so those viewers can still access the stream.
Available from version 1.7.
**Example:** "referer_allow_empty": true'
example: ''
referer_policy:
type: string
description: 'Specifies whether to **allow** or **deny** access to the stream from specific domains. The default is **allow** when *referer_enabled* is **true**. Specify the domains to allow or deny in *referer_domains*.
Available from version 1.7.
**Example:** "referer_policy": "allow"'
example: ''
enum:
- allow
- deny
referer_domains:
type: string
description: 'Domains that are either allowed or blocked from accessing the stream. Enter a comma-separated list of domains that are always allowed or denied access based on the *referer_policy* value. Required when *referer_enabled* is **true**.
We recommend you enter the simplest form of the domain as possible, but you do need to build out the domain to the level of subdomains you want to allow or deny. You can fully express to the subdomain (_mysubdomain.example.com_) to specify that single, specific subdomain or you can use a wildcard (*) to cover all subdomains at a specific level (_*.example.com_).
**Example:** _example.com, *.example.com, *.mysubdomain.example.com_
If you entered the above example value for *referer_domains*, and *referer_policy* is **allow**, the following domains are allowed access to the stream: "referer_domains": "example.com, example2.com"'
example: ''
token_auth_enabled:
type: boolean
description: 'If **true**, token authentication protects the stream by ensuring that it''s delivered only to authorized viewers and can''t be shared by unauthorized links or player hijacking attacks. The default is **false**.
**Example:** "token_auth_enabled": true'
example: ''
token_auth_shared_secret:
type: string
description: 'The shared secret of the token authentication. Must contain only hexadecimal characters and be an even number of total characters not exceeding 32.
**Example:** "token_auth_shared_secret": "12345678ABCDEF"'
example: ''
token_auth_playlist_only:
type: boolean
description: 'If **true**, Wowza Video uses token authentication to protect the master playlist only and leaves individual media playlists and media segments unprotected. This feature enables playback compatibility with media players that don’t support the *withCredentials* property. It may also be useful when addressing token auth compatibility issues with specific browsers. The default is **false**.
**Note**: If you''ve enabled MPEG-DASH on your stream target, `token_auth_playlist_only` applies to both the `playlist.m3u8` for HLS and `manifest.mpd` for MPEG-DASH.
**Example:** "token_auth_playlist_only": true'
example: ''
example:
name: My Updated Wowza CDN Stream Target
fastly_stream_target_input:
type: object
description: ''
required:
- stream_target_wowza_cdn
properties:
stream_target_wowza_cdn:
type: object
title: stream_target_wowza_cdn
description: ''
required:
- name
properties:
name:
type: string
description: A descriptive name for the stream target. Maximum 255 characters.
example: My Stream Target
custom_origin_region:
type: string
description: "The region where your Wowza Streaming Engine instance is located. Available from version 1.6.\n\nValid values:\n * **us** - United States\n * **eu** - Europe\n * **asia** - Asia\n * **sa** - South America\n * **india** - India\n\n\n**Example:** \"custom_origin_region\": \"us\""
custom_origin_url:
type: string
description: 'The Wowza Streaming Engine instance''s domain or IP address starting with http:// or https://. Available from version 1.6.
**Note:** You can find the **Host - Server** address on the home page of Wowza Streaming Engine under **Application Connection Settings**.'
url_suffix:
type: string
description: "The path to append to the end of the playback url to make it a valid URL, to have playback through the Wowza Video Flowplayer. This is available for HLS playback only and necessary for stream targets with a custom origin. \n\nYou must have a **url_suffix** to enable the Share Stream feature for this stream target. The Share Stream feature enables you to host the player and use the Wowza Video player for your viewers to view your stream. \n\nExample: \"custom_origin/cW8JTDFr\""
delivery_protocols:
type: array
description: 'Specifies the protocols sent to the stream target. Valid values are **hls** and **dash** (MPEG-DASH). The default is **hls**. Available from version 1.7.
**Note:** If you enable more than one protocol, you''ll incur egress charges for each protocol you select.
See Protect streams for Google Widevine and Microsoft PlayReady devices with EZDRM and the Wowza Video REST API for an example of setting MPEG-DASH as a delivery protocol for digital rights management (DRM) use.
**Example:** See response body sample'
items:
type: string
properties:
hls:
type: string
description: Sends an HLS stream to the stream target.
dash:
type: string
description: Sends a MPEG-DASH stream to the target.
force_ssl_playback:
type: boolean
description: 'If **true**, requires users to play the stream over HTTPS. If **false**, the default, users can play the stream over HTTPS or HTTP.
**Example:** "force_ssl_playback": true'
example: ''
geoblock_enabled:
type: boolean
description: 'If **true**, controls access to the stream from specific locations and, optionally, IP addresses. The default is **false**.
**Example:** "geoblock_enabled": true'
example: ''
geoblock_by_location:
type: string
description: 'Specifies whether to **allow** or **deny** access to the stream from specific locations. The default is **disabled**.
**Example:** "geoblock_location": "allow"'
example: ''
enum:
- allow
- deny
- disabled
geoblock_country_codes:
type: string
description: 'Required when *geoblock_by_location* is **allow** or **deny**. The locations affected by the geo-blocking. Enter a comma-separated list of capitalized two-letter ISO 3166-1 country codes. For a list, see [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) on Wikipedia.
**Example:** "geoblock_country_codes": "CA, DE"'
example: ''
geoblock_ip_override:
type: string
description: 'Specifies whether specific IP addresses can override the locations that are allowed or restricted. **allow** permits access from IP addresses within a location that''s been blocked, while **deny** restricts access from IP addresses within locations that are allowed. The default is **disabled**.
**Example:** "geoblock_ip_override": "allow"'
example: ''
enum:
- allow
- deny
- disabled
geoblock_ip_addresses:
type: string
description: "Required when *geoblock_ip_override* is **allow** or **deny**. Addresses that can access or restrict the stream even if they're within a specified geo-blocked location. Enter a comma-separated list of up to about 40 IPv4 and IPv6 IP addresses that always allow or deny streaming based on the *geoblock_ip_override* value. \n\nTroubleshooting: The limit of 40 IP addresses is approximate because all the security information (SSL playback, geoblocking countries and IP addresses, referer header, and token auth) count toward an overall metadata limit. If you have fewer than 40 IP addresses and still receive a 422: Invalid Record (Geoblock IP addresses) error, see Geo-block Wowza CDN on Fastly stream targets with the Wowza Video REST API for more ways to lower the character count.\n\n**Example:**
\"geoblock_ip_addresses\": \"77.12.34.567, 78.23.45.678\""
example: ''
properties:
type: array
description: 'Configures one or more stream target properties. The property configuration consists of a key/value pair and the section of the stream target configuration table the key/value pair is stored in. Available from version 1.7.
**Example:** See response body sample'
items:
$ref: '#/components/schemas/stream_target_property_fastly'
referer_enabled:
type: boolean
description: 'If **true**, controls access to the stream from specific domains. The client or player requesting access to the stream must send the Referer header so the origin of the request can be validated. The default is **false**.
**Note:** If you change *referer_enabled* to **false** after configuring the referer policy, then later re-enable it, you''ll need to re-configure the other referer policy values as well.
Available from version 1.7.
For more information about the Referer header, see the [HTTP specification](https://tools.ietf.org/html/rfc7231#section-5.5.2).
**Example:** "referer_enabled": true'
example: ''
referer_allow_empty:
type: boolean
description: 'The Referer header sent by the client or player can be empty and not identify the origin of the request. The default is **false** when *referer_enabled* is **true**. While less secure, if you know you''ll have viewers with a client or player that won''t send a Referer header, you can specify **true** to allow an empty Referer header so those viewers can still access the stream.
Available from version 1.7.
**Example:** "referer_allow_empty": true'
example: ''
referer_policy:
type: string
description: 'Specifies whether to **allow** or **deny** access to the stream from specific domains. The default is **allow** when *referer_enabled* is **true**. Specify the domains to allow or deny in *referer_domains*.
Available from version 1.7.
**Example:** "referer_policy": "allow"'
example: ''
enum:
- allow
- deny
referer_domains:
type: string
description: 'Domains that are either allowed or blocked from accessing the stream. Enter a comma-separated list of domains that are always allowed or denied access based on the *referer_policy* value. Required when *referer_enabled* is **true**.
We recommend you enter the simplest form of the domain as possible, but you do need to build out the domain to the level of subdomains you want to allow or deny. You can fully express to the subdomain (_mysubdomain.example.com_) to specify that single, specific subdomain or you can use a wildcard (*) to cover all subdomains at a specific level (_*.example.com_).
**Example:** _example.com, *.example.com, *.mysubdomain.example.com_
If you entered the above example value for *referer_domains*, and *referer_policy* is **allow**, the following domains are allowed access to the stream: "referer_domains": "example.com, example2.com"'
example: ''
token_auth_enabled:
type: boolean
description: 'If **true**, token authentication protects the stream by ensuring that it''s delivered only to authorized viewers and can''t be shared by unauthorized links or player hijacking attacks. The default is **false**.
**Example:** "token_auth_enabled": true'
example: ''
token_auth_shared_secret:
type: string
description: 'The shared secret of the token authentication. Must contain only hexadecimal characters and be an even number of total characters not exceeding 32.
**Example:** "token_auth_shared_secret": "12345678ABCDEF"'
example: ''
token_auth_playlist_only:
type: boolean
description: 'If **true**, Wowza Video uses token authentication to protect the master playlist only and leaves individual media playlists and media segments unprotected. This feature enables playback compatibility with media players that don’t support the *withCredentials* property. It may also be useful when addressing token auth compatibility issues with specific browsers. The default is **false**.
**Note**: If you''ve enabled MPEG-DASH on your stream target, `token_auth_playlist_only` applies to both the `playlist.m3u8` for HLS and `manifest.mpd` for MPEG-DASH.
**Example:** "token_auth_playlist_only": true'
example: ''
fastly_stream_target_patch_response:
type: object
title: stream_target_wowza_cdn
description: ''
properties:
created_at:
type: string
description: The date and time that the stream target was created.
example: ''
format: date-time
custom_origin_region:
type: string
description: The region where your Wowza Streaming Engine instance is located. Available from version 1.6.
example: ''
format: string
custom_origin_url:
type: string
description: The Wowza Streaming Engine instance's domain or IP address. Available from version 1.6.
example: ''
format: string
url_suffix:
type: string
description: "The path appended to the end of the playback url to make it a valid URL, to have playback throuogh the Wowza Video Flowplayer. This is available for HLS playback only and necessary for stream targets with a custom origin.\n\nYou must have a **url_suffix** to enable the Share Stream feature for this stream target. The Share Stream feature enables you to host the player and use the Wowza Video player for your viewers to view your stream. \n\nExample: \"custom_origin/cW8JTDFr\""
example: ''
format: string
delivery_protocols:
type: array
description: An array of the delivery protocols available for this stream target. Available from version 1.7.
example: ''
items:
type: string
force_ssl_playback:
type: boolean
description: If **true**, requires users to play the stream over HTTPS. If **false**, the default, users can play the stream over HTTPS or HTTP.
example: ''
geoblock_enabled:
type: boolean
description: If **true**, controls access to the stream from specific locations and, optionally, IP addresses. The default is **false**.
example: ''
geoblock_by_location:
type: string
description: Specifies whether to **allow** or **deny** access to the stream from specific locations. The default is **disabled**.
example: ''
enum:
- allow
- deny
- disabled
geoblock_country_codes:
type: string
description: Required when *geoblock_by_location* is **allow** or **deny**. The locations affected by the geo-blocking. Enter a comma-separated list of capitalized two-letter ISO 3166-1 country codes. For a list, see [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) on Wikipedia.
example: ''
geoblock_ip_override:
type: string
description: Specifies whether specific IP addresses can override the locations that are allowed or restricted. **allow** permits access from IP addresses within a location that's been blocked, while **deny** restricts access from IP addresses within locations that are allowed. The default is **disabled**.
example: ''
enum:
- allow
- deny
- disabled
geoblock_ip_addresses:
type: string
description: Required when *geoblock_ip_override* is **allow** or **deny**. Addresses that can access or restrict the stream even if they're within a specified geo-blocked location. Enter a comma-separated list of IPv4 and IPv6 IP addresses that always allow or deny streaming based on the *geoblock_ip_override* value.
example: ''
id:
type: string
description: The unique alphanumeric string that identifies the stream target.
example: ''
name:
type: string
description: A descriptive name for the stream target. Maximum 255 characters.
example: ''
playback_urls:
type: object
description: Web addresses that the target uses to play streams.
properties:
hls:
type: array
description: Web address that the target uses to play HLS streams.
items:
type: object
title: hls
properties:
name:
type: string
description: The name of the playback URL.
example: default
url:
type: string
description: The playback URL.
example: ''
referer_enabled:
type: boolean
description: 'If **true**, controls access to the stream from specific domains. The client or player requesting access to the stream must send the Referer header so the origin of the request can be validated. The default is **false**.
**Note:** If you change *referer_enabled* to **false** after configuring the referer policy, then later re-enable it, you''ll need to re-configure the other referer policy values as well.
Available from version 1.7. For more information about the Referer header, see the [HTTP specification](https://tools.ietf.org/html/rfc7231#section-5.5.2).'
example: ''
referer_allow_empty:
type: boolean
description: 'The Referer header sent by the client or player can be empty and not identify the origin of the request. The default is **false** when *referer_enabled* is **true**. While less secure, if you know you''ll have viewers with a client or player that won''t send a Referer header, you can specify **true** to allow an empty Referer header so those viewers can still access the stream.
Available from version 1.7.'
example: ''
referer_policy:
type: string
description: 'Specifies whether to **allow** or **deny** access to the stream from specific domains. The default is **allow** when *referer_enabled* is **true**. Specify the domains to allow or deny in *referer_domains*.
Available from version 1.7.'
example: ''
enum:
- allow
- deny
referer_domains:
type: string
description: 'Domains that are either allowed or blocked from accessing the stream. Enter a comma-separated list of domains that are always allowed or denied access based on the *referer_policy* value. Required when *referer_enabled* is **true**.
We recommend you enter the simplest form of the domain as possible, but you do need to build out the domain to the level of subdomains you want to allow or deny. You can fully express to the subdomain (_mysubdomain.example.com_) to specify that single, specific subdomain or you can use a wildcard (*) to cover all subdomains at a specific level (_*.example.com_).
**Example:** _example.com, *.example.com, *.mysubdomain.example.com_
If you entered the above example value for *referer_domains*, and *referer_policy* is **allow**, the following domains are allowed access to the stream: "backup_url": "rtmp://b.ep337857.i.akamaientrypoint.net/EntryPoint"'
example: rtmp://b.ep337857.i.akamaientrypoint.net/EntryPoint
playback_urls:
type: object
title: Hash of playback URLs
description: 'Web addresses that the target uses to play streams. Available from version 1.7.
**Example:** See response body sample'
properties:
hls:
type: string
description: Web address that the target uses to play HLS streams. "password": "cb1e77e98d"'
example: cb1e77e98d
username:
type: string
description: The username or ID that the target uses for RTMP authentication. Not for use with the akamai_cupertino custom *provider*.
example: '319699'
stream_target_property_fastly:
type: object
title: property
description: ''
required:
- key
- section
- value
properties:
key:
type: string
description: 'The key of the property.
The following table lists the available property keys.
Key | Description
----------------|-------------
**acao** | Explicitly specifies the origin that can access the stream. While most streams won''t need the origin explicitly set, you might use this property for older players that don''t send the Referer header in their stream request.
**chunkSize** | Defines the duration of the time-based audio and video chunks that Wowza Video delivers to the target.
**convertAMFData** | Determines whether Wowza Video converts incoming AMF data into ID3 tags.
**playlistSeconds** | Defines the maximum allowable length of the playlist.
**relativePlaylists** | Allows the viewer to watch the stream over HTTP and HTTPS, whichever protocol their browser calls.'
example: ''
enum:
- acao
- chunkSize
- convertAMFData
- playlistSeconds
- relativePlaylists
section:
type: string
description: 'The section of the stream target configuration table that contains the
property.
Section | Valid keys for the section
----------------|-------------
**hls** | **acao**, **chunkSize**, and **convertAMFData**
**playlist** | **playlistSeconds** and **relativePlaylists**'
example: ''
enum:
- hls
- playlist
value:
type: string
description: '
The value of the property.
The following table provides information about valid values for each property key.
Key(s) | Values for the key
----------------|-------------
**acao** | Displays as **http://<_origin_>**
**chunkSize** | Valid values are the integers **2**, **4**, **6**, **8**, and **10**.
**convertAMFData**