Module: Shotstack::Destinations

Defined in:
lib/shotstack/models/destinations.rb

Overview

A destination is a location where assets can be sent to for serving or hosting. Videos, images and audio files that are rendered by the Edit API and source and rendition files generated by the Ingest API can be sent to destinations. You can also fetch a file from any public URL and transfer it to a destination. A file can be sent to one or more destinations including 3rd party destinations. By default all ingested and generated assets are automatically sent to the Shotstack hosting destination. You can opt-out from by setting the Shotstack destination exclude property to true. The following destinations are available:

  • <a href="#tocs_shotstackdestination">ShotstackDestination
  • <a href="#tocs_muxdestination">MuxDestination
  • <a href="#tocs_s3destination">S3Destination
  • <a href="#tocs_googlecloudstoragedestination">GoogleCloudStorageDestination

Class Method Summary collapse

Class Method Details

.build(data) ⇒ Object

Builds the object

Parameters:

  • Data (Mixed) —

    to be matched against the list of anyOf items

Returns:

  • (Object) —

    Returns the model or the data itself



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/shotstack/models/destinations.rb', line 33

def build(data)
  # Go through the list of anyOf items and attempt to identify the appropriate one.
  # Note:
  # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
  #   due to the way the deserialization is made in the base_object template (it just casts without verifying).
  # - TODO: scalar values are de facto behaving as if they were nullable.
  # - TODO: logging when debugging is set.
  openapi_any_of.each do |klass|
    begin
      next if klass == :AnyType # "nullable: true"
      typed_data = find_and_cast_into_type(klass, data)
      return typed_data if typed_data
    rescue # rescue all errors so we keep iterating even if the current item lookup raises
    end
  end

  openapi_any_of.include?(:AnyType) ? data : nil
end

.openapi_any_of ⇒ Object

List of class defined in anyOf (OpenAPI v3)



21
22
23
24
25
26
27
28
# File 'lib/shotstack/models/destinations.rb', line 21

def openapi_any_of
  [
    :'GoogleCloudStorageDestination',
    :'MuxDestination',
    :'S3Destination',
    :'ShotstackDestination'
  ]
end