> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://mediakind.ferndocs.com/harmonic/api/vos/configure-source/update-source-put/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://mediakind.ferndocs.com/_mcp/server. # Update source PUT https://device.example.com:443/cluster1/vos-api/configure/v1/sources_ext/{id} Content-Type: application/json Update source by \{id}. Reference: https://mediakind.ferndocs.com/harmonic/api/vos/configure-source/update-source ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Path parameters - `id` (string, required) — Unique identifier of a source ### Query parameters - `triggerServiceUpdate` (boolean, required) — Need to trigger service update ### Body (application/json) This endpoint expects a com.harmonicinc.vos.app.configure.model.source.Source. - `cspCoreProperties` (com.harmonicinc.vos.app.configure.model.source.CspCoreProperties, optional) - `id` (string, optional) — Unique identifier of a source in UUID format - `inputRedundancyMode` (enum, optional) - Allowed values: `PRIMARY_ONLY`, `MANUAL_SWITCH`, `AUTO_SWITCH`, `AUTO_SWITCH_MANUAL_REVERT`, `AUTO_SWITCH_AUTO_REVERT` - `inputs` (list of com.harmonicinc.vos.app.configure.model.source.Input, optional) — An input is a singular network location from which to receive content - `labels` (list of string, optional) — Labels attached to source for identification - `name` (string, optional) — Display name of a source - `pmtPid` (string, optional) — (Deprecated) PMT PID number of selected program ## Response ### 200 Source Updated - `cspCoreProperties` (com.harmonicinc.vos.app.configure.model.source.CspCoreProperties, optional) - `id` (string, optional) — Unique identifier of a source in UUID format - `inputRedundancyMode` (enum, optional) - Allowed values: `PRIMARY_ONLY`, `MANUAL_SWITCH`, `AUTO_SWITCH`, `AUTO_SWITCH_MANUAL_REVERT`, `AUTO_SWITCH_AUTO_REVERT` - `inputs` (list of com.harmonicinc.vos.app.configure.model.source.Input, optional) — An input is a singular network location from which to receive content - `labels` (list of string, optional) — Labels attached to source for identification - `name` (string, optional) — Display name of a source - `pmtPid` (string, optional) — (Deprecated) PMT PID number of selected program ### 201 Created ## Errors ### 400 Bad Request Error Source Not Updated - `any` ### 401 Unauthorized Error Unauthorized - `any` ### 403 Forbidden Error Forbidden - `any` ### 404 Not Found Error Source Not Updated - `any` ### 409 Conflict Error Source configuration conflict - `any` ## Types ### com.harmonicinc.vos.app.configure.model.source.CspCoreProperties - `insertionPeriodMs` (integer, optional) — insertion Period Ms - `segmentationEventId` (long, optional) — segmentation Event Id String - `segmentationUpid` (string, optional) — segmentation Upid - `segmentationUpidType` (integer, optional) — segmentation Upid Type ### com.harmonicinc.vos.app.configure.model.source.Input - `asiSettings` (com.harmonicinc.vos.app.configure.model.source.AsiInput, optional) - `cloudInputSettings` (com.harmonicinc.vos.app.configure.model.source.CloudInputSettings, optional) - `cloudSourceSetting` (com.harmonicinc.vos.app.configure.model.source.CloudSourceInput, optional) - `cloudlinkSetting` (com.harmonicinc.vos.app.configure.model.source.HarmonicCloudlinkSetting, optional) - `delayLineSettings` (com.harmonicinc.vos.app.configure.model.source.DelayLine_Input, optional) - `demuxSettings` (com.harmonicinc.vos.app.configure.model.source.DemuxInput, optional) - `id` (string, optional) — Unique identifier of an input - `ipSettings` (com.harmonicinc.vos.app.configure.model.source.IP_Input, optional) - `ipSettingsList` (list of com.harmonicinc.vos.app.configure.model.source.IP_Input, optional) — Additional list of settings of IP input - `labels` (list of string, optional) — Labels identifier of an input - `multiviewSettings` (com.harmonicinc.vos.app.configure.model.source.MultiviewInput, optional) - `ottPlayoutSettings` (com.harmonicinc.vos.app.configure.model.source.OttPlayoutInput, optional) - `poolSettings` (com.harmonicinc.vos.app.configure.model.source.PoolInput, optional) - `rank` (integer, optional) — Priority of input to be used. When more than one input avaliable, the one with smaller number will be used as primary input - `rfSettingsV2` (com.harmonicinc.vos.app.configure.model.source.RfInputV2, optional) - `slateSettings` (com.harmonicinc.vos.app.configure.model.source.SlateInput, optional) - `srtSettings` (com.harmonicinc.vos.app.configure.model.source.SrtInput, optional) - `type` (enum, optional) — Source input type - Allowed values: `IP`, `SLATE`, `ZIXI`, `SRT`, `HSP`, `SDI`, `PLAYOUT`, `CLOUDLINK`, `RTMP`, `POOL`, `OTT_PLAYOUT`, `XOS`, `RF`, `WATERMARK`, `CLOUD`, `DEMUX`, `ASI`, `RIST`, `DELAYLINE`, `MULTIVIEW` - `zixiSettings` (com.harmonicinc.vos.app.configure.model.source.ZixiInput, optional) ### com.harmonicinc.vos.app.configure.model.source.AsiInput - `asiCard` (integer, required) — Specify which ASI card to receive the input (value 0 for card 1, and so on). - `asiPort` (integer, required) — Specify which port of the ASI card to receive the input (value 0 for port 1, and so on). - `automaticGrooming` (boolean, optional) — Enable automatic grooming. Might not be supported by all input types. - `grooming` (com.harmonicinc.vos.app.configure.model.source.InputGrooming, optional) - `pcrConstraints` (com.harmonicinc.vos.app.configure.model.source.PcrConstraints, optional) - `programNum` (integer, optional) — Program number of the input stream. Only required in MPTS input. - `sporadicVideoFrames` (boolean, optional) — Specify that sporadic video frames input. Video frames can come in bursts or at random intervals. Typical use case is music streams with still video content. - `tsProgramNumber` (integer, optional) — Indicates the maximum number of programs that can be transcoded from this input. ### com.harmonicinc.vos.app.configure.model.source.CloudInputSettings - `automaticGrooming` (boolean, optional) — Enable automatic grooming. Might not be supported by all input types. - `backupPipeId` (string, optional) — Identifier backup pipe the source originates from - `cloudInputType` (enum, optional) — Cloud input type - Allowed values: `CLOUD_SOURCE`, `CLOUD_EDGE` - `cloudResourceMode` (enum, optional) — Cloud resource mode, determines whether a single stream or multiple different streams are used - Allowed values: `SHARED`, `DEDICATED` - `egressPointId` (string, optional) — Identifier egressPoint the source originates from - `egressPointObjectId` (string, optional) — Identifier egressPoint object the source originates from - `grooming` (com.harmonicinc.vos.app.configure.model.source.InputGrooming, optional) - `name` (string, optional) — CloudSource name the source originates from - `pcrConstraints` (com.harmonicinc.vos.app.configure.model.source.PcrConstraints, optional) - `pipeId` (string, optional) — Identifier pipe the source originates from - `programNum` (integer, optional) — Program number of the input stream. Only required in MPTS input. - `protocol` (string, optional) — SRT protocol - `region` (string, optional) — Region - `regionDisplayName` (string, optional) — Region display name - `sporadicVideoFrames` (boolean, optional) — Specify that sporadic video frames input. Video frames can come in bursts or at random intervals. Typical use case is music streams with still video content. - `srtCloudInputSettings` (com.harmonicinc.vos.app.configure.model.SrtCloudInputSettings, optional) - `userStreamId` (string, optional) — Stream ID for cloud resource ### com.harmonicinc.vos.app.configure.model.source.CloudSourceInput - `automaticGrooming` (boolean, optional) — Enable automatic grooming. Might not be supported by all input types. - `backupPipeId` (string, optional) — Identifier pipe the backup source - `connectionMode` (enum, optional) — SRT connetion establishing mode - Allowed values: `LISTENER`, `CALLER` - `grooming` (com.harmonicinc.vos.app.configure.model.source.InputGrooming, optional) - `name` (string, optional) — CloudSource name the source originates from - `pcrConstraints` (com.harmonicinc.vos.app.configure.model.source.PcrConstraints, optional) - `pipeId` (string, optional) — Identifier pipe the source originates from - `programNum` (integer, optional) — Program number of the input stream. Only required in MPTS input. - `protocol` (string, optional) — SRT protocol - `region` (string, optional) — Region - `sporadicVideoFrames` (boolean, optional) — Specify that sporadic video frames input. Video frames can come in bursts or at random intervals. Typical use case is music streams with still video content. - `srtCloudSourceSettings` (com.harmonicinc.vos.app.configure.model.source.SrtCloudSourceSettings, optional) ### com.harmonicinc.vos.app.configure.model.source.HarmonicCloudlinkSetting - `ipAddress` (string, required) — IP address used to receive the input. IPv4 and IPv6 are supported - `ipPort` (integer, optional) — UDP port used to receive the input - `ipPortRangeEnd` (integer, optional) — UDP port range end used to receive input - `ssmIpAddresses` (list of string, optional) — Source-specific multicast IP addresses - `type` (enum, optional) - Allowed values: `ZIXI`, `HSP` - `uplinkGroupId` (string, optional) — Unique identifier of the uplink Group - `uplinkId` (string, optional) — [Obsoleted]Unique identifier of the uplink ### com.harmonicinc.vos.app.configure.model.source.DelayLine_Input - `delay` (long, required) — Delay in milliseconds. Minimum value is 180000 (ie 3 minutes). It shall be lower than the recording buffer size of the corresponding Loop Record service. - `recordId` (string, required) — Id of the Loop Record service that is recording the stream to play with a delay. - `delayUpdate` (boolean, optional) — Enables a scheduled update of the delay, for example for next daylight saving time transition. nextDelay and nextDelayActivationDate shall be configured. - `nextDelay` (long, optional) — Next delay value in milliseconds - `nextDelayActivationDate` (string, optional) — UTC date when the next delay will be applied. It is expressed by a string with the following format "yyyy-mm-dd hh:mm:ss" ( ex: 2024-11-20 04:00:00 ). ### com.harmonicinc.vos.app.configure.model.source.DemuxInput - `demuxServiceId` (string, required) — Indicates the uuid of the Demux service - `automaticGrooming` (boolean, optional) — Enable automatic grooming. Might not be supported by all input types. - `disableAutoDelete` (boolean, optional) — Disable the automatic deletion of the source when not used anymore after a mux update, False by default - `grooming` (com.harmonicinc.vos.app.configure.model.source.InputGrooming, optional) - `pcrConstraints` (com.harmonicinc.vos.app.configure.model.source.PcrConstraints, optional) - `programNum` (integer, optional) — Program number of the input stream. Only required in MPTS input. - `sporadicVideoFrames` (boolean, optional) — Specify that sporadic video frames input. Video frames can come in bursts or at random intervals. Typical use case is music streams with still video content. ### com.harmonicinc.vos.app.configure.model.source.IP_Input - `ipAddress` (string, required) — IP address used to receive input. IPv4 and IPv6 are supported - `ipPort` (integer, required) — UDP port used to receive input - `automaticGrooming` (boolean, optional) — Enable automatic grooming. Might not be supported by all input types. - `descramblingKey` (string, optional) — CSA key to descramble input - `fecEnable` (boolean, optional) — FEC 2022-1 1D colum and 2D column/line ingress recovery - `grooming` (com.harmonicinc.vos.app.configure.model.source.InputGrooming, optional) - `ipNetworkAddress` (string, optional) — IP network address - `ipPortRangeEnd` (integer, optional) — UDP port range end used to receive input - `pcrConstraints` (com.harmonicinc.vos.app.configure.model.source.PcrConstraints, optional) - `programNum` (integer, optional) — Program number of the input stream. Only required in MPTS input. - `smpte20227TsInput` (com.harmonicinc.vos.app.configure.model.source.Smpte20227Ts_Input, optional) - `sporadicVideoFrames` (boolean, optional) — Specify that sporadic video frames input. Video frames can come in bursts or at random intervals. Typical use case is music streams with still video content. - `ssmIpAddresses` (list of string, optional) — Source-specific multicast IP addresses - `tsProgramNumber` (integer, optional) — Indicates the number of programs in the input TS ### com.harmonicinc.vos.app.configure.model.source.MultiviewInput - `frameRate` (com.harmonicinc.vos.app.configure.model.source.FrameRate, required) - `resolution` (com.harmonicinc.vos.app.configure.model.source.Resolution, required) - `sources` (list of com.harmonicinc.vos.app.configure.model.source.MultiviewComponentSource, required) — Sources that compose the multiview input - `backgroundImage` (string, optional) — Unique identifier of image used for the background. Only PNG format is supported. The resolution of the image should match the resolution of the multiview. - `delay` (integer, optional) — Delay in milliseconds (default: 2000ms). Multiview frame with timecode T will be generated at T+delay. If the delay is too low, timecode synchronization may fail because input frames are not available. ### com.harmonicinc.vos.app.configure.model.source.OttPlayoutInput - `defaultAssetUrl` (string, optional) ### com.harmonicinc.vos.app.configure.model.source.PoolInput - `poolId` (string, required) — Pool ID of pool object; one pool per source ### com.harmonicinc.vos.app.configure.model.source.RfInputV2 - `tuner` (integer, required) — Tuner number from 1 to 4(DVB-S2X) or 1 to 12(ATSC) - `type` (enum, required) — RF card type. - Allowed values: `DVB_S2X`, `ATSC` - `atscTuner` (com.harmonicinc.vos.app.configure.model.source.AtscTuner, optional) - `card` (integer, optional) — Card number from 0 to 2(DVB-S2X) or 0 (ATSC) - `dvbS2XPort` (com.harmonicinc.vos.app.configure.model.source.DvbS2XPort, optional) - `dvbS2XTuner` (com.harmonicinc.vos.app.configure.model.source.DvbS2XTuner, optional) - `tsProgramNumber` (integer, optional) — Indicates the number of programs in the input TS ### com.harmonicinc.vos.app.configure.model.source.SlateInput - `type` (enum, required) — Slate type - Allowed values: `SIGNAL_LOSS`, `CUSTOM` - `enableVideoSlate` (boolean, optional) — Enable run-time update on video slate (graphicFilename). default = false - `graphicFilename` (string, optional) — Title of a graphic in the Asset Acquisition App to be used as the slate video - `imageId` (string, optional) — Unique identifier of image used for the slate - `signalLossSlateSettings` (com.harmonicinc.vos.app.configure.model.source.SignalLossSlateSettings, optional) ### com.harmonicinc.vos.app.configure.model.source.SrtInput - `automaticGrooming` (boolean, optional) — Enable automatic grooming. Might not be supported by all input types. - `cloudlinkGroupId` (string, optional) — Identifier of Cloudlink group the source originates from. - `connectionMode` (enum, optional) — SRT connetion establishing mode - Allowed values: `LISTENER`, `CALLER` - `descramblingKey` (string, optional) — CSA key to descramble input - `descramblingRequired` (boolean, optional) — Whether input requires descrambling - `grooming` (com.harmonicinc.vos.app.configure.model.source.InputGrooming, optional) - `ipNetworkAddress` (string, optional) — Local interface for outgoing connections - `latency` (integer, optional) — Latency, specified for Srt - `pathRedundancyMode` (enum, optional) — Path redundancy mode - Allowed values: `SRT_SOCKET_GROUP`, `ST_2022_7` - `pcrConstraints` (com.harmonicinc.vos.app.configure.model.source.PcrConstraints, optional) - `programNum` (integer, optional) — Program number of the input stream. Only required in MPTS input. - `seamlessInputSwitching` (boolean, optional) — Enable seamless input switching for input redundancy. Default: false - `sourceAddr` (string, optional) — UDP address used to fetch input on Cloudlink RT - `sourcePort` (integer, optional) — UDP port used to fetch input on Cloudlink RT - `sourcePortRangeEnd` (integer, optional) — UDP port range end used to fetch mbts input - `sporadicVideoFrames` (boolean, optional) — Specify that sporadic video frames input. Video frames can come in bursts or at random intervals. Typical use case is music streams with still video content. - `srtConnectionSettings` (list of com.harmonicinc.vos.app.configure.model.SrtConnectionSettings, optional) — SRT connection setting list - `ssmIpAddrs` (list of string, optional) — Source-specific multicast IP addresses - `st20227DelayBufferInMs` (integer, optional) — Buffer delay for reordering RTP packet - `tsProgramNumber` (integer, optional) — Indicates the number of programs in the input TS ### com.harmonicinc.vos.app.configure.model.source.ZixiInput - `automaticGrooming` (boolean, optional) — Enable automatic grooming. Might not be supported by all input types. - `encoderSetting` (com.harmonicinc.vos.app.configure.model.source.ZixiEncoderSetting, optional) - `grooming` (com.harmonicinc.vos.app.configure.model.source.InputGrooming, optional) - `harmonicUplinkSetting` (com.harmonicinc.vos.app.configure.model.source.HarmonicUplinkSetting, optional) - `harmonicUplinkSettingList` (list of com.harmonicinc.vos.app.configure.model.source.HarmonicUplinkSetting, optional) — Basic list of harmonic uplink settings. Used in Harmonic Uplink Input - `pcrConstraints` (com.harmonicinc.vos.app.configure.model.source.PcrConstraints, optional) - `programNum` (integer, optional) — Program number of the input stream. Only required in MPTS input. - `sporadicVideoFrames` (boolean, optional) — Specify that sporadic video frames input. Video frames can come in bursts or at random intervals. Typical use case is music streams with still video content. - `zixiBroadcasterSetting` (any, optional) - `zixiInputType` (enum, optional) — Zixi input type - Allowed values: `HARMONIC_UPLINK`, `ENCODER`, `BROADCASTER` ### com.harmonicinc.vos.app.configure.model.source.InputGrooming - `bitrate` (integer, optional) — Bitrate of the input - `pcrCompliant` (boolean, optional) — Not supported, for future use - `pmtPid` (integer, optional) — PMT PID number of selected program - `programName` (string, optional) — Program name of the input ### com.harmonicinc.vos.app.configure.model.source.PcrConstraints - `maxPcrInterval` (integer, optional) — Maximum PCR interval in milliseconds. Changing this value will trigger service restart and increase the end-to-end latency. - `maxPcrJitter` (integer, optional) — Maximum PCR jitter from real-time in milliseconds. Changing this value will trigger service restart and increase the end-to-end latency. ### com.harmonicinc.vos.app.configure.model.SrtCloudInputSettings - `connectionMode` (enum, optional) — Srt connection mode - Allowed values: `LISTENER`, `CALLER` - `encryptionParam` (com.harmonicinc.vos.app.configure.model.SrtEncryptionParams, optional) - `latency` (integer, optional) — Latency - `srtConnectionInfo` (com.harmonicinc.vos.app.configure.model.SrtConnectionInfo, optional) - `srtConnectionSettingsList` (list of com.harmonicinc.vos.app.configure.model.SrtConnectionSettings, optional) — Srt connection settings list ### com.harmonicinc.vos.app.configure.model.source.SrtCloudSourceSettings - `latency` (integer, optional) — Latency ### com.harmonicinc.vos.app.configure.model.source.Smpte20227Ts_Input - `ipAddress` (string, required) — IP address used to receive input. IPv4 and IPv6 are supported - `ipPort` (integer, required) — UDP port used to receive input - `pathDifferentialDelayMs` (integer, required) — Seamless 2022-7 Path Differential Delay in ms in the range (50ms, 450ms) - `ipNetworkAddress` (string, optional) — IP network address - `ssmIpAddresses` (list of string, optional) — Source-specific multicast IP addresses ### com.harmonicinc.vos.app.configure.model.source.FrameRate - `denominator` (integer, required) — Denominator of framerate - `numerator` (integer, required) — Numerator of framerate ### com.harmonicinc.vos.app.configure.model.source.Resolution - `height` (integer, required) — Height of resolution - `width` (integer, required) — Width of resolution ### com.harmonicinc.vos.app.configure.model.source.MultiviewComponentSource - `closedCaptions` (enum, required) — Processing mode for the closed captions - Allowed values: `e_DISABLE`, `e_PASSTHROUGH` - `regionDest` (com.harmonicinc.vos.app.configure.model.source.MultiviewRegion, required) - `sourceId` (string, required) — Unique identifier of the source to be used in the multiview composition ### com.harmonicinc.vos.app.configure.model.source.AtscTuner - `channel` (integer, required) — Channel. Integer range. Minimum : 2. Maximum : 51. Steps : 1. - `standard` (enum, required) — Standard. Possible values : ATSC_1_0. - Allowed values: `ATSC_1_0` ### com.harmonicinc.vos.app.configure.model.source.DvbS2XPort - `lnbType` (enum, required) — LNB Type. - Allowed values: `C_BAND`, `KU_BAND`, `UNIVERSAL`, `UNIVERSAL_WIDE` - `oscillatorFrequency` (double, required) — Local oscillator frequency in GHz. Decimal range depends on LNB Type. For C_BAND, range from 5Ghz to 6Ghz. For KU_BAND range from 8.5Ghz to 13Ghz. Not applicable for UNIVERSAL and UNIVERSAL_WIDE. - `frequencySpectrum` (enum, optional) — 22 kHz Tone. Applicable only when lnbType is UNIVERSAL or UNIVERSAL_WIDE. - Allowed values: `LOW_BAND`, `HIGH_BAND` ### com.harmonicinc.vos.app.configure.model.source.DvbS2XTuner - `carrierFrequency` (double, required) — Carrier frequency. Decimal range. Minimum : 3. Maximum : 4.2. Steps : 0.000001. - `plsCode` (integer, required) — Physical Layer Scrambling Seed. Integer range. Minimum : 0. Maximum : 262141. Steps : 1. - `polarization` (enum, required) — Polarization. Possible values : VERTICAL (input #1) or HORIZONTAL (input #3). - Allowed values: `HORIZONTAL`, `VERTICAL` - `symbolRate` (double, required) — Symbol rate. Decimal range. Minimum : 1. Maximum : 64. Steps : 0.000001. - `inversion` (enum, optional) - Allowed values: `AUTO`, `INVERTED`, `NORMAL` - `modulationAndFec` (enum, optional) - Allowed values: `QPSK_1_2`, `QPSK_1_4`, `QPSK_1_3`, `QPSK_2_5`, `QPSK_3_5`, `QPSK_2_3`, `QPSK_3_4`, `QPSK_4_5`, `QPSK_5_6`, `QPSK_7_8`, `QPSK_8_9`, `QPSK_9_10`, `QPSK_13_45`, `QPSK_9_20`, `QPSK_11_20`, `QPSK_11_45`, `QPSK_4_15`, `QPSK_14_45`, `QPSK_7_15`, `QPSK_8_15`, `QPSK_32_45`, `_8PSK_3_5`, `_8PSK_2_3`, `_8PSK_3_4`, `_8PSK_5_6`, `_8PSK_8_9`, `_8PSK_9_10`, `_8PSK_23_36`, `_8PSK_25_36`, `_8PSK_13_18`, `_8PSKL_5_9`, `_8PSKL_26_45`, `_8PSK_7_15`, `_8PSK_8_15`, `_8PSK_26_45`, `_8PSK_32_45`, `_16APSK_2_3`, `_16APSK_3_4`, `_16APSK_4_5`, `_16APSK_5_6`, `_16APSK_8_9`, `_16APSK_9_10`, `_16APSK_26_45`, `_16APSK_3_5`, `_16APSK_28_45`, `_16APSK_23_36`, `_16APSK_25_36`, `_16APSK_13_18`, `_16APSK_7_9`, `_16APSK_77_90`, `_16APSKL_5_9`, `_16APSKL_8_15`, `_16APSKL_1_2`, `_16APSKL_3_5`, `_16APSKL_2_3`, `_16APSK_7_15`, `_16APSK_8_15`, `_16APSK_32_45`, `_32APSK_32_45`, `_32APSK_3_4`, `_32APSK_4_5`, `_32APSK_5_6`, `_32APSK_8_9`, `_32APSK_9_10`, `_32APSK_11_15`, `_32APSK_7_9`, `_32APSKL_2_3`, `_32APSK_2_3` - `pilots` (enum, optional) - Allowed values: `AUTO`, `ON`, `OFF` - `rollOff` (enum, optional) - Allowed values: `AUTO`, `RO_0_05`, `RO_0_10`, `RO_0_15`, `RO_0_20`, `RO_0_25`, `RO_0_35` ### com.harmonicinc.vos.app.configure.model.source.SignalLossSlateSettings - `insertionSettings` (boolean, optional) — Enable customized insertion settings for slate and set the sampling windows to 5-second for slate insertion. - `insertionThreshold` (integer, optional) — A counter counts the number of 5-second windows with input errors (signal loss, video missing, scrambled PID). When this counter reaches insertionThreshold, the slate is inserted. Range [1,12] - `resetThreshold` (integer, optional) — When the number of consecutive 5-second windows without error reaches resetThreshold, the counter of erroneous windows is reset. Range [1,12] - `revertThreshold` (integer, optional) — A slate is removed when the number of consecutive 5-second windows without error reaches revertThreshold. Range [1,12] ### com.harmonicinc.vos.app.configure.model.SrtConnectionSettings - `ipAddress` (string, optional) — Ip address - `ipNetworkAddress` (string, optional) — Interface - `latency` (integer, optional) — Latency, specified for Srt - `port` (integer, optional) — Port - `srtEncryptionParams` (com.harmonicinc.vos.app.configure.model.SrtEncryptionParams, optional) - `streamId` (string, optional) — Stream id - `streamIndex` (integer, optional) — Stream Index ### com.harmonicinc.vos.app.configure.model.source.ZixiEncoderSetting - `decryptionKey` (string, optional) — Zixi decryption key - `decryptionType` (enum, optional) — Zixi decryption type - Allowed values: `NONE`, `ZIXI_AES_128`, `ZIXI_AES_192`, `ZIXI_AES_256` - `zixiEndPointSetting` (com.harmonicinc.vos.app.configure.model.source.ZixiEndPointSetting, optional) ### com.harmonicinc.vos.app.configure.model.source.HarmonicUplinkSetting - `ipAddress` (string, required) — IP address used to receive the input. IPv4 and IPv6 are supported - `descramblingKey` (string, optional) — CSA key to descramble input - `descramblingRequired` (boolean, optional) — Whether input requires descrambling - `ipPort` (integer, optional) — UDP port used to receive the input - `ipPortRangeEnd` (integer, optional) — UDP port range end used to receive input - `ssmIpAddresses` (list of string, optional) — Source-specific multicast IP addresses - `uplinkGroupId` (string, optional) — Unique identifier of the uplink Group - `uplinkId` (string, optional) — [Obsoleted]Unique identifier of the uplink ### com.harmonicinc.vos.app.configure.model.SrtEncryptionParams - `encryptionKey` (string, optional) — Srt encryption key - `encryptionType` (enum, optional) — Srt encryption type - Allowed values: `AES_128`, `AES_192`, `AES_256`, `NO_ENCRYPTION` ### com.harmonicinc.vos.app.configure.model.SrtConnectionInfo - `lowerLatencyLimit` (integer, optional) — Lower latency limit (based on recommended latency) - `rtt` (integer, optional) — Round-trip time - `upperLatencyLimit` (integer, optional) — Upper latency limit ### com.harmonicinc.vos.app.configure.model.source.MultiviewRegion - `height` (integer, required) — Height of the mulitview region - `topLeftCornerX` (integer, required) — Top left X coordinate of the mulitview region - `topLeftCornerY` (integer, required) — Top left Y coordinate of the mulitview region - `width` (integer, required) — Width of the mulitview region ### com.harmonicinc.vos.app.configure.model.source.ZixiEndPointSetting - `zixiEndpointId` (string, required) — Unique identifier of the zixi endpoint ## Examples ### Example 1 **Request** ```json {} ``` **Response** ```json { "cspCoreProperties": { "insertionPeriodMs": 1, "segmentationEventId": 1, "segmentationUpid": "string", "segmentationUpidType": 1 }, "id": "string", "inputRedundancyMode": "PRIMARY_ONLY", "inputs": [ { "asiSettings": { "asiCard": 1, "asiPort": 1, "automaticGrooming": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "sporadicVideoFrames": true, "tsProgramNumber": 1 }, "cloudInputSettings": { "automaticGrooming": true, "backupPipeId": "string", "cloudInputType": "CLOUD_SOURCE", "cloudResourceMode": "SHARED", "egressPointId": "string", "egressPointObjectId": "string", "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "name": "string", "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "pipeId": "string", "programNum": 1, "protocol": "string", "region": "string", "regionDisplayName": "string", "sporadicVideoFrames": true, "srtCloudInputSettings": { "connectionMode": "LISTENER", "encryptionParam": { "encryptionKey": "string", "encryptionType": "AES_128" }, "latency": 1, "srtConnectionInfo": { "lowerLatencyLimit": 1, "rtt": 1, "upperLatencyLimit": 1 }, "srtConnectionSettingsList": [ { "ipAddress": "string", "ipNetworkAddress": "string", "latency": 1, "port": 1, "srtEncryptionParams": { "encryptionKey": "string", "encryptionType": "AES_128" }, "streamId": "string", "streamIndex": 1 } ] }, "userStreamId": "string" }, "cloudSourceSetting": { "automaticGrooming": true, "backupPipeId": "string", "connectionMode": "LISTENER", "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "name": "string", "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "pipeId": "string", "programNum": 1, "protocol": "string", "region": "string", "sporadicVideoFrames": true, "srtCloudSourceSettings": { "latency": 1 } }, "cloudlinkSetting": { "ipAddress": "string", "ipPort": 1, "ipPortRangeEnd": 1, "ssmIpAddresses": [ "string" ], "type": "ZIXI", "uplinkGroupId": "string", "uplinkId": "string" }, "delayLineSettings": { "delay": 1, "recordId": "string", "delayUpdate": true, "nextDelay": 1, "nextDelayActivationDate": "string" }, "demuxSettings": { "demuxServiceId": "string", "automaticGrooming": true, "disableAutoDelete": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "sporadicVideoFrames": true }, "id": "string", "ipSettings": { "ipAddress": "string", "ipPort": 1, "automaticGrooming": true, "descramblingKey": "string", "fecEnable": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "ipNetworkAddress": "string", "ipPortRangeEnd": 1, "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "smpte20227TsInput": { "ipAddress": "string", "ipPort": 1, "pathDifferentialDelayMs": 1, "ipNetworkAddress": "string", "ssmIpAddresses": [ "string" ] }, "sporadicVideoFrames": true, "ssmIpAddresses": [ "string" ], "tsProgramNumber": 1 }, "ipSettingsList": [ { "ipAddress": "string", "ipPort": 1, "automaticGrooming": true, "descramblingKey": "string", "fecEnable": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "ipNetworkAddress": "string", "ipPortRangeEnd": 1, "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "smpte20227TsInput": { "ipAddress": "string", "ipPort": 1, "pathDifferentialDelayMs": 1, "ipNetworkAddress": "string", "ssmIpAddresses": [ "string" ] }, "sporadicVideoFrames": true, "ssmIpAddresses": [ "string" ], "tsProgramNumber": 1 } ], "labels": [ "string" ], "multiviewSettings": { "frameRate": { "denominator": 1, "numerator": 1 }, "resolution": { "height": 1, "width": 1 }, "sources": [ { "closedCaptions": "e_DISABLE", "regionDest": { "height": 1, "topLeftCornerX": 1, "topLeftCornerY": 1, "width": 1 }, "sourceId": "string" } ], "backgroundImage": "string", "delay": 1 }, "ottPlayoutSettings": { "defaultAssetUrl": "string" }, "poolSettings": { "poolId": "string" }, "rank": 1, "rfSettingsV2": { "tuner": 1, "type": "DVB_S2X", "atscTuner": { "channel": 1, "standard": "ATSC_1_0" }, "card": 1, "dvbS2XPort": { "lnbType": "C_BAND", "oscillatorFrequency": 1.1, "frequencySpectrum": "LOW_BAND" }, "dvbS2XTuner": { "carrierFrequency": 1.1, "plsCode": 1, "polarization": "HORIZONTAL", "symbolRate": 1.1, "inversion": "AUTO", "modulationAndFec": "QPSK_1_2", "pilots": "AUTO", "rollOff": "AUTO" }, "tsProgramNumber": 1 }, "slateSettings": { "type": "SIGNAL_LOSS", "enableVideoSlate": true, "graphicFilename": "string", "imageId": "string", "signalLossSlateSettings": { "insertionSettings": true, "insertionThreshold": 1, "resetThreshold": 1, "revertThreshold": 1 } }, "srtSettings": { "automaticGrooming": true, "cloudlinkGroupId": "string", "connectionMode": "LISTENER", "descramblingKey": "string", "descramblingRequired": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "ipNetworkAddress": "string", "latency": 1, "pathRedundancyMode": "SRT_SOCKET_GROUP", "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "seamlessInputSwitching": true, "sourceAddr": "string", "sourcePort": 1, "sourcePortRangeEnd": 1, "sporadicVideoFrames": true, "srtConnectionSettings": [ { "ipAddress": "string", "ipNetworkAddress": "string", "latency": 1, "port": 1, "srtEncryptionParams": { "encryptionKey": "string", "encryptionType": "AES_128" }, "streamId": "string", "streamIndex": 1 } ], "ssmIpAddrs": [ "string" ], "st20227DelayBufferInMs": 1, "tsProgramNumber": 1 }, "type": "IP", "zixiSettings": { "automaticGrooming": true, "encoderSetting": { "decryptionKey": "string", "decryptionType": "NONE", "zixiEndPointSetting": { "zixiEndpointId": "string" } }, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "harmonicUplinkSetting": { "ipAddress": "string", "descramblingKey": "string", "descramblingRequired": true, "ipPort": 1, "ipPortRangeEnd": 1, "ssmIpAddresses": [ "string" ], "uplinkGroupId": "string", "uplinkId": "string" }, "harmonicUplinkSettingList": [ { "ipAddress": "string", "descramblingKey": "string", "descramblingRequired": true, "ipPort": 1, "ipPortRangeEnd": 1, "ssmIpAddresses": [ "string" ], "uplinkGroupId": "string", "uplinkId": "string" } ], "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "sporadicVideoFrames": true, "zixiBroadcasterSetting": null, "zixiInputType": "HARMONIC_UPLINK" } } ], "labels": [ "string" ], "name": "string", "pmtPid": "string" } ``` **SDK Code** ```python import requests url = "https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id" querystring = {"triggerServiceUpdate":"true"} payload = {} headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.put(url, json=payload, headers=headers, params=querystring) print(response.json()) ``` ```javascript const url = 'https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true'; const options = { method: 'PUT', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true" payload := strings.NewReader("{}") req, _ := http.NewRequest("PUT", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.put("https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{}") .asString(); ``` ```php request('PUT', 'https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true', [ 'body' => '{}', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true"); var request = new RestRequest(Method.PUT); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PUT" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ### Example 2 **Request** ```json {} ``` **Response** ```json { "cspCoreProperties": { "insertionPeriodMs": 1, "segmentationEventId": 1, "segmentationUpid": "string", "segmentationUpidType": 1 }, "id": "string", "inputRedundancyMode": "PRIMARY_ONLY", "inputs": [ { "asiSettings": { "asiCard": 1, "asiPort": 1, "automaticGrooming": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "sporadicVideoFrames": true, "tsProgramNumber": 1 }, "cloudInputSettings": { "automaticGrooming": true, "backupPipeId": "string", "cloudInputType": "CLOUD_SOURCE", "cloudResourceMode": "SHARED", "egressPointId": "string", "egressPointObjectId": "string", "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "name": "string", "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "pipeId": "string", "programNum": 1, "protocol": "string", "region": "string", "regionDisplayName": "string", "sporadicVideoFrames": true, "srtCloudInputSettings": { "connectionMode": "LISTENER", "encryptionParam": { "encryptionKey": "string", "encryptionType": "AES_128" }, "latency": 1, "srtConnectionInfo": { "lowerLatencyLimit": 1, "rtt": 1, "upperLatencyLimit": 1 }, "srtConnectionSettingsList": [ { "ipAddress": "string", "ipNetworkAddress": "string", "latency": 1, "port": 1, "srtEncryptionParams": { "encryptionKey": "string", "encryptionType": "AES_128" }, "streamId": "string", "streamIndex": 1 } ] }, "userStreamId": "string" }, "cloudSourceSetting": { "automaticGrooming": true, "backupPipeId": "string", "connectionMode": "LISTENER", "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "name": "string", "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "pipeId": "string", "programNum": 1, "protocol": "string", "region": "string", "sporadicVideoFrames": true, "srtCloudSourceSettings": { "latency": 1 } }, "cloudlinkSetting": { "ipAddress": "string", "ipPort": 1, "ipPortRangeEnd": 1, "ssmIpAddresses": [ "string" ], "type": "ZIXI", "uplinkGroupId": "string", "uplinkId": "string" }, "delayLineSettings": { "delay": 1, "recordId": "string", "delayUpdate": true, "nextDelay": 1, "nextDelayActivationDate": "string" }, "demuxSettings": { "demuxServiceId": "string", "automaticGrooming": true, "disableAutoDelete": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "sporadicVideoFrames": true }, "id": "string", "ipSettings": { "ipAddress": "string", "ipPort": 1, "automaticGrooming": true, "descramblingKey": "string", "fecEnable": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "ipNetworkAddress": "string", "ipPortRangeEnd": 1, "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "smpte20227TsInput": { "ipAddress": "string", "ipPort": 1, "pathDifferentialDelayMs": 1, "ipNetworkAddress": "string", "ssmIpAddresses": [ "string" ] }, "sporadicVideoFrames": true, "ssmIpAddresses": [ "string" ], "tsProgramNumber": 1 }, "ipSettingsList": [ { "ipAddress": "string", "ipPort": 1, "automaticGrooming": true, "descramblingKey": "string", "fecEnable": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "ipNetworkAddress": "string", "ipPortRangeEnd": 1, "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "smpte20227TsInput": { "ipAddress": "string", "ipPort": 1, "pathDifferentialDelayMs": 1, "ipNetworkAddress": "string", "ssmIpAddresses": [ "string" ] }, "sporadicVideoFrames": true, "ssmIpAddresses": [ "string" ], "tsProgramNumber": 1 } ], "labels": [ "string" ], "multiviewSettings": { "frameRate": { "denominator": 1, "numerator": 1 }, "resolution": { "height": 1, "width": 1 }, "sources": [ { "closedCaptions": "e_DISABLE", "regionDest": { "height": 1, "topLeftCornerX": 1, "topLeftCornerY": 1, "width": 1 }, "sourceId": "string" } ], "backgroundImage": "string", "delay": 1 }, "ottPlayoutSettings": { "defaultAssetUrl": "string" }, "poolSettings": { "poolId": "string" }, "rank": 1, "rfSettingsV2": { "tuner": 1, "type": "DVB_S2X", "atscTuner": { "channel": 1, "standard": "ATSC_1_0" }, "card": 1, "dvbS2XPort": { "lnbType": "C_BAND", "oscillatorFrequency": 1.1, "frequencySpectrum": "LOW_BAND" }, "dvbS2XTuner": { "carrierFrequency": 1.1, "plsCode": 1, "polarization": "HORIZONTAL", "symbolRate": 1.1, "inversion": "AUTO", "modulationAndFec": "QPSK_1_2", "pilots": "AUTO", "rollOff": "AUTO" }, "tsProgramNumber": 1 }, "slateSettings": { "type": "SIGNAL_LOSS", "enableVideoSlate": true, "graphicFilename": "string", "imageId": "string", "signalLossSlateSettings": { "insertionSettings": true, "insertionThreshold": 1, "resetThreshold": 1, "revertThreshold": 1 } }, "srtSettings": { "automaticGrooming": true, "cloudlinkGroupId": "string", "connectionMode": "LISTENER", "descramblingKey": "string", "descramblingRequired": true, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "ipNetworkAddress": "string", "latency": 1, "pathRedundancyMode": "SRT_SOCKET_GROUP", "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "seamlessInputSwitching": true, "sourceAddr": "string", "sourcePort": 1, "sourcePortRangeEnd": 1, "sporadicVideoFrames": true, "srtConnectionSettings": [ { "ipAddress": "string", "ipNetworkAddress": "string", "latency": 1, "port": 1, "srtEncryptionParams": { "encryptionKey": "string", "encryptionType": "AES_128" }, "streamId": "string", "streamIndex": 1 } ], "ssmIpAddrs": [ "string" ], "st20227DelayBufferInMs": 1, "tsProgramNumber": 1 }, "type": "IP", "zixiSettings": { "automaticGrooming": true, "encoderSetting": { "decryptionKey": "string", "decryptionType": "NONE", "zixiEndPointSetting": { "zixiEndpointId": "string" } }, "grooming": { "bitrate": 1, "pcrCompliant": true, "pmtPid": 1, "programName": "string" }, "harmonicUplinkSetting": { "ipAddress": "string", "descramblingKey": "string", "descramblingRequired": true, "ipPort": 1, "ipPortRangeEnd": 1, "ssmIpAddresses": [ "string" ], "uplinkGroupId": "string", "uplinkId": "string" }, "harmonicUplinkSettingList": [ { "ipAddress": "string", "descramblingKey": "string", "descramblingRequired": true, "ipPort": 1, "ipPortRangeEnd": 1, "ssmIpAddresses": [ "string" ], "uplinkGroupId": "string", "uplinkId": "string" } ], "pcrConstraints": { "maxPcrInterval": 100, "maxPcrJitter": 50 }, "programNum": 1, "sporadicVideoFrames": true, "zixiBroadcasterSetting": null, "zixiInputType": "HARMONIC_UPLINK" } } ], "labels": [ "string" ], "name": "string", "pmtPid": "string" } ``` **SDK Code** ```python import requests url = "https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id" querystring = {"triggerServiceUpdate":"true"} payload = {} headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.put(url, json=payload, headers=headers, params=querystring) print(response.json()) ``` ```javascript const url = 'https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true'; const options = { method: 'PUT', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true" payload := strings.NewReader("{}") req, _ := http.NewRequest("PUT", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.put("https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{}") .asString(); ``` ```php request('PUT', 'https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true', [ 'body' => '{}', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true"); var request = new RestRequest(Method.PUT); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://device.example.com/cluster1/vos-api/configure/v1/sources_ext/id?triggerServiceUpdate=true")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PUT" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```