diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 7bc517f..55974bd 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.299.6 +speakeasyVersion: 1.299.7 sources: livepeer-studio-api: sourceNamespace: livepeer-studio-api - sourceRevisionDigest: sha256:01b8552c43b63c333a66c8c1dcff5e254d77f2a761281d438c260f8ed58129d9 - sourceBlobDigest: sha256:4511db816d2a664c480b324c01768614ebc3b98a486e5e9536b398c85924d2cb + sourceRevisionDigest: sha256:243ffad14247e3266513e7b510c7ef778da71de66d02eafcdd3917de5ce10bc5 + sourceBlobDigest: sha256:c1aae25d460653f90a33cf56b1db61f0a87a5bde1dd2cb55717a89aa2ad7cc02 tags: - latest - main @@ -11,8 +11,8 @@ targets: livepeer-go: source: livepeer-studio-api sourceNamespace: livepeer-studio-api - sourceRevisionDigest: sha256:01b8552c43b63c333a66c8c1dcff5e254d77f2a761281d438c260f8ed58129d9 - sourceBlobDigest: sha256:4511db816d2a664c480b324c01768614ebc3b98a486e5e9536b398c85924d2cb + sourceRevisionDigest: sha256:243ffad14247e3266513e7b510c7ef778da71de66d02eafcdd3917de5ce10bc5 + sourceBlobDigest: sha256:c1aae25d460653f90a33cf56b1db61f0a87a5bde1dd2cb55717a89aa2ad7cc02 outLocation: /github/workspace/repo workflow: workflowVersion: 1.0.0 diff --git a/RELEASES.md b/RELEASES.md index 29b9a65..b3ed1d3 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -8,4 +8,14 @@ Based on: ### Generated - [go v0.1.10] . ### Releases +- [Go v0.1.10] https://github.com/livepeer/livepeer-go/releases/tag/v0.1.10 - . + +## 2024-06-05 00:24:01 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.299.7 (2.338.12) https://github.com/speakeasy-api/speakeasy +### Generated +- [go v0.1.10] . +### Releases - [Go v0.1.10] https://github.com/livepeer/livepeer-go/releases/tag/v0.1.10 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index 0e3fef3..f1e3f3e 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -3,17 +3,17 @@ info: title: CodeSamples overlay for go target version: 0.0.0 actions: - - target: $["paths"]["/multistream/target"]["post"] + - target: $["paths"]["/data/views/query"]["get"] update: x-codeSamples: - lang: go - label: createMultistreamTarget + label: getViewershipMetrics source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" + "github.com/livepeer/livepeer-go/models/operations" "context" "log" ) @@ -22,23 +22,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := components.MultistreamTargetInput{ - URL: "rtmps://live.my-service.tv/channel/secretKey", - } + request := operations.GetViewershipMetricsRequest{} ctx := context.Background() - res, err := s.Multistream.Create(ctx, request) + res, err := s.Metrics.GetViewership(ctx, request) if err != nil { log.Fatal(err) } - if res.MultistreamTarget != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/webhook"]["post"] + - target: $["paths"]["/webhook/{id}"]["put"] update: x-codeSamples: - lang: go - label: createWebhook + label: updateWebhook source: |- package main @@ -53,7 +51,9 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := components.WebhookInput{ + var id string = "" + + webhook := components.WebhookInput{ Name: "test_webhook", Events: []components.Events{ components.EventsStreamStarted, @@ -64,7 +64,7 @@ actions: StreamID: livepeergo.String("de7818e7-610a-4057-8f6f-b785dc1e6f88"), } ctx := context.Background() - res, err := s.Webhook.Create(ctx, request) + res, err := s.Webhook.Update(ctx, id, webhook) if err != nil { log.Fatal(err) } @@ -72,16 +72,17 @@ actions: // handle response } } - - target: $["paths"]["/webhook/{id}/log/{logId}/resend"]["post"] + - target: $["paths"]["/room/{id}/user/{userId}"]["put"] update: x-codeSamples: - lang: go - label: resendWebhook + label: updateRoomUser source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -92,27 +93,31 @@ actions: ) var id string = "" - var logID string = "" + var userID string = "" + + roomUserUpdatePayload := components.RoomUserUpdatePayload{ + CanPublish: livepeergo.Bool(true), + CanPublishData: livepeergo.Bool(true), + } ctx := context.Background() - res, err := s.Webhook.ResendLog(ctx, id, logID) + res, err := s.Room.UpdateUser(ctx, id, userID, roomUserUpdatePayload) if err != nil { log.Fatal(err) } - if res.WebhookLog != nil { + if res != nil { // handle response } } - - target: $["paths"]["/room/{id}/user/{userId}"]["put"] + - target: $["paths"]["/access-control/signing-key"]["get"] update: x-codeSamples: - lang: go - label: updateRoomUser + label: getSigningKeys source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -121,28 +126,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" - - var userID string = "" - roomUserUpdatePayload := components.RoomUserUpdatePayload{ - CanPublish: livepeergo.Bool(true), - CanPublishData: livepeergo.Bool(true), - } ctx := context.Background() - res, err := s.Room.UpdateUser(ctx, id, userID, roomUserUpdatePayload) + res, err := s.AccessControl.GetAll(ctx) if err != nil { log.Fatal(err) } - if res != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/stream"]["get"] + - target: $["paths"]["/webhook/{id}"]["get"] update: x-codeSamples: - lang: go - label: getStreams + label: getWebhook source: |- package main @@ -156,13 +154,13 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var streamsonly *string = livepeergo.String("") + var id string = "" ctx := context.Background() - res, err := s.Stream.GetAll(ctx, streamsonly) + res, err := s.Webhook.Get(ctx, id) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res.Webhook != nil { // handle response } } @@ -194,11 +192,11 @@ actions: // handle response } } - - target: $["paths"]["/room/{id}"]["get"] + - target: $["paths"]["/room"]["post"] update: x-codeSamples: - lang: go - label: getRoom + label: createRoom source: |- package main @@ -212,21 +210,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + ctx := context.Background() - res, err := s.Room.Get(ctx, id) + res, err := s.Room.Create(ctx) if err != nil { log.Fatal(err) } - if res.Room != nil { + if res.CreateRoomResponse != nil { // handle response } } - - target: $["paths"]["/data/views/query"]["get"] + - target: $["paths"]["/stream/{parentId}/sessions"]["get"] update: x-codeSamples: - lang: go - label: getViewershipMetrics + label: getRecordedSessions source: |- package main @@ -241,9 +239,13 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := operations.GetViewershipMetricsRequest{} + var parentID string = "" + + var record *operations.Record = operations.CreateRecordBoolean( + true, + ) ctx := context.Background() - res, err := s.Metrics.GetViewership(ctx, request) + res, err := s.Session.GetRecorded(ctx, parentID, record) if err != nil { log.Fatal(err) } @@ -251,11 +253,11 @@ actions: // handle response } } - - target: $["paths"]["/task"]["get"] + - target: $["paths"]["/room/{id}"]["delete"] update: x-codeSamples: - lang: go - label: getTasks + label: deleteRoom source: |- package main @@ -269,27 +271,26 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - + var id string = "" ctx := context.Background() - res, err := s.Task.GetAll(ctx) + res, err := s.Room.Delete(ctx, id) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res != nil { // handle response } } - - target: $["paths"]["/stream/{id}"]["patch"] + - target: $["paths"]["/stream/{id}"]["delete"] update: x-codeSamples: - lang: go - label: updateStream + label: deleteStream source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -299,46 +300,8 @@ actions: livepeergo.WithSecurity(""), ) var id string = "" - - streamPatchPayload := components.StreamPatchPayload{ - Record: livepeergo.Bool(false), - Multistream: &components.Multistream{ - Targets: []components.Target{ - components.Target{ - Profile: "720p", - VideoOnly: livepeergo.Bool(false), - ID: livepeergo.String("PUSH123"), - Spec: &components.TargetSpec{ - Name: livepeergo.String("My target"), - URL: "rtmps://live.my-service.tv/channel/secretKey", - }, - }, - }, - }, - PlaybackPolicy: &components.PlaybackPolicy{ - Type: components.TypeWebhook, - WebhookID: livepeergo.String("1bde4o2i6xycudoy"), - WebhookContext: map[string]any{ - "streamerId": "my-custom-id", - }, - RefreshInterval: livepeergo.Float64(600), - }, - Profiles: []components.FfmpegProfile{ - components.FfmpegProfile{ - Width: 1280, - Name: "720p", - Height: 857478, - Bitrate: 3000000, - Fps: 30, - FpsDen: livepeergo.Int64(1), - Quality: livepeergo.Int64(23), - Gop: livepeergo.String("2"), - Profile: components.ProfileH264Baseline.ToPointer(), - }, - }, - } ctx := context.Background() - res, err := s.Stream.Update(ctx, id, streamPatchPayload) + res, err := s.Stream.Delete(ctx, id) if err != nil { log.Fatal(err) } @@ -346,11 +309,11 @@ actions: // handle response } } - - target: $["paths"]["/webhook/{id}"]["delete"] + - target: $["paths"]["/webhook"]["get"] update: x-codeSamples: - lang: go - label: deleteWebhook + label: getWebhooks source: |- package main @@ -364,21 +327,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + ctx := context.Background() - res, err := s.Webhook.Delete(ctx, id) + res, err := s.Webhook.GetAll(ctx) if err != nil { log.Fatal(err) } - if res.Webhook != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/room/{id}/user/{userId}"]["get"] + - target: $["paths"]["/webhook/{id}/log"]["get"] update: x-codeSamples: - lang: go - label: getRoomUser + label: getWebhookLogs source: |- package main @@ -393,28 +356,25 @@ actions: livepeergo.WithSecurity(""), ) var id string = "" - - var userID string = "" ctx := context.Background() - res, err := s.Room.GetUser(ctx, id, userID) + res, err := s.Webhook.GetLogs(ctx, id) if err != nil { log.Fatal(err) } - if res.GetRoomUserResponse != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/data/views/query/creator"]["get"] + - target: $["paths"]["/multistream/target/{id}"]["get"] update: x-codeSamples: - lang: go - label: getCreatorViewershipMetrics + label: getMultistreamTarget source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/operations" "context" "log" ) @@ -423,26 +383,27 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := operations.GetCreatorViewershipMetricsRequest{} + var id string = "" ctx := context.Background() - res, err := s.Metrics.GetCreatorViewership(ctx, request) + res, err := s.Multistream.Get(ctx, id) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res.MultistreamTarget != nil { // handle response } } - - target: $["paths"]["/data/views/query/total/{playbackId}"]["get"] + - target: $["paths"]["/multistream/target/{id}"]["patch"] update: x-codeSamples: - lang: go - label: getPublicViewershipMetrics + label: updateMultistreamTarget source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -451,27 +412,31 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var playbackID string = "" + var id string = "" + + multistreamTargetPatchPayload := components.MultistreamTargetPatchPayload{ + URL: "rtmps://live.my-service.tv/channel/secretKey", + } ctx := context.Background() - res, err := s.Metrics.GetPublicViewership(ctx, playbackID) + res, err := s.Multistream.Update(ctx, id, multistreamTargetPatchPayload) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res != nil { // handle response } } - - target: $["paths"]["/asset/{assetId}"]["patch"] + - target: $["paths"]["/data/usage/query"]["get"] update: x-codeSamples: - lang: go - label: updateAsset + label: getUsageMetrics source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" + "github.com/livepeer/livepeer-go/models/operations" "context" "log" ) @@ -480,33 +445,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var assetID string = "" - - assetPatchPayload := components.AssetPatchPayload{ - Name: livepeergo.String("filename.mp4"), - PlaybackPolicy: &components.PlaybackPolicy{ - Type: components.TypeWebhook, - WebhookID: livepeergo.String("1bde4o2i6xycudoy"), - WebhookContext: map[string]any{ - "streamerId": "my-custom-id", - }, - RefreshInterval: livepeergo.Float64(600), - }, - } + request := operations.GetUsageMetricsRequest{} ctx := context.Background() - res, err := s.Asset.Update(ctx, assetID, assetPatchPayload) + res, err := s.Metrics.GetUsage(ctx, request) if err != nil { log.Fatal(err) } - if res.Asset != nil { + if res.UsageMetric != nil { // handle response } } - - target: $["paths"]["/room"]["post"] + - target: $["paths"]["/stream/{id}/start-pull"]["post"] update: x-codeSamples: - lang: go - label: createRoom + label: startPullStream source: |- package main @@ -520,21 +473,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - + var id string = "" ctx := context.Background() - res, err := s.Room.Create(ctx) + res, err := s.Stream.StartPull(ctx, id) if err != nil { log.Fatal(err) } - if res.CreateRoomResponse != nil { + if res != nil { // handle response } } - - target: $["paths"]["/access-control/signing-key"]["post"] + - target: $["paths"]["/stream/{id}/clips"]["get"] update: x-codeSamples: - lang: go - label: createSigningKey + label: getClips source: |- package main @@ -548,26 +501,27 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - + var id string = "" ctx := context.Background() - res, err := s.AccessControl.Create(ctx) + res, err := s.Stream.GetClips(ctx, id) if err != nil { log.Fatal(err) } - if res.SigningKey != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/stream/{id}"]["delete"] + - target: $["paths"]["/stream/{id}/create-multistream-target"]["post"] update: x-codeSamples: - lang: go - label: deleteStream + label: addMultistreamTarget source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -577,8 +531,18 @@ actions: livepeergo.WithSecurity(""), ) var id string = "" + + targetAddPayload := components.TargetAddPayload{ + Profile: "720p0", + VideoOnly: livepeergo.Bool(false), + ID: livepeergo.String("PUSH123"), + Spec: &components.TargetAddPayloadSpec{ + Name: livepeergo.String("My target"), + URL: "rtmps://live.my-service.tv/channel/secretKey", + }, + } ctx := context.Background() - res, err := s.Stream.Delete(ctx, id) + res, err := s.Stream.AddMultistreamTarget(ctx, id, targetAddPayload) if err != nil { log.Fatal(err) } @@ -586,16 +550,17 @@ actions: // handle response } } - - target: $["paths"]["/multistream/target"]["get"] + - target: $["paths"]["/room/{id}/egress"]["post"] update: x-codeSamples: - lang: go - label: getMultistreamTargets + label: startRoomEgress source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -604,21 +569,25 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) + var id string = "" + roomEgressPayload := components.RoomEgressPayload{ + StreamID: "aac12556-4d65-4d34-9fb6-d1f0985eb0a9", + } ctx := context.Background() - res, err := s.Multistream.GetAll(ctx) + res, err := s.Room.StartEgress(ctx, id, roomEgressPayload) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res != nil { // handle response } } - - target: $["paths"]["/webhook/{id}"]["get"] + - target: $["paths"]["/task"]["get"] update: x-codeSamples: - lang: go - label: getWebhook + label: getTasks source: |- package main @@ -632,21 +601,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + ctx := context.Background() - res, err := s.Webhook.Get(ctx, id) + res, err := s.Task.GetAll(ctx) if err != nil { log.Fatal(err) } - if res.Webhook != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/asset/upload/url"]["post"] + - target: $["paths"]["/stream"]["post"] update: x-codeSamples: - lang: go - label: uploadAsset + label: createStream source: |- package main @@ -661,9 +630,18 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := components.NewAssetFromURLPayload{ - Name: "filename.mp4", - StaticMp4: livepeergo.Bool(true), + request := components.NewStreamPayload{ + Name: "test_stream", + Pull: &components.Pull{ + Source: "https://myservice.com/live/stream.flv", + Headers: map[string]string{ + "Authorization": "Bearer 123", + }, + Location: &components.Location{ + Lat: 39.739, + Lon: -104.988, + }, + }, PlaybackPolicy: &components.PlaybackPolicy{ Type: components.TypeWebhook, WebhookID: livepeergo.String("1bde4o2i6xycudoy"), @@ -672,35 +650,48 @@ actions: }, RefreshInterval: livepeergo.Float64(600), }, - URL: "https://s3.amazonaws.com/my-bucket/path/filename.mp4", - Profiles: []components.TranscodeProfile{ - components.TranscodeProfile{ - Width: livepeergo.Int64(1280), - Name: livepeergo.String("720p"), + Profiles: []components.FfmpegProfile{ + components.FfmpegProfile{ + Width: 1280, + Name: "720p", + Height: 486589, Bitrate: 3000000, - Quality: livepeergo.Int64(23), - Fps: livepeergo.Int64(30), + Fps: 30, FpsDen: livepeergo.Int64(1), + Quality: livepeergo.Int64(23), Gop: livepeergo.String("2"), - Profile: components.TranscodeProfileProfileH264Baseline.ToPointer(), - Encoder: components.TranscodeProfileEncoderH264.ToPointer(), + Profile: components.ProfileH264Baseline.ToPointer(), + }, + }, + Record: livepeergo.Bool(false), + Multistream: &components.Multistream{ + Targets: []components.Target{ + components.Target{ + Profile: "720p", + VideoOnly: livepeergo.Bool(false), + ID: livepeergo.String("PUSH123"), + Spec: &components.TargetSpec{ + Name: livepeergo.String("My target"), + URL: "rtmps://live.my-service.tv/channel/secretKey", + }, + }, }, }, } ctx := context.Background() - res, err := s.Asset.CreateViaURL(ctx, request) + res, err := s.Stream.Create(ctx, request) if err != nil { log.Fatal(err) } - if res.TwoHundredApplicationJSONData != nil { + if res.Stream != nil { // handle response } } - - target: $["paths"]["/asset/{assetId}"]["get"] + - target: $["paths"]["/stream/{id}/multistream/{targetId}"]["delete"] update: x-codeSamples: - lang: go - label: getAsset + label: removeMultistreamTarget source: |- package main @@ -714,21 +705,23 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var assetID string = "" + var id string = "" + + var targetID string = "" ctx := context.Background() - res, err := s.Asset.Get(ctx, assetID) + res, err := s.Stream.RemoveMultistreamTarget(ctx, id, targetID) if err != nil { log.Fatal(err) } - if res.Asset != nil { + if res != nil { // handle response } } - - target: $["paths"]["/access-control/signing-key/{keyId}"]["delete"] + - target: $["paths"]["/webhook/{id}/log/{logId}/resend"]["post"] update: x-codeSamples: - lang: go - label: deleteSigningKey + label: resendWebhook source: |- package main @@ -742,26 +735,29 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var keyID string = "" + var id string = "" + + var logID string = "" ctx := context.Background() - res, err := s.AccessControl.Delete(ctx, keyID) + res, err := s.Webhook.ResendLog(ctx, id, logID) if err != nil { log.Fatal(err) } - if res != nil { + if res.WebhookLog != nil { // handle response } } - - target: $["paths"]["/stream/{id}"]["get"] + - target: $["paths"]["/webhook"]["post"] update: x-codeSamples: - lang: go - label: getStream + label: createWebhook source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -770,21 +766,58 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + request := components.WebhookInput{ + Name: "test_webhook", + Events: []components.Events{ + components.EventsStreamStarted, + components.EventsStreamIdle, + }, + URL: "https://my-service.com/webhook", + SharedSecret: livepeergo.String("my-secret"), + StreamID: livepeergo.String("de7818e7-610a-4057-8f6f-b785dc1e6f88"), + } ctx := context.Background() - res, err := s.Stream.Get(ctx, id) + res, err := s.Webhook.Create(ctx, request) if err != nil { log.Fatal(err) } - if res.Stream != nil { + if res.Webhook != nil { // handle response } } - - target: $["paths"]["/asset/request-upload"]["post"] + - target: $["paths"]["/asset/{assetId}"]["get"] update: x-codeSamples: - lang: go - label: requestUpload + label: getAsset + source: |- + package main + + import( + livepeergo "github.com/livepeer/livepeer-go" + "context" + "log" + ) + + func main() { + s := livepeergo.New( + livepeergo.WithSecurity(""), + ) + var assetID string = "" + ctx := context.Background() + res, err := s.Asset.Get(ctx, assetID) + if err != nil { + log.Fatal(err) + } + if res.Asset != nil { + // handle response + } + } + - target: $["paths"]["/transcode"]["post"] + update: + x-codeSamples: + - lang: go + label: transcodeVideo source: |- package main @@ -799,7 +832,77 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := components.NewAssetPayload{ + request := components.TranscodePayload{ + Input: components.CreateInputInput1( + components.Input1{ + URL: "https://s3.amazonaws.com/bucket/file.mp4", + }, + ), + Storage: components.CreateTranscodePayloadStorageStorage1( + components.Storage1{ + Type: components.StorageTypeS3, + Endpoint: "https://gateway.storjshare.io", + Bucket: "outputbucket", + Credentials: components.StorageCredentials{ + AccessKeyID: "AKIAIOSFODNN7EXAMPLE", + SecretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", + }, + }, + ), + Outputs: components.Outputs{ + Hls: &components.Hls{ + Path: "/samplevideo/hls", + }, + Mp4: &components.Mp4{ + Path: "/samplevideo/mp4", + }, + Fmp4: &components.Fmp4{ + Path: "/samplevideo/fmp4", + }, + }, + Profiles: []components.TranscodeProfile{ + components.TranscodeProfile{ + Width: livepeergo.Int64(1280), + Name: livepeergo.String("720p"), + Bitrate: 3000000, + Quality: livepeergo.Int64(23), + Fps: livepeergo.Int64(30), + FpsDen: livepeergo.Int64(1), + Gop: livepeergo.String("2"), + Profile: components.TranscodeProfileProfileH264Baseline.ToPointer(), + Encoder: components.TranscodeProfileEncoderH264.ToPointer(), + }, + }, + } + ctx := context.Background() + res, err := s.Transcode.Create(ctx, request) + if err != nil { + log.Fatal(err) + } + if res.Task != nil { + // handle response + } + } + - target: $["paths"]["/asset/upload/url"]["post"] + update: + x-codeSamples: + - lang: go + label: uploadAsset + source: |- + package main + + import( + livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" + "context" + "log" + ) + + func main() { + s := livepeergo.New( + livepeergo.WithSecurity(""), + ) + request := components.NewAssetFromURLPayload{ Name: "filename.mp4", StaticMp4: livepeergo.Bool(true), PlaybackPolicy: &components.PlaybackPolicy{ @@ -810,6 +913,7 @@ actions: }, RefreshInterval: livepeergo.Float64(600), }, + URL: "https://s3.amazonaws.com/my-bucket/path/filename.mp4", Profiles: []components.TranscodeProfile{ components.TranscodeProfile{ Width: livepeergo.Int64(1280), @@ -825,25 +929,24 @@ actions: }, } ctx := context.Background() - res, err := s.Asset.Create(ctx, request) + res, err := s.Asset.CreateViaURL(ctx, request) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res.TwoHundredApplicationJSONData != nil { // handle response } } - - target: $["paths"]["/room/{id}/egress"]["post"] + - target: $["paths"]["/playback/{id}"]["get"] update: x-codeSamples: - lang: go - label: startRoomEgress + label: getPlaybackInfo source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -853,29 +956,26 @@ actions: livepeergo.WithSecurity(""), ) var id string = "" - - roomEgressPayload := components.RoomEgressPayload{ - StreamID: "aac12556-4d65-4d34-9fb6-d1f0985eb0a9", - } ctx := context.Background() - res, err := s.Room.StartEgress(ctx, id, roomEgressPayload) + res, err := s.Playback.Get(ctx, id) if err != nil { log.Fatal(err) } - if res != nil { + if res.PlaybackInfo != nil { // handle response } } - - target: $["paths"]["/multistream/target/{id}"]["delete"] + - target: $["paths"]["/multistream/target"]["post"] update: x-codeSamples: - lang: go - label: deleteMultistreamTarget + label: createMultistreamTarget source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -884,13 +984,15 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + request := components.MultistreamTargetInput{ + URL: "rtmps://live.my-service.tv/channel/secretKey", + } ctx := context.Background() - res, err := s.Multistream.Delete(ctx, id) + res, err := s.Multistream.Create(ctx, request) if err != nil { log.Fatal(err) } - if res != nil { + if res.MultistreamTarget != nil { // handle response } } @@ -924,11 +1026,11 @@ actions: // handle response } } - - target: $["paths"]["/room/{id}/user/{userId}"]["delete"] + - target: $["paths"]["/room/{id}/egress"]["delete"] update: x-codeSamples: - lang: go - label: deleteRoomUser + label: stopRoomEgress source: |- package main @@ -943,10 +1045,8 @@ actions: livepeergo.WithSecurity(""), ) var id string = "" - - var userID string = "" ctx := context.Background() - res, err := s.Room.DeleteUser(ctx, id, userID) + res, err := s.Room.StopEgress(ctx, id) if err != nil { log.Fatal(err) } @@ -954,11 +1054,11 @@ actions: // handle response } } - - target: $["paths"]["/webhook"]["get"] + - target: $["paths"]["/room/{id}/user/{userId}"]["delete"] update: x-codeSamples: - lang: go - label: getWebhooks + label: deleteRoomUser source: |- package main @@ -972,21 +1072,23 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) + var id string = "" + var userID string = "" ctx := context.Background() - res, err := s.Webhook.GetAll(ctx) + res, err := s.Room.DeleteUser(ctx, id, userID) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res != nil { // handle response } } - - target: $["paths"]["/room/{id}"]["delete"] + - target: $["paths"]["/data/views/query/total/{playbackId}"]["get"] update: x-codeSamples: - lang: go - label: deleteRoom + label: getPublicViewershipMetrics source: |- package main @@ -1000,27 +1102,26 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + var playbackID string = "" ctx := context.Background() - res, err := s.Room.Delete(ctx, id) + res, err := s.Metrics.GetPublicViewership(ctx, playbackID) if err != nil { log.Fatal(err) } - if res != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/room/{id}/user"]["post"] + - target: $["paths"]["/task/{taskId}"]["get"] update: x-codeSamples: - lang: go - label: createRoomUser + label: getTask source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -1029,27 +1130,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" - - roomUserPayload := components.RoomUserPayload{ - Name: "name", - CanPublish: livepeergo.Bool(true), - CanPublishData: livepeergo.Bool(true), - } + var taskID string = "" ctx := context.Background() - res, err := s.Room.CreateUser(ctx, id, roomUserPayload) + res, err := s.Task.Get(ctx, taskID) if err != nil { log.Fatal(err) } - if res.RoomUserResponse != nil { + if res.Task != nil { // handle response } } - - target: $["paths"]["/stream/{id}/multistream/{targetId}"]["delete"] + - target: $["paths"]["/webhook/{id}"]["delete"] update: x-codeSamples: - lang: go - label: removeMultistreamTarget + label: deleteWebhook source: |- package main @@ -1064,27 +1159,26 @@ actions: livepeergo.WithSecurity(""), ) var id string = "" - - var targetID string = "" ctx := context.Background() - res, err := s.Stream.RemoveMultistreamTarget(ctx, id, targetID) + res, err := s.Webhook.Delete(ctx, id) if err != nil { log.Fatal(err) } - if res != nil { + if res.Webhook != nil { // handle response } } - - target: $["paths"]["/session"]["get"] + - target: $["paths"]["/asset/request-upload"]["post"] update: x-codeSamples: - lang: go - label: getSessions + label: requestUpload source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -1093,9 +1187,33 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - + request := components.NewAssetPayload{ + Name: "filename.mp4", + StaticMp4: livepeergo.Bool(true), + PlaybackPolicy: &components.PlaybackPolicy{ + Type: components.TypeWebhook, + WebhookID: livepeergo.String("1bde4o2i6xycudoy"), + WebhookContext: map[string]any{ + "streamerId": "my-custom-id", + }, + RefreshInterval: livepeergo.Float64(600), + }, + Profiles: []components.TranscodeProfile{ + components.TranscodeProfile{ + Width: livepeergo.Int64(1280), + Name: livepeergo.String("720p"), + Bitrate: 3000000, + Quality: livepeergo.Int64(23), + Fps: livepeergo.Int64(30), + FpsDen: livepeergo.Int64(1), + Gop: livepeergo.String("2"), + Profile: components.TranscodeProfileProfileH264Baseline.ToPointer(), + Encoder: components.TranscodeProfileEncoderH264.ToPointer(), + }, + }, + } ctx := context.Background() - res, err := s.Session.GetAll(ctx) + res, err := s.Asset.Create(ctx, request) if err != nil { log.Fatal(err) } @@ -1103,11 +1221,11 @@ actions: // handle response } } - - target: $["paths"]["/room/{id}/egress"]["delete"] + - target: $["paths"]["/session/{id}/clips"]["get"] update: x-codeSamples: - lang: go - label: stopRoomEgress + label: getSessionClips source: |- package main @@ -1123,25 +1241,24 @@ actions: ) var id string = "" ctx := context.Background() - res, err := s.Room.StopEgress(ctx, id) + res, err := s.Session.GetClips(ctx, id) if err != nil { log.Fatal(err) } - if res != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/access-control/signing-key/{keyId}"]["patch"] + - target: $["paths"]["/session"]["get"] update: x-codeSamples: - lang: go - label: updateSigningKey + label: getSessions source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/operations" "context" "log" ) @@ -1150,23 +1267,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var keyID string = "" - requestBody := operations.UpdateSigningKeyRequestBody{} ctx := context.Background() - res, err := s.AccessControl.Update(ctx, keyID, requestBody) + res, err := s.Session.GetAll(ctx) if err != nil { log.Fatal(err) } - if res != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/stream/{id}/terminate"]["delete"] + - target: $["paths"]["/room/{id}"]["get"] update: x-codeSamples: - lang: go - label: terminateStream + label: getRoom source: |- package main @@ -1182,19 +1297,19 @@ actions: ) var id string = "" ctx := context.Background() - res, err := s.Stream.Terminate(ctx, id) + res, err := s.Room.Get(ctx, id) if err != nil { log.Fatal(err) } - if res != nil { + if res.Room != nil { // handle response } } - - target: $["paths"]["/multistream/target/{id}"]["patch"] + - target: $["paths"]["/room/{id}/user"]["post"] update: x-codeSamples: - lang: go - label: updateMultistreamTarget + label: createRoomUser source: |- package main @@ -1211,29 +1326,30 @@ actions: ) var id string = "" - multistreamTargetPatchPayload := components.MultistreamTargetPatchPayload{ - URL: "rtmps://live.my-service.tv/channel/secretKey", + roomUserPayload := components.RoomUserPayload{ + Name: "name", + CanPublish: livepeergo.Bool(true), + CanPublishData: livepeergo.Bool(true), } ctx := context.Background() - res, err := s.Multistream.Update(ctx, id, multistreamTargetPatchPayload) + res, err := s.Room.CreateUser(ctx, id, roomUserPayload) if err != nil { log.Fatal(err) } - if res != nil { + if res.RoomUserResponse != nil { // handle response } } - - target: $["paths"]["/webhook/{id}"]["put"] + - target: $["paths"]["/room/{id}/user/{userId}"]["get"] update: x-codeSamples: - lang: go - label: updateWebhook + label: getRoomUser source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -1244,30 +1360,21 @@ actions: ) var id string = "" - webhook := components.WebhookInput{ - Name: "test_webhook", - Events: []components.Events{ - components.EventsStreamStarted, - components.EventsStreamIdle, - }, - URL: "https://my-service.com/webhook", - SharedSecret: livepeergo.String("my-secret"), - StreamID: livepeergo.String("de7818e7-610a-4057-8f6f-b785dc1e6f88"), - } + var userID string = "" ctx := context.Background() - res, err := s.Webhook.Update(ctx, id, webhook) + res, err := s.Room.GetUser(ctx, id, userID) if err != nil { log.Fatal(err) } - if res.Webhook != nil { + if res.GetRoomUserResponse != nil { // handle response } } - - target: $["paths"]["/session/{id}/clips"]["get"] + - target: $["paths"]["/access-control/signing-key"]["post"] update: x-codeSamples: - lang: go - label: getSessionClips + label: createSigningKey source: |- package main @@ -1281,21 +1388,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + ctx := context.Background() - res, err := s.Session.GetClips(ctx, id) + res, err := s.AccessControl.Create(ctx) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res.SigningKey != nil { // handle response } } - - target: $["paths"]["/access-control/signing-key/{keyId}"]["get"] + - target: $["paths"]["/stream"]["get"] update: x-codeSamples: - lang: go - label: getSigningKey + label: getStreams source: |- package main @@ -1309,21 +1416,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var keyID string = "" + var streamsonly *string = livepeergo.String("") ctx := context.Background() - res, err := s.AccessControl.Get(ctx, keyID) + res, err := s.Stream.GetAll(ctx, streamsonly) if err != nil { log.Fatal(err) } - if res.SigningKey != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/stream/{id}/clips"]["get"] + - target: $["paths"]["/stream/{id}"]["get"] update: x-codeSamples: - lang: go - label: getClips + label: getStream source: |- package main @@ -1339,19 +1446,19 @@ actions: ) var id string = "" ctx := context.Background() - res, err := s.Stream.GetClips(ctx, id) + res, err := s.Stream.Get(ctx, id) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res.Stream != nil { // handle response } } - - target: $["paths"]["/webhook/{id}/log"]["get"] + - target: $["paths"]["/multistream/target/{id}"]["delete"] update: x-codeSamples: - lang: go - label: getWebhookLogs + label: deleteMultistreamTarget source: |- package main @@ -1367,25 +1474,24 @@ actions: ) var id string = "" ctx := context.Background() - res, err := s.Webhook.GetLogs(ctx, id) + res, err := s.Multistream.Delete(ctx, id) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res != nil { // handle response } } - - target: $["paths"]["/data/usage/query"]["get"] + - target: $["paths"]["/access-control/signing-key/{keyId}"]["delete"] update: x-codeSamples: - lang: go - label: getUsageMetrics + label: deleteSigningKey source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/operations" "context" "log" ) @@ -1394,27 +1500,26 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := operations.GetUsageMetricsRequest{} + var keyID string = "" ctx := context.Background() - res, err := s.Metrics.GetUsage(ctx, request) + res, err := s.AccessControl.Delete(ctx, keyID) if err != nil { log.Fatal(err) } - if res.UsageMetric != nil { + if res != nil { // handle response } } - - target: $["paths"]["/transcode"]["post"] + - target: $["paths"]["/session/{id}"]["get"] update: x-codeSamples: - lang: go - label: transcodeVideo + label: getSession source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -1423,68 +1528,27 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := components.TranscodePayload{ - Input: components.CreateInputInput1( - components.Input1{ - URL: "https://s3.amazonaws.com/bucket/file.mp4", - }, - ), - Storage: components.CreateTranscodePayloadStorageStorage1( - components.Storage1{ - Type: components.StorageTypeS3, - Endpoint: "https://gateway.storjshare.io", - Bucket: "outputbucket", - Credentials: components.StorageCredentials{ - AccessKeyID: "AKIAIOSFODNN7EXAMPLE", - SecretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", - }, - }, - ), - Outputs: components.Outputs{ - Hls: &components.Hls{ - Path: "/samplevideo/hls", - }, - Mp4: &components.Mp4{ - Path: "/samplevideo/mp4", - }, - Fmp4: &components.Fmp4{ - Path: "/samplevideo/fmp4", - }, - }, - Profiles: []components.TranscodeProfile{ - components.TranscodeProfile{ - Width: livepeergo.Int64(1280), - Name: livepeergo.String("720p"), - Bitrate: 3000000, - Quality: livepeergo.Int64(23), - Fps: livepeergo.Int64(30), - FpsDen: livepeergo.Int64(1), - Gop: livepeergo.String("2"), - Profile: components.TranscodeProfileProfileH264Baseline.ToPointer(), - Encoder: components.TranscodeProfileEncoderH264.ToPointer(), - }, - }, - } + var id string = "" ctx := context.Background() - res, err := s.Transcode.Create(ctx, request) + res, err := s.Session.Get(ctx, id) if err != nil { log.Fatal(err) } - if res.Task != nil { + if res.Session != nil { // handle response } } - - target: $["paths"]["/stream"]["post"] + - target: $["paths"]["/data/views/query/creator"]["get"] update: x-codeSamples: - lang: go - label: createStream + label: getCreatorViewershipMetrics source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" + "github.com/livepeer/livepeer-go/models/operations" "context" "log" ) @@ -1493,68 +1557,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - request := components.NewStreamPayload{ - Name: "test_stream", - Pull: &components.Pull{ - Source: "https://myservice.com/live/stream.flv", - Headers: map[string]string{ - "Authorization": "Bearer 123", - }, - Location: &components.Location{ - Lat: 39.739, - Lon: -104.988, - }, - }, - PlaybackPolicy: &components.PlaybackPolicy{ - Type: components.TypeWebhook, - WebhookID: livepeergo.String("1bde4o2i6xycudoy"), - WebhookContext: map[string]any{ - "streamerId": "my-custom-id", - }, - RefreshInterval: livepeergo.Float64(600), - }, - Profiles: []components.FfmpegProfile{ - components.FfmpegProfile{ - Width: 1280, - Name: "720p", - Height: 486589, - Bitrate: 3000000, - Fps: 30, - FpsDen: livepeergo.Int64(1), - Quality: livepeergo.Int64(23), - Gop: livepeergo.String("2"), - Profile: components.ProfileH264Baseline.ToPointer(), - }, - }, - Record: livepeergo.Bool(false), - Multistream: &components.Multistream{ - Targets: []components.Target{ - components.Target{ - Profile: "720p", - VideoOnly: livepeergo.Bool(false), - ID: livepeergo.String("PUSH123"), - Spec: &components.TargetSpec{ - Name: livepeergo.String("My target"), - URL: "rtmps://live.my-service.tv/channel/secretKey", - }, - }, - }, - }, - } + request := operations.GetCreatorViewershipMetricsRequest{} ctx := context.Background() - res, err := s.Stream.Create(ctx, request) + res, err := s.Metrics.GetCreatorViewership(ctx, request) if err != nil { log.Fatal(err) } - if res.Stream != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/stream/{parentId}/sessions"]["get"] + - target: $["paths"]["/access-control/signing-key/{keyId}"]["patch"] update: x-codeSamples: - lang: go - label: getRecordedSessions + label: updateSigningKey source: |- package main @@ -1569,30 +1586,29 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var parentID string = "" + var keyID string = "" - var record *operations.Record = operations.CreateRecordBoolean( - true, - ) + requestBody := operations.UpdateSigningKeyRequestBody{} ctx := context.Background() - res, err := s.Session.GetRecorded(ctx, parentID, record) + res, err := s.AccessControl.Update(ctx, keyID, requestBody) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res != nil { // handle response } } - - target: $["paths"]["/stream/{id}/start-pull"]["post"] + - target: $["paths"]["/clip"]["post"] update: x-codeSamples: - lang: go - label: startPullStream + label: createClip source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -1601,21 +1617,27 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + request := components.ClipPayload{ + PlaybackID: "eaw4nk06ts2d0mzb", + StartTime: 1587667174725, + EndTime: livepeergo.Float64(1587667174725), + Name: livepeergo.String("My Clip"), + SessionID: livepeergo.String("de7818e7-610a-4057-8f6f-b785dc1e6f88"), + } ctx := context.Background() - res, err := s.Stream.StartPull(ctx, id) + res, err := s.Stream.CreateClip(ctx, request) if err != nil { log.Fatal(err) } - if res != nil { + if res.Data != nil { // handle response } } - - target: $["paths"]["/access-control/signing-key"]["get"] + - target: $["paths"]["/multistream/target"]["get"] update: x-codeSamples: - lang: go - label: getSigningKeys + label: getMultistreamTargets source: |- package main @@ -1631,7 +1653,7 @@ actions: ) ctx := context.Background() - res, err := s.AccessControl.GetAll(ctx) + res, err := s.Multistream.GetAll(ctx) if err != nil { log.Fatal(err) } @@ -1639,16 +1661,17 @@ actions: // handle response } } - - target: $["paths"]["/playback/{id}"]["get"] + - target: $["paths"]["/asset/{assetId}"]["patch"] update: x-codeSamples: - lang: go - label: getPlaybackInfo + label: updateAsset source: |- package main import( livepeergo "github.com/livepeer/livepeer-go" + "github.com/livepeer/livepeer-go/models/components" "context" "log" ) @@ -1657,21 +1680,33 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var id string = "" + var assetID string = "" + + assetPatchPayload := components.AssetPatchPayload{ + Name: livepeergo.String("filename.mp4"), + PlaybackPolicy: &components.PlaybackPolicy{ + Type: components.TypeWebhook, + WebhookID: livepeergo.String("1bde4o2i6xycudoy"), + WebhookContext: map[string]any{ + "streamerId": "my-custom-id", + }, + RefreshInterval: livepeergo.Float64(600), + }, + } ctx := context.Background() - res, err := s.Playback.Get(ctx, id) + res, err := s.Asset.Update(ctx, assetID, assetPatchPayload) if err != nil { log.Fatal(err) } - if res.PlaybackInfo != nil { + if res.Asset != nil { // handle response } } - - target: $["paths"]["/stream/{id}/create-multistream-target"]["post"] + - target: $["paths"]["/stream/{id}"]["patch"] update: x-codeSamples: - lang: go - label: addMultistreamTarget + label: updateStream source: |- package main @@ -1688,17 +1723,45 @@ actions: ) var id string = "" - targetAddPayload := components.TargetAddPayload{ - Profile: "720p0", - VideoOnly: livepeergo.Bool(false), - ID: livepeergo.String("PUSH123"), - Spec: &components.TargetAddPayloadSpec{ - Name: livepeergo.String("My target"), - URL: "rtmps://live.my-service.tv/channel/secretKey", + streamPatchPayload := components.StreamPatchPayload{ + Record: livepeergo.Bool(false), + Multistream: &components.Multistream{ + Targets: []components.Target{ + components.Target{ + Profile: "720p", + VideoOnly: livepeergo.Bool(false), + ID: livepeergo.String("PUSH123"), + Spec: &components.TargetSpec{ + Name: livepeergo.String("My target"), + URL: "rtmps://live.my-service.tv/channel/secretKey", + }, + }, + }, + }, + PlaybackPolicy: &components.PlaybackPolicy{ + Type: components.TypeWebhook, + WebhookID: livepeergo.String("1bde4o2i6xycudoy"), + WebhookContext: map[string]any{ + "streamerId": "my-custom-id", + }, + RefreshInterval: livepeergo.Float64(600), + }, + Profiles: []components.FfmpegProfile{ + components.FfmpegProfile{ + Width: 1280, + Name: "720p", + Height: 857478, + Bitrate: 3000000, + Fps: 30, + FpsDen: livepeergo.Int64(1), + Quality: livepeergo.Int64(23), + Gop: livepeergo.String("2"), + Profile: components.ProfileH264Baseline.ToPointer(), + }, }, } ctx := context.Background() - res, err := s.Stream.AddMultistreamTarget(ctx, id, targetAddPayload) + res, err := s.Stream.Update(ctx, id, streamPatchPayload) if err != nil { log.Fatal(err) } @@ -1706,11 +1769,11 @@ actions: // handle response } } - - target: $["paths"]["/asset"]["get"] + - target: $["paths"]["/access-control/signing-key/{keyId}"]["get"] update: x-codeSamples: - lang: go - label: getAssets + label: getSigningKey source: |- package main @@ -1724,21 +1787,21 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - + var keyID string = "" ctx := context.Background() - res, err := s.Asset.GetAll(ctx) + res, err := s.AccessControl.Get(ctx, keyID) if err != nil { log.Fatal(err) } - if res.Data != nil { + if res.SigningKey != nil { // handle response } } - - target: $["paths"]["/session/{id}"]["get"] + - target: $["paths"]["/stream/{id}/terminate"]["delete"] update: x-codeSamples: - lang: go - label: getSession + label: terminateStream source: |- package main @@ -1754,19 +1817,19 @@ actions: ) var id string = "" ctx := context.Background() - res, err := s.Session.Get(ctx, id) + res, err := s.Stream.Terminate(ctx, id) if err != nil { log.Fatal(err) } - if res.Session != nil { + if res != nil { // handle response } } - - target: $["paths"]["/task/{taskId}"]["get"] + - target: $["paths"]["/asset"]["get"] update: x-codeSamples: - lang: go - label: getTask + label: getAssets source: |- package main @@ -1780,44 +1843,9 @@ actions: s := livepeergo.New( livepeergo.WithSecurity(""), ) - var taskID string = "" - ctx := context.Background() - res, err := s.Task.Get(ctx, taskID) - if err != nil { - log.Fatal(err) - } - if res.Task != nil { - // handle response - } - } - - target: $["paths"]["/clip"]["post"] - update: - x-codeSamples: - - lang: go - label: createClip - source: |- - package main - import( - livepeergo "github.com/livepeer/livepeer-go" - "github.com/livepeer/livepeer-go/models/components" - "context" - "log" - ) - - func main() { - s := livepeergo.New( - livepeergo.WithSecurity(""), - ) - request := components.ClipPayload{ - PlaybackID: "eaw4nk06ts2d0mzb", - StartTime: 1587667174725, - EndTime: livepeergo.Float64(1587667174725), - Name: livepeergo.String("My Clip"), - SessionID: livepeergo.String("de7818e7-610a-4057-8f6f-b785dc1e6f88"), - } ctx := context.Background() - res, err := s.Stream.CreateClip(ctx, request) + res, err := s.Asset.GetAll(ctx) if err != nil { log.Fatal(err) } @@ -1825,31 +1853,3 @@ actions: // handle response } } - - target: $["paths"]["/multistream/target/{id}"]["get"] - update: - x-codeSamples: - - lang: go - label: getMultistreamTarget - source: |- - package main - - import( - livepeergo "github.com/livepeer/livepeer-go" - "context" - "log" - ) - - func main() { - s := livepeergo.New( - livepeergo.WithSecurity(""), - ) - var id string = "" - ctx := context.Background() - res, err := s.Multistream.Get(ctx, id) - if err != nil { - log.Fatal(err) - } - if res.MultistreamTarget != nil { - // handle response - } - }