videolibrary_get.go raw

   1  package bunny
   2  
   3  import (
   4  	"context"
   5  	"fmt"
   6  )
   7  
   8  // VideoLibrary represents the response of the List and Get Video Library API endpoint.
   9  //
  10  // Bunny.net API docs: https://docs.bunny.net/reference/videolibrarypublic_index2 https://docs.bunny.net/reference/videolibrarypublic_index
  11  type VideoLibrary struct {
  12  	ID *int64 `json:"Id,omitempty"`
  13  
  14  	Name               *string  `json:"Name,omitempty"`
  15  	VideoCount         *int64   `json:"VideoCount,omitempty"`
  16  	TrafficUsage       *int64   `json:"TrafficUsage,omitempty"`
  17  	StorageUsage       *int64   `json:"StorageUsage,omitempty"`
  18  	DateCreated        *string  `json:"DateCreated,omitempty"`
  19  	ReplicationRegions []string `json:"ReplicationRegions,omitempty"`
  20  	APIKey             *string  `json:"ApiKey,omitempty"`
  21  	ReadOnlyAPIKey     *string  `json:"ReadOnlyApiKey,omitempty"`
  22  	HasWatermark       *bool    `json:"HasWatermark,omitempty"`
  23  
  24  	WatermarkPositionLeft *int32  `json:"WatermarkPositionLeft,omitempty"`
  25  	WatermarkPositionTop  *int32  `json:"WatermarkPositionTop,omitempty"`
  26  	WatermarkWidth        *int32  `json:"WatermarkWidth,omitempty"`
  27  	PullZoneID            *int64  `json:"PullZoneId,omitempty"`
  28  	StorageZoneID         *int64  `json:"StorageZoneId,omitempty"`
  29  	WatermarkHeight       *int32  `json:"WatermarkHeight,omitempty"`
  30  	EnabledResolutions    *string `json:"EnabledResolutions,omitempty"`
  31  
  32  	ViAiPublisherID                  *string  `json:"ViAiPublisherId,omitempty"`
  33  	VastTagURL                       *string  `json:"VastTagUrl,omitempty"`
  34  	WebhookURL                       *string  `json:"WebhookUrl,omitempty"`
  35  	CaptionsFontSize                 *int32   `json:"CaptionsFontSize,omitempty"`
  36  	CaptionsFontColor                *string  `json:"CaptionsFontColor,omitempty"`
  37  	CaptionsBackground               *string  `json:"CaptionsBackground,omitempty"`
  38  	UILanguage                       *string  `json:"UILanguage,omitempty"`
  39  	AllowEarlyPlay                   *bool    `json:"AllowEarlyPlay,omitempty"`
  40  	PlayerTokenAuthenticationEnabled *bool    `json:"PlayerTokenAuthenticationEnabled,omitempty"`
  41  	AllowedReferrers                 []string `json:"AllowedReferrers,omitempty"`
  42  	BlockedReferrers                 []string `json:"BlockedReferrers,omitempty"`
  43  	BlockNoneReferrer                *bool    `json:"BlockNoneReferrer,omitempty"`
  44  	EnableMP4Fallback                *bool    `json:"EnableMP4Fallback,omitempty"`
  45  	KeepOriginalFiles                *bool    `json:"KeepOriginalFiles,omitempty"`
  46  	AllowDirectPlay                  *bool    `json:"AllowDirectPlay,omitempty"`
  47  	EnableDRM                        *bool    `json:"EnableDRM,omitempty"`
  48  	Bitrate240p                      *int32   `json:"Bitrate240p,omitempty"`
  49  	Bitrate360p                      *int32   `json:"Bitrate360p,omitempty"`
  50  	Bitrate480p                      *int32   `json:"Bitrate480p,omitempty"`
  51  	Bitrate720p                      *int32   `json:"Bitrate720p,omitempty"`
  52  	Bitrate1080p                     *int32   `json:"Bitrate1080p,omitempty"`
  53  	Bitrate1440p                     *int32   `json:"Bitrate1440p,omitempty"`
  54  	Bitrate2160p                     *int32   `json:"Bitrate2160p,omitempty"`
  55  	APIAccessKey                     *string  `json:"ApiAccessKey,omitempty"`
  56  	ShowHeatmap                      *bool    `json:"ShowHeatmap,omitempty"`
  57  	EnableContentTagging             *bool    `json:"EnableContentTagging,omitempty"`
  58  	PullZoneType                     *int32   `json:"PullZoneType,omitempty"`
  59  	CustomHTML                       *string  `json:"CustomHTML,omitempty"`
  60  	Controls                         *string  `json:"Controls,omitempty"`
  61  	PlayerKeyColor                   *string  `json:"PlayerKeyColor,omitempty"`
  62  	FontFamily                       *string  `json:"FontFamily,omitempty"`
  63  }
  64  
  65  // VideoLibraryGetOpts represents optional query parameters available when Getting or Listing Video Libraries.
  66  type VideoLibraryGetOpts struct {
  67  	IncludeAccessKey bool `url:"includeAccessKey"`
  68  }
  69  
  70  // Get retrieves the Video Library with the given id.
  71  //
  72  // Bunny.net API docs: https://docs.bunny.net/reference/videolibrarypublic_index2
  73  func (s *VideoLibraryService) Get(ctx context.Context, id int64, opts *VideoLibraryGetOpts) (*VideoLibrary, error) {
  74  	path := fmt.Sprintf("videolibrary/%d", id)
  75  	return resourceGet[VideoLibrary](ctx, s.client, path, opts)
  76  }
  77